Линукс для samsung galaxy

Linux on DeX — работаем в Ubuntu на Android

Linux on Dex — разработка от Samsung и Canonical, позволяющая запускать Ubuntu на Galaxy Note 9 и Tab S4 при подключении к Samsung DeX, т.е. получить почти полноценный ПК на Linux из смартфона или планшета. На настоящий момент времени это бета-версия, но поэкспериментировать уже возможно (на свой страх и риск, разумеется).

В этом обзоре — мой опыт установки и запуска Linux on Dex, использования и установки приложений, настройка русского языка ввода с клавиатуры и субъективное общее впечатление. Для теста использовался Galaxy Note 9, Exynos, 6 Гб RAM.

Установка и запуск Linux on Dex

Для установки потребуется установить само приложение Linux on Dex (в Play Маркет недоступно, я брал на apkmirror, версию 1.0.49), а также загрузить на телефон и распаковать специальный образ Ubuntu 16.04 от Samsung, доступный на https://webview.linuxondex.com/.

Загрузка образа доступна и из самого приложения, но в моем случае почему-то не работала, более того, во время загрузки через браузер скачивание дважды обрывалось (никакое энергосбережение не стоит). В итоге образ все-таки был загружен и распакован.

  1. Кладем образ .img в папку LoD, которую приложение создаст во внутренней памяти устройства.
  2. В приложении нажимаем «плюс», затем Browse, указываем файл образа (если будет расположен не в том месте, вас предупредят).
  3. Задаем описание контейнера с Linux и устанавливаем максимальный размер, который он сможет занять при работе.
  4. Можно запускать. Аккаунт по умолчанию — dextop, пароль — secret

Без подключения к DeX, Ubuntu можно запустить только в режиме терминала (кнопка Terminal Mode в приложении). Установка пакетов исправно работает прямо на телефоне.

После подключения к DeX можно запускать полноценный десктопный интерфейс Ubuntu. Выбрав контейнер жмем Run, ждём очень короткий промежуток времени и получаем рабочий стол Ubuntu Gnome.

Из предустановленного софта в основном — средства разработки: Visual Studio Code, IntelliJ IDEA, Geany, Python (но он, я так понимаю, всегда в Linux присутствует). В наличии браузеры, средство для работы с удаленными рабочими столами (Remmina) и что-то ещё.

Я не разработчик, и даже Linux — не то, в чем я бы хорошо разбирался, а потому просто представил: а что, если написать эту статью от начала до конца в Linux on Dex (LoD), вместе с графикой и остальным. И установить что-нибудь ещё, что может пригодиться. Успешно установились: Gimp, Libre Office, FileZilla, ну а VS Code меня более чем устраивает для моих скромных кодерских задач.

Всё работает, запускается и я не сказал бы, что очень медленно: конечно, в обзорах я читал, что у кого-то проекты в IntelliJ IDEA компилируются по несколько часов, но это не то, с чем мне предстоит столкнуться.

А вот с чем я столкнулся, так это с тем, что план мой по подготовке статьи полностью в LoD может не сработать: нет русского языка не только интерфейса, но и ввода.

Настройка русского языка ввода Linux on Dex

С тем, чтобы заставить работать переключение клавиатуры Linux on Dex между русским и английским мне пришлось помучиться. Ubuntu, как я упоминал — не моя сфера. Гугл, что на русском, что на английском результатов особо не дает. Единственный найденный метод — запуск клавиатуры Android поверх окна LoD. Инструкции с официального сайта linuxondex.com в результате оказались полезными, но простое следование им не сработало.

Читайте также:  Почему операционная система называется windows

Итак, сначала опишу тот метод, который сработал полностью, а затем — то, что не сработало и сработало частично (у меня есть предположение, что последний вариант кто-то, более дружный с Linux, сможет довести до конца).

Начинаем со следования указаниям на официальном сайте и слегка их модифицируем:

  1. Ставим uim (sudo apt install uim в терминале).
  2. Устанавливаем uim-m17nlib
  3. Запускаем gnome-language-selector и при предложении загрузки языков нажимаем Remind Me Later (всё равно не загрузит). В пункте Keyboard input method указываем uim и закрываем утилиту. Закрываем LoD и снова заходим (я закрывал поднесением указателя мыши к верхнему правому углу, где появляется кнопка «Назад» и нажатием по ней).
  4. Открываем Application — System Tools — Preferences — Input Method. Выставляем как у меня на скриншотах в пунктах 5-7.
  5. Изменяем пункты в Global Settings: устанавливаем m17n-ru-kbd в качестве метода ввода, обращаем внимание на Input method switching — клавиши переключения клавиатуры.
  6. Очищаем пункты Global On и Global Off в Global key bindings 1.
  7. В разделе m17nlib выставляем «on».
  8. Также Samsung пишет, что в Toolbar требуется установить Never в пункте Display Behavior (не помню точно, менял или нет).
  9. Нажимаем Apply.

У меня всё заработало без перезагрузки Linux on Dex (но, опять же, в официальной инструкции такой пункт присутствует) — клавиатура успешно переключается по Ctrl+Shift, ввод на русском и английском работает и в Libre Office и в браузерах, и в терминале.

Прежде чем я добрался до этого метода, было опробовано:

  • sudo dpkg-reconfigure keyboard-configuration (вроде бы настраивается, но к изменениям не ведет).
  • Установка ibus-table-rustrad, добавление русского метода ввода в параметрах iBus (в разделе Sundry в меню Applications) и настройка метода переключения, выбор iBus в качестве метода ввода в gnome-language-selector (как на 3-м шаге выше).

Последний способ на первый взгляд не сработал: появился индикатор языка, переключение с клавиатуры не работает, при переключении мышью по индикатору ввод продолжает осуществляться на английском. Но: когда я запустил встроенную экранную клавиатуру (не ту, что от Android, а ту, что Onboard в Ubuntu), я с удивлением обнаружил, что комбинация клавиш на ней работает, язык переключается и ввод происходит на нужном языке (до настройки и запуска ibus-table такого не происходило), но только с клавиатуры Onboard, физическая продолжает набирать на латинице.

Возможно, существует способ перенести это поведение и на физическую клавиатуру, но тут мне не хватило навыков. Обратите внимание, что для работы клавиатуры Onboard (находится в меню Universal Access) сначала требуется зайти в System Tools — Preferences — Onboard Settings и переключить Input event source на GTK в Keyboard Advanced Settings.

Впечатления

Не могу сказать, что Linux on Dex — это то, чем я буду пользоваться, но сам факт того, что на телефоне, вынутом из кармана, запускается десктопное окружение, всё это работает и можно не только запустить браузер, создать документ, отредактировать фото, но и программировать в настольных IDE и даже написать что-то на смартфоне для запуска на этом же смартфоне — это вызывает то подзабытое ощущение приятного удивления, которое возникало когда-то давно: когда в руки попадали первые КПК, на обычные телефоны получалось устанавливать приложения, появлялись сильно сжатые форматы аудио и видео, рендерились первые чайники в 3D, рисовались первые кнопки в RAD-средах, а на смену дискетам приходили флешки.

Читайте также:  Alice madness returns для mac os

Источник

Линукс для samsung galaxy

Итак, это мой мануал по сборке Linux для Спики. Строго говоря, тема относится только к этому аппарату, но будет полезна всем, кто хочет собрать Linux под свой смартфон.

90-100МБ, с запущенным Firefox 3.6 (две вкладки с ошибкой соединения)

50МБ.
Работает:

  • Экран
  • Xorg
  • Тачскрин
  • SD

Не работает:

  • Звук
  • Клавиатура (есть виртуальная)
  • Модем (даже самой звонилки нет)
  • Wi-Fi
  • Bluetooth
  • NAND
  • .

Стоит отметить, что большинство нерабочих вещей на самом деле работают, но не видятся системой. Ядро то стандартное.

Благодарности:
Список людей, которые прямо или косвенно помогли в портировании.
tom3q — за пофиксенный драйвер framebuffer’а
reali — за активную помощь

Сообщение отредактировал -WOLF- — 12.02.18, 23:56

Часть 1. Подготовка.

Что понадобится:
1) Galaxy Spica
2) Карточка памяти (я использую 1ГБ из комплекта)
3) Linux на ПК (можно Live CD или виртуалку). У меня установлена Mageia 1
4) Windows. Для прошивки.
5) Интернет, чем быстрее, тем лучше. Качать надо будет много.

Ставим crosstool.
Берём отсюда свежую CodeSourcery. Нам нужна GNU/Linux, лучше инсталлер.
Делаем скачанный файл исполняемым.

Подготовка.
Берём ядро от Android. Я брал стоковое ядро от самуснга Update2 (отсюда)
Для самсунговского ядра нужно скопировать содержимое папки delta в папку kernel с заменой. Аккуратнее, не перепутайте, внутри kernel есть ещё одна папка kernel, копировать надо в первую. Здесь папка kernel (котрая рядом с delta и modules) будет являться отправной точкой для всех путей.
Если берёте другие ядра, то вам не нужна initramfs, потому что сейчас она не используется.
На этом шаге вам понадобится патч фреймбуфера от tom3q. Если нет аккаунта на Самдроиде, то внизу сообщения есть версия 4 этого патча. 5я пока не совместима с 2D/3D дровами от Самса.
Применяем патч к ядру.
Теперь у фреймбуфера появилась поддержка косноли. НО, пока консоль будет пустой, нам надо ещё перевести вывод на неё. Для этого находим в файле kernel/arch/arm/kernel/setup.c строчку и комментируем:

//fb_class = class_create(THIS_MODULE, «graphics»);
//if (IS_ERR(fb_class)) <
printk(KERN_WARNING «Unable to create fb class; errno = %ld\n», PTR_ERR(fb_class));
fb_class = NULL;
//>
return 0;
>

Естественно, путь у вас будет другой.
На этом подготовка исходников ядра заканчивается.

Конфигурирование.
В качестве начальной настройки ядра можно взять конфиг из arch/arm/configs/ он называется spica_android_defconfig, а можно взять мой из аттача.
В дефолтном не забываем вырубить initramfs. И добавить Default kernel command string

В моём конфиге отключено всё, что содержит упоминание Android, исключая драйвер звуковухи.
Теперь можете конфигурировать ядро как захотите, только помните, что в нём не должно быть ни одного модуля . У нас же нет initramfs.

Сборка ядра.
Тут всё просто:

скрипт запаковывает ядро в архив, копирует на флешку и извлекает её. Потом я прошиваю ядро с нетбука. Если подправите пути, то и вам этот скрипт будет хорошо служить.
Прошивать надо как и другие прошивки, но только PDA.
Всё, на этом описани сборки ядра закончено.

framebuffer_v4.patch.zip ( 4,23 КБ )
config.zip ( 9,31 КБ )

Сообщение отредактировал -WOLF- — 26.02.12, 14:25

Супер! Поддерживаем всеми руками!
Тестеры точно уже есть)

Читайте также:  Windows 10 exception in module

Кстати если нужна помощь с удовольствием поможем чем сможем!)

Сообщение отредактировал reali — 23.01.12, 04:23

Дык там же в конфиге есть параметр, где можно прописать строку консоли и отключить бутлодерную консоль.

Y U NO USE OPENEMBEDDED? Ведь есть же SHR, с гуем для телефона, RIL. И система пакетов ipkg.
Также, на тебе initrd — http://www.kaa.org.ua/alex/rootfs.img.gz, там по дефолту телнет включается и usb0 присваивается адрес 10.8.0.2 — полезно для отладки, когда microsd не работает (как у меня на sgs2)

Ну просвети, где.

Знаю, но буду собирать с нуля, хотя, наверное, и сопру у них многое. Пакетным менеджером, скорее всего, будет rpm.

Для отладки удобнее грузиться с microSD с монолитным ядром. Меньше прошиваться надо.

Boot options —> Kernel command line type (Always use the default kernel command string)

Это только в новых ядрах, в том, что я собирал, такого ещё нет.

Что именно ты хочешь этим сказать? Я не собираюсь всё с нуля писать, я просто собираю систему.
В качестве оболочки, наверное, возьму что-нибудь на GTK. Может GPE.
rpm’ки из MeeGo я тоже хочу, в шапке ж написано
Впрочем, никто ж не запрещает тебе собирать на базе этой всё, что захочешь. Я не против, если будет выбор оболочек, только за, в этом и есть смысл.

Сообщение отредактировал -WOLF- — 23.01.12, 18:40

Я хочу сказать, что если есть готовое окружение для сборки пакетов, то надо пользоваться им, а не придумывать еще одно. Проще пару пакетов в апстрим закинуть, чем из апстрима руками все копировать и мучаться с совместимостью (имена пакетов, имена библиотек и симлинков на них внутри пакета). Ведь все пакеты уже есть в OE, тебе достаточно будет сделать пакеты с ядром и модулями для диалера и прочих демонов. Вот я в упор не понимаю, зачем некоторые так угорают по LFS и пишут свою систему инициализации — это же огромные грабли при апдейтах.

Кстати. GPE мертво, и никто его не пилит. Сейчас основной гуй SHR — E17, альтернативный — Aurora на qt4. Мне самому не нравится openembedded, я хочу юзать убунту/генту, но мне лень делать пакеты для актуальной версии freesmartphone (потому что сначала надо портировать все на ванильное ядро, загнать в апстрим и портировать из старого андроидного ядра драйвер модема).

В общем, рекомендую разобраться сначала с тем, какой протокол модема используется, как настраивать alsa для каждого сценария (звонок/музыка/блютус), какие фирмвари нужны, а потом взять образ SHR для близкого девайса (например, с самсунговским модемом, типа nexus s) и добиться работы иксов, модема, звука. Потом подготовить патчи для freesmartphone.org и интегрировать их (советую посещать #openmoko-cdevel во freenode, там всегда помогут с интеграцией и расскажут, что и как работает). Строго говоря, если работа модема и телефонные функции не интересны, можно забить на это все и использовать обычный «десктопный» дистрибутив.

В общем, я думаю, что внимание надо заострять на том, как собирать ядро, как портировать драйвера между версиями и как управлять железом (модем, wifi) из юзерспейса, какие есть демоны для телефонной периферии (сенсоры освещенности, гироскоп, акселлерометр). А в качестве дистрибутива выбрать стандартный — ubuntu/fedora/meego/OE, чтобы была большая база собранных пакетов, и где есть сообщество, занимающееся подготовкой пакетов и исправлением багов.

Источник

Оцените статью