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

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

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

    Спасибо за внимание
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 11
    • +8
      Пару фото или видео, было бы уместно в данной ситуации.
      • 0
        Я знаю, извините, но процесс написание статьи да и самого создания сего чуда очень размазан по времени получился.
        Постараюсь добавить.
        Может, конкретно что-нибудь хотите увидеть? Могу сделать видео о перепаковке ramdiskа.
        • НЛО прилетело и опубликовало эту надпись здесь
      • +2
        Кратко: загрузка долгая, отклик не очень. Сделаю видео, как только настрою рабочую среду нормально.
        • 0
          Столько переделали, а винты все равно не подключили. Обидно.
          • 0
            Давайте видео о работе, может самой загрузке.
            Расскажите что в итоге получилось?
            • 0
              Кратко в итогах написал.
              Как только возьму фотоаппарат, сниму загрузку и работу. У самого из камер — только веб и 2.3 мп на nokia 5700, так что решил пока не снимать.
            • +2
              Маленькое уточнение АРМ11 это семейство, а архитектура ARMv6.

              MrFrizzy, а не пробовал использовать Linux Installer? У меня все ни как руки не доходят проверить.

              Из описания:
              — Программа подключает ехт2/3/4 раздел или создает.loop файл на карте памяти — Скачивает выбранный дистрибутив линукс
              — Устанавливает его
              — Создает скрипт загрузки

              Кстати, по поводу исходников ядра, посмотри тут:
              git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=summary или тут source.android.com/source/downloading.html
              • 0
                Спасибо, уже присматриваюсь к этим ссылкам неделю где-то, просто свободного времени нехватка: 3 курс, курсовая, лабы, личная жизнь бьет ключом в общаге…
                Если не ошибаюсь, про installer где-то читал и что-то мне не понравилось в описании… + очень люблю все своими руками делать, или как минимум, пересобирать.
                За уточнение — отдельное спасибо. Постараюсь чуть-чуть подправить статью в скором времени.
              • 0
                Может, заодно сообщество подскажет мне хороший сервис хранения фотографий, а то habrastorage.org меня напрочь не радует…
                • 0
                  патченное ядро для флайтачей якобы живет тут github.com/dandel/linux-2.6.32.y
                  только у меня не стартовало.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.