LG GT540 Optimus - Установка Debian



Реп: (7)
В данной теме речь пойдёт об установке Debian GNU/Linux Sid на LG GT540. Не знаю, насколько соответствует эта тема данному разделу, но раздел лучше для неё я не нашёл.

Для начала небольшое введение.

Казалось бы - линукс на телефоне, но зачем?
Всё очень просто. Устанавливая полноценный линукс, можно получить немало отладочной информации, а также, при желании, можно получить возможность запуска некоторых программ, которые отсутствуют на андроиде, но есть в линуксе. В первом случае получаем мощный инструмент для портирования свежих версий андроида, а также потенциальную возможность тестирования андроида без перепрошивки аппарата (то есть устанавливать аналогичным методом). А кому-то может будет просто интересно, каково это. Либо кому-то захочется понтонуться - не суть важно. Перейдём непосредственно к описанию того, что нужно, а также самого процесса установки и запуска.

Во-первых и самых главных - благодаря тому, что андроид официально и изначально работает поверх Linux, появляется лёгкая возможность установки полноценного линукса без лишнего геморроя с драйверами. То есть достаточно изменить корневую директорию командой chroot на ту, в которой содержится файловая система интересующего нас дистрибутива (в данном случае это Debian, но это может быть и Gentoo, и Angstrom, и другой, поддерживающий ARM) - и практически имеем полноценный линукс со всеми вытекающими последствиями и возможностями.
Во-вторых - раз уж выбран такой метод, значит необходимы права root, так как без них сменить корневую директорию не удастся.
В третьих - этот метод хорош тем, что позволяет обойтись без перепрошивки устройства, и даже без выгрузки андроида - андроид будет работать параллельно. Конечно же - практичность для повседневного применения в этом случае минимальна.

Метод также выбран потому, что он уже успешно опробован на других моделях.
Делалось всё на основе следующей статейки: http://www.saurik.com/id/10
Кроме того дело не обошлось без этого руководства (использовался скрипт оттуда, который был подправлен с учётом особенностей разделов флеш-памяти оптимуса): Запуск Debian на Samsung GT-I5700 Spica
По запуску VNC-сервера использовалось это руководство: http://habrahabr.ru/blogs/android/52646/

Базовая установка

Приступим к установке.
Потребуется карта памяти SD гигабайта как минимум на 2 (идёт в комплекте с оптимусом). Её необходимо разбить на два раздела:
  • Первый - файловая система FAT
  • Второй - файловая система Ext2


Раздел Ext2 должен иметь размер 1Gb. Ровно 1024 мегабайта, то бишь 1048576 килобайт, то бишь 1073741824 байта - эта точность может пригодиться при создании раздела, но можно сделать раздел чуточку больше, и потом на него накатить образ. Пользователи GNU/Linux также могут примонтировать данный образ как файловую систему Ext2, и просто скопировать оттуда файлы на раздел.
Какой программой разбивать - дело личное.

На разделе с файловой системой FAT создаём директорию deb
Затем в корень этого раздела копируем файл bootdeb


На раздел с файловой системой Ext2 необходимо накатить образ, находящийся в архиве по соответствующей ссылке, которая приведена в конце этого сообщения. В линуксе это делается командой dd (если нужно уточнить - могу написать, как), а в Windows - есть соответствующая программка для записи образов флешек на флешки (какая именно - не знаю. Не пользуюсь я Windows).

После того, как образ записан на раздел, можно считать, что Debian установлен.
Теперь установим терминал и клиент VNC для андроида из андроид-маркета (Android Terminal Emulator и AndroidVNC, например). Вместо эмулятора терминала можно использовать adb shell - это удобнее, но тогда придётся пользоваться консолью с компьютера.

Запуск осуществляется следующим образом:
В терминале или adb shell пишем команды:

su
sh /sdcard/bootdeb


В результате получаем консоль с Debian GNU/Linux. Можно делать что угодно.

Выход осуществляется, конечно же, командой exit


Запуск X11

Для запуска X11 с VNC-сервером набираем в консоли установленного Debian команду:

stx


stx является скриптом, в который вбиты команды инициализации и запуска сервера VNC (в данном случае используется Tight VNC Server).

Далее терминал нужно перевести в фоновый режим (не закрывать его, иначе дочерние процессы могут оборваться) и настроить VNC-клиент.

Настройки такие:
Ник - любой
Адрес - localhost
Пароль - qwerty
Порт - 5901 (по умолчанию в настройках стоит 5900 - это нужно исправить)

После этого на экране появится IceWM.
Пользуйтесь на здоровье.


Примечание:
Если же кто-то желает произвести установку с нуля - нужен установленный на компьютер Debian GNU/Linux и пакет debootstrap, с помощью которого будет сформирована базовая файловая система для установки. По ссылкам, которые были приведены выше, информации достаточно для этого. Это может потребоваться, к примеру. для других устройств с андроидом.



Набор для установки: http://narod.ru/disk/25684455000/optimusdebkit.tar.bz2.html (478Mb)

Файл такой большой потому, что уже установлено достаточно пакетов. То есть нет необходимости устанавливать множество пакетов через интернет. Кому не нравится размер файла - могу сделать установку и настройку с нуля. В этом случае потребуется установка некоторых пакетов самостоятельно, но файл будет занимать около 200Mb.

Сообщение отредактировал tr00 - 05.10.10, 11:08



Реп: (3)
спасибо огромное, любопытный материальчик)
скриншоты или фото в студию пожалуйста, если можно))

какие из беспроводных интерфейсов завелись?
и как насчёт оконного менеджера, gnome, например?))



Реп: (7)
isymby @ 05.10.2010, 13:29 *
спасибо огромное, любопытный материальчик)
скриншоты или фото в студию пожалуйста, если можно))


Пока некачественное видео, сделанное в конце лета: http://www.youtube.com/watch?v=q0zOzz7nFn4
Руки не доходят снять нормальное пока что. К тому же пока что штатива нет для камеры (снимал на Kodak Zx1).
Если интересно, могу сделать фото.

isymby @ 05.10.2010, 13:29 *
какие из беспроводных интерфейсов завелись?


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

isymby @ 05.10.2010, 13:29 *
и как насчёт оконного менеджера, gnome, например?))


GNOME - это слишком жирно. Даже для стационарного компьютера (KDE4 и то меньше оперативной памяти ест). Так что IceWM. Доступно же из свободной только около 40Mb RAM - остальное отъедает андроид со своими приложениями. Но если его выгрузить полностью - будут доступны все 256Mb RAM. Но тут возникают проблемы с тем, чтобы запустить X11 без VNC-сервера. Например, для Samsung Galaxy патчили ядро, чтобы включить нестандартную битность цвета с целью запуска X11. Как на оптимусе будет - не знаю.
Вообще при желании можно и раздел подкачки в виде файла сделать, но это очень жестоко по отношению к карте памяти.



Реп: (3)
иногда следует быть жестоким по отношению к флешке)

фото-это хорошо, сделайте.
а что касается Dual boot, можно это сделать? андрюха отдельно, линукс отдельно?



Реп: (7)
isymby @ 05.10.2010, 15:41 *
а что касается Dual boot, можно это сделать? андрюха отдельно, линукс отдельно?


Вот тут делалось:
https://code.google.com/p/linux-on-android/

Но насколько это безопасно для аппарата (команда flash_image) - окончательно ещё я не выяснил. Мне нужно просто загрузить свой boot.img в память, чтобы загрузить дебиан отдельно от андроида. То есть мне нужен аналог команды fastboot boot (просто загрузка образа в оперативную память без прошивки на флеш устройства) на самом аппарате.



Реп: (7)
Вот вам фотографии:
http://img835.imageshack.us/img835/9816/dscf1131z.jpg
http://img217.imageshack.us/img217/3576/dscf1132e.jpg



Реп: (13)
Можно я немножко замечаний сделаю ??
1. Надо убрать из скрипта busybox, т.к. все те комманды доступны из toolbox
2. образ лучше не делать, проще корень сжать в .tar.bz2 наверно, чтоб не было зависибости от ФС и её размера, но это актуально только для *nix_оводов
3. А вот /etc/resolv.conf можно и почистить было )) - пустяк

На счёт количества памяти, я войдя в chroot сделал файл подкачки в файл и вродь ничего так, в броузере загрузил 3 вкладки, и даже не ругнулась на нехватку оперативы

А вообще отличный туториал, и образинка очень даже, маленькая и со вкусом(ничего лишнего)
Но я люблю Gentoo, поэтому у меня и оптимус тоже прогентован))

Сообщение отредактировал FrOGGyZZZ - 06.10.10, 15:31



Реп: (54)
Че то не канает, вываливается с ошибкой
и можно поточне расписать про команду bb вроде в ней допустил ошибку

Сообщение отредактировал tod - 07.10.10, 14:10



Реп: (7)
FrOGGyZZZ @ 06.10.2010, 17:32 *
2. образ лучше не делать, проще корень сжать в .tar.bz2 наверно, чтоб не было зависибости от ФС и её размера, но это актуально только для *nix_оводов


Делал наспех, но при этом с установленными иксами - особо не было времени делать чистый образ из debootstrap.

К тому же я стремился к универсальности - поэтому не стал всё в .tar.gz загонять - чтобы образ можно было залить и из-под венды какой-то там программкой наподобие rawrite.exe

tod @ 07.10.2010, 17:07 *
и можно поточне расписать про команду bb вроде в ней допустил ошибку


Не bb, а dd. bb - это ASCII-ART демонстрация возможностей библиотеки aalib (рекомендую установить и посмотреть, кстати. Наверно стоит и на оптимус поставить).

dd if=deboptimus.img of=/deb/sdb2

Где /dev/sdb2 - второй раздел на устройстве /dev/sdb , то есть второй раздел на карте памяти. Так как скорее всего винчестер - это /dev/sda . Если стоит два винчестера - тогда второй винчестер /dev/sdb, и второй раздел на нём можно угробить этой командой. Посему после вставки карты памяти в компьютер (телефон как mass storage не прокатывает - надо подключать карту памяти НЕПОСРЕДСТВЕННО к компьютеру через кардридер) следует смотреть, какой файл устройства ей соответствует.
Это можно сделать командой dmesg | tail - там будет выведено, какое устройство sdX подключено.

Сообщение отредактировал tr00 - 09.10.10, 18:23



Реп: (14)
Cпасибо за готовый образ и инструкцию ;) Настроил себе sshd на Android-е, поставил еще mc, такое суровое впечатление, вроде сидишь на каком-то серваке, а в реальности - это телефон, лежащий в кормане ;)

P.S. sshd, как лентяй, настроил покупкой в маркете OpenSSHd утилиты за 1.5$



Реп: (54)
Ой, да dd ошибся когда сюда писал :D, а пробовали чтоб работала и debian и apps2sd?



Реп: (7)
tod @ 10.10.2010, 18:05 *
а пробовали чтоб работала и debian и apps2sd?


Теоретически заработать должно. Только надо путь к файлу устройства, который монтируется, в скрипте поправить (скорее всего это будет /dev/block/vold/179:3 ).



Реп: (54)
пытался поправить скрипт, не смог разобраться :(

Сообщение отредактировал tod - 12.10.10, 16:16



Реп: (159)
Запустил. Работает. Если хотите использовать вместе с app2sd, то в скрипте bootdeb убираем все строки с командой mount (раздел у нас уже монтироан скриптом app2sd) и изменяем mnt=/sdcard/deb на mnt=/system/sdcard (так раздел прописан в app2sd)



Реп: (159)
Почему-то не получается выйти в интернет из Debian. Подскажите как это сделать. Интернет - EDGE и 3G, WiFi у меня нет.



Реп: (159)
Я тут ошибся, а редактировать не могу. При использовании вместе с app2sd в bootdeb нужно убрать только mount -o rw -t ext2 /dev/block/vold/179:2 /sdcard/deb а не все строки с mount.



Реп: (7)
yura12345671 @ 20.10.2010, 03:23 *
очему-то не получается выйти в интернет из Debian. Подскажите как это сделать. Интернет - EDGE и 3G, WiFi у меня нет.


Просто подключаешься к интернету - неважно, EDGE, UMTS или WiFi. Проверить можешь командой ping. Но лично я через wifi только проверял. Могу чуть погодя проверить через UMTS - поменяю только SIM-карту на полубезлимит от мегафономодема.



Реп: (159)
ping работает только если указать IP адрес. Если ввести обычный (например jabber.ru, 4pda.ru), то получаю ответ unknown host



Реп: (22)
yura12345671 @ 20.10.2010, 13:38 *
ping работает только если указать IP адрес. Если ввести обычный (например jabber.ru, 4pda.ru), то получаю ответ unknown host


Измените настройки dns:

setprop net.dns1 8.8.8.8

НУжно выполнять команду от root, в примере dns сервер от google



Реп: (156)
может сейчас глупость спрошу
А флеш пойдет???


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.11.23, 11:01