Pull to refresh

Переселение души: linux на android планшете

Reading time 4 min
Views 107K
Доброго времени суток всем.

Моя история начинается с прочтения данной статьи, после которой я и решился приобрести чудо китайского планшетостроения: 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 клавиатура + мышь будут очень ценными при отладке и настройке.

Теперь о том, что можно использовать в процессе

ramdisk от zt-180
burntool
Набор для перепаковки ramdiskа. Бинарники нужно закинуть в свой PATH.

Спасибо за внимание
Tags:
Hubs:
+39
Comments 11
Comments Comments 11

Articles