Переселение души: linux на android планшете
Моя история начинается с прочтения данной статьи, после которой я и решился приобрести чудо китайского планшетостроения: superpad. Данный планшет брался как игрушка для «поковырять немного», по совместительству, читалка, игралка на пары и смотрелка в долгую дорогу… Сразу отмечу, что у меня два usb винчестера на 500 гб и 1тб, на которых и хранится все самое важное для веселой жизни, и разбиты они в ntfs и ext4. И, естественно, планшет их не видит.
Вот и первая причина поковыряться. После просмотра 200 страниц форума на xda-developers.com очертились определенные
минусы | плюсы |
---|---|
нужны соответствующие модули ядра linux | обновление прошивки до 2.2, заботливо собранную народными умельцами из стекла и картона + прошивки superpad 2 |
ушлые китайцы исходных кодов ядра под данный девайс не дают и всячески препятствуют их получению… |
На данном этапе все попытки вскрытия данного планшета отложились в долгий ящик. До славного времени для студента – сессии. А так как на сессии студенты делают абсолютно все, лишь бы не по предмету, то веселые ночные посиделки в интернете на заведомо буржуйских сайтах возобновились. И пришла гениальная идея поставить на данный планшет православный linux, в моем случае – ubuntu.
Что из этого вышло, смотрим ниже.
Понятно, что просто так взять и установить не получится… ну что же, где наша не пропадала…
нам понадобятся:
- Linux – у меня kubuntu
- windows – xp проще всего
- хорошее усвоение сознанием двух фраз: «just for fun!» и «спокойствие, только спокойствие».
- образ linux, тут смотреть, как создать свой ; созавать образ нужно под свою архитектура процессора, у меня процессор семейства arm11 с архитектурой arm6, так что ubuntu выше 9.10 – мечта…
Если у вас arm cortex – то вам повезло и для вас открываются славные возможности последней ubuntu и заточенной под планшеты unity. - microsd флэшкарта, отформатированная в три раздела: fat, ext2, куда записывается образ, и swap
рассмотрим основные этапы загрузки android и linux
1. Power on and boot ROM code execution | Power on and boot ROM code execution |
2. The boot loader | The boot loader |
3. The Linux kernel | The Linux kernel |
4. The init process | The init process |
5. Zygote and Dalvik | console(bash, zsh. ) / wm(kde, gnome. ) |
6. The system server | Boot completed |
7. Boot completed |
Как видно, отличия начинаются с этапа выполнения init.
Его-то и проще всего поменять.
Честно напишу, думал, что можно использовать только адроидовский инит и что он намертво прикручен к ядру. И даже получив пример рабочего ramdiskа от другого планшета, не думал, что он заведется…
содержимое ramdiska
bin dev etc home init init.rc lib linuxrc mnt newroot opt proc root sbin sys tmp usr var
В /bin лежит busybox, в /sbin – switch_root ссылкой на него.
Код init из ramdiskа от zt-180
#!/bin/sh echo Starting from initram image. Echo Waiting for SD-CARD wake up. sleep 3 echo "Mounting new rootfs" mount -t ext2 /dev/mmcblk0p2 /newroot && echo OK echo Hold on, switching root. exec switch_root /newroot /sbin/init echo hrm, have a shell instead exec /bin/ash
Остается прошить ramdisk в память (я использовал burntool под xp) и — вуаля, этап загрузки. Да, прошивал я вместо recovery, так что для запуска Linux приходится зажимать клавиши при старте.
Так, этап загрузки пройден и стоит запастись терпением, так как консоль не подает признаков жизни, а все грузится достаточно медлительно.
Настраиваем автологин на первую консоль
В /etc/init/tty1.conf заменяем последнюю строчку на exec /bin/login -f Yor_Login < /dev/tty1 >/dev/tty1 2>&1 потом в своем ~/.bashrc можно прописать команды, которые будут стартовать при автоматическом логине.
Боремся с икс-сервером
У меня он определенно не дружил с тачскрином, xorg.conf и xterm… удалил драйвер synaptic, закинул в ~/.xinitrc следующее:
#!/bin/bash # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ # /etc/X11/xinit/xinitrc # # global xinitrc file, used by all X sessions started by xinit (startx) # invoke global X session script #. /etc/X11/Xsession xclock -geometry 50x50-1+1 & exec xterm -geometry 80x66+0+0 -name login
Боремся с рабочей средой
Я захотел поставить kde, так как мне безумно нравится отрисовка графики библиотекой qt. Сразу скажу: да, поставилось и завелось, но КАК…
Во-первых, сразу настроил автологин:
в /etc/kde4/kdm/kdmrc находим и меняем под себя следующее
AutoLoginEnable=true # If true, auto-login after logout. If false, auto-login is performed only # when a display session starts up. # Default is false #AutoLoginAgain=true # The delay in seconds before automatic login kicks in. # Default is 0 AutoLoginDelay=3 # The user to log in automatically. NEVER specify root! # Default is "" AutoLoginUser=Login # The password for the user to log in automatically. This is NOT required # unless the user is logged into a NIS or Kerberos domain. If you use this # option, you should "chmod 600 kdmrc" for obvious reasons. # Default is "" AutoLoginPass=Password
и, как написано, делаем chmod 600 kdmrc в консоли под рутом, чтобы нехорошие личности не подсмотрели наш пароль.
Во-вторых, при входе подозрительно долго висела заставка, и я, засомневавшись, вызвал startkde из консоли. После долгого и нудного показа всевозможных ошибок наконец загрузилась плазма в режиме нетбука. Графические эффекты выключены, так как мы сидим под framebufferом, и наблюдаются местами дичайшие тормоза, но все же это kde и оно загрузилось!
Тонкая подстройка всего и вся под себя
У каждого своя, оптимизацию я пока что не проводил, а сделать предстоит очень многое: ускорить загрузку, оптимизировать рабочее пространство. Посматриваю в сторону более легковесного wm – e16 – но пока основным не сделал. так же нужно откалибровать тачскрин, благо что виртуальная клавиатура уже есть в kde.
Посматриваю в сторону openbox + razor-qt .
«Наслаждаемся!»
Итоги
Подключил репозитории debian 6. Не работает в упор звук, не настроен тач и рабочее пространство. Очень не хватает модулей ядра, так что попытаюсь собрать и прикрутить…
Сбиты многие службы и политики, в интернет ходит только под root, но интернет настроен и это радует.
Ps: Да, без модулей ядра подключается только разделы в fat и ext2, что не радует.
usb клавиатура + мышь будут очень ценными при отладке и настройке.
Как я Linux на планшет ставил
В мои руки попал Prestigio MultiPad VISCONTE V с Windows 10 на борту. Поплевашись поигравшись с ней буквально пару минут было решено обновить его до Windows 11 поставить туда Linux.
Экран: 10,1 дюйма, TFT IPS, 1280х800, сенсорный, мультитач;
Процессор: Intel Atom Z3735F (Bay Trail), до 1830 МГц;
Количество ядер процессора: 4;
Видеоядро: Intel HD Graphics;
Объём оперативной памяти: 2 ГБ;
Объём встроенной памяти: 32 ГБ eMMC;
Поддержка карт памяти: есть, microSD до 64 ГБ;
Операционная система: Windows 10 (32 бит);
Поддержка Wi-Fi: есть, Wi-Fi 802.11n;
Поддержка Bluetooth: есть, Bluetooth 4.0;
Порты: 1 x microUSB, 2 x USB 2.0, 1 x microHDMI, 1 х аудиовыход 3,5 мм;
Тыловая камера: есть, 2 МП;
Фронтальная камера: есть, 2 МП;
Ёмкость аккумулятора: 6500 мА*ч;
Размеры корпуса (ШхВхГ): 133х210,3х8,75 мм;
Вес: 400 грамм;
Нам потребуется
- Прямые руки
- Клавиатура
- Мышь
- Интернет
- Базовые навыки работы с терминалом
- SSH для удобства
- USB флешка с дистрибутивом, который умеет в UEFI 32
Данная статья не является призывом к действию, правильным мануалом. Всё написанное лишь мой опыт установки и настройки Linux на Windows планшет.
Ответы на возможные вопросы
Почему? Я являюсь давним пользователем Linux, мне так удобнее.
Зачем? Искал мобильное устройство, которое будет служить верным помощником при инвентаризации оборудования, составления карты сети организации, а так же терминалом и монитором использования ресурсов серверов на работе.
Выбор дистрибутива
Для успешной загрузки системы нужно, чтобы дистрибутив обладал загрузкой с UEFI 32 бит, поскольку мне абсолютно не хотелось возиться с Arch Linux, выбор пал на другие дистрибутивы.
Сначала обратившись к известному, но не называемому, форуму по мобильным устройствам был выбран Linux Mint, который не умел в WiFi, не мог поворачивать экран и имел графические артефакты при загрузке.
Следом было решено оттуда же попробовать ROSA Linux, он уже умел в WiFi, но совершенно не хотел дружиться с датчиком поворота экрана, который уже работал, но картина мира у него отличалась на 180 градусов от реального его расположения в горизонтальном положении, при вертикальном работал он прекрасно, что совершенно не подходило под мои задачи.
Затем, вдохновившись видео от Дмитрия Бачило с его Asus Vivotab 8, выбор пал на Debian. Установил Debian с Gnome на борту, В нём изначально не работал WiFi, нужно было установить пакеты. Данный дистрибутив умел почти всё, кроме камер, да и они мне не особо были и нужны. Я им пользовался около полугода до очередного обновления. Обновление сломало ориентацию экрана. Поскольку мне хотелось найти дистрибутив, который будет максимально совместим с планшетом, а не вечно строить костыли и велосипеды, то было решено сменить дистрибутив. В этот раз выбор пал на Fedora. На нём мы и остановимся.
Fedora Linux
Опыта использования данного дистрибутива у меня не было, поскольку я являюсь приверженцем Debian и ему подобных дистрибутивов. Поскольку поиски «идеального» дистрибутива продолжались, я записал загрузочную флешку и начал установку системы. Установщик сразу определил WiFi адаптер планшета, чего не было в других дистрибутивов, тем самым отпала необходимость раздавать интернет по USB для установки системы.
Что работало из коробки? Почти всё, не работали только камеры, что для меня не было важным, как я уже писал выше.
Выбор DE
С выбором рабочего окружения были свои сложности. Fedora поставляется с Gnome на борту, данная среда идеально подходит для работы с сенсорным экраном, но моя душа хотела KDE. Выбор пал на другой дистрибутив с Plasma Mobile на борту, в нём работал только сенсорный экран, ни WiFi, ни автоматический поворот экрана, ни регулировка яркости не захотели дружиться с данным дистрибутивом. Было решено поставить обратно Fedora и скрестить слона с единорогом установить туда Plasma Mobile.
Девять кругов Plasma Mobile
Изучив детально вопрос я выяснил, что данное окружение очень сложно найти в качестве пакетов для x86 и x64. Спустя огромное время страданий поиска был найден сторонний репозиторий, из которого я успешно установил данную среду. Радость моя была лишь до первого запуска данной среды.
Недолго думая, было решено вернуть обратно Gnome и наконец-то оставить систему в покое.
Выводы
Сказать, что я однозначно полюбил Fedora Linux не могу, но это один из дистрибутивов, которые порадовали меня своим удобством и продуманностью.