Image may be NSFW.
Clik here to view.Речь пойдет о запуске полноценного дистрибутива Linux на устройствах, на которых уже установлен урезанный Linux. Проще говоря, на устройствах с Android и Angstrom.
Этот способ установки является на сегодняшний день самым безболезненным для девайса, что хорошо подходит тем, кто хочет по-прежнему пользоваться устройством по назначению, а не только как площадкой для тестирования Linux. При использовании этого способа файлы Linux вообще не будут устанавливаться на устройство с Андроидом. Вместо этого мы установим их на USB-флешку.
Что требуется?
- Обычный компьютер c Linux Ubuntu (у меня Ubuntu 10.10) или Debian. Можно использовать и другие дистрибутивы Linux, нужно только чтобы в них были установлены утилиты Ubuntu: пакет dpkg и его друзья, и скрипт debootstrap.
- Собственно устройство с ОС Android (или другой ОС, основанной на Linux), которое умеет работать с флешкой. Я использовал Toshiba AC100 и еще один мобильный девайс, который работает под Linux Angstrom, но ничего специфического для этих устройств не применял, так что советы должны сгодиться и для других девайсов.
- Если у вас устройство Android или другое устройство, на котором нет доступа к Linux root, необходимо выполнить рутинг устройства и установить на него набор утилит BusyBox. Стараниями хакеров и то, и другое теперь можно сделать из-под самого Андроида, без всяких перепрошивок. Тем не менее, рутование Андроида остается потенциально опасной операцией. Будем радоваться тому, что это единственное серьезное вмешательство в саму ОС Андроид, которое нам понадобится.
Шаг 1, необходимый, если у вас на устройстве не рутованный Андроид.
Рутование Андроида стало уже неприлично простым благодаря программе z4root. Эта программа устанавливается как и любая программа Android. После запуска программы и выполнения ей всех операций достаточно перезагрузить устройства и все готово – ваш Андроид порутан. Более подробные инструкции можно найти на сайтах, посвященных программе z4root. Далее устанавливаем BusyBox. Для этого тоже есть специальная программа – BusyBox for Android. Как и z4root, BusyBox устанавливается из-под Андроида. На моем девайсе программа установки BusyBox сообщила, что утилита установить не удалось, но они, тем не менее, были установлены. Ну и последнее, это установка программы-эмулятора терминала для Android. Без такой программы работать с Линуксом будет трудно и неинтересно.
Шаг 2. Подготовка флешки.
Задача этого этапа – отформатировать флешку в Ext3 и записать на нее файлы базовой установки Ubunu Linux. Допустим, флешка, приговоренная к установке Убунты, опознана системой как /dev/sda1. Тогда сначала ее нужно размонтировать, а затем скомандовать:
mkfs.ext3 –L linux /dev/sda1
Опция -L устанавливает метку диска. Если ваш вариант mkfs.ext3 не поддерживает эту опцию, метку можно установить после выполнения mkfs.ext3 с помощью e2label:
e2label /dev/sda1 linux
Теперь смонтируйте флешку снова (Linux может смонтировать ее автоматически, например, в директорию /media/linux) и запишите на нее файлы Linux. Флешка должна быть смонтирована (перемонтирована) с опциями dev,suid,exec. На всякий случай, команда ручного монтирования выглядит так:
mount -t ext3 -o exec,suid,dev /dev/sda1 /media/linux/
Для создания базовой системы Ubuntu ARM на флешке хорошо подходит утилита debootstrap.
Командуем:
debootstrap --foreign --arch=armel maverick /media/linux
Здесь «maverick» – название дистрибутива Ubuntu. Ключ —foreign указывает на то, что базовая система Linux собирается для другой архитектуры (в данном случае – ARMEL). Информацию об установке различных версий Ubuntu скрипт debootstrap читает из файлов в директории
/usr/share/debootstrap/scripts/
Вы можете посмотреть содержимое этой директории, чтобы узнать, какие версии Ubuntu сконфигурированы для debootstrap. Если такой директории у вас нет, или в ней нет файлов конфигурации maverick или natty, это значит, что у вас установлена старая версия debootstrap, которая не сможет сделать все правильно. Необходимо обновиться.
После того как утилита debootstrap запишет на флешку все необходимые файлы Linux, размонтируйте флешку и и подключите к целевому устройству.
Шаг 3. запуск Linux на целевом устройстве.
Флешка может быть распознана устройством автоматически, а может и не быть. Откройте эмулятор терминала (или подключитесь к терминалу другим способом) и в режиме root найдите устройство, соответствующее флешке, в директории /dev. У меня оно нашлось как /dev/block/sda1. Лучше всего создать для монтирования раздела с Ubuntu Linux специальную директорию. Я перемонтировал файловую систему /system в режиме rw и создал директорию /system/linux, но подойдет и любая другая. Монтируем флешку:
mount –t ext3 /dev/block/sda1 /system/linux
Мы почти у цели. Осталось совсем немного, выполнить последовательность команд, которая подготовит систему в разделе /system/linux к запуску в режиме chroot. Вот эти команды:
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH export USER=root export HOME=/root export TERM=xterm busybox mount -o remount,exec,suid /system/linux cd /system/linux busybox mount -o bind /proc proc busybox mount -o bind /sys sys busybox mount -o bind /dev dev busybox mount -o bind /dev/pts dev/pts busybox chroot . bash
Для удобства эти команды можно записать в файл скрипта, например, startlinux.sh.
Выполнив файл startlinux.sh, вы должны увидеть нечто вроде:
I have no name!@localhost#
Это означает, что Ubutu на устройстве ARM запущена (Ура!), но не настроена. Для завершения установки необходимо, уже в Ubuntu, скомандовать:
/debootstrap/debootstrap --second-stage
что и завершит установку. Теперь выходите из Ubutu в «родную систему» устройства с помощью exit и снова запустите файл startlinux.sh. На этот раз приглашение командной строки в Ubuntu выглядит как
root@localhost#
или наподобие. Это значит, что система настроена. Осталось настроить apt-get. Для этого в файл /etc/apt/sources.list добавьте строку
deb http://ports.ubuntu.com/ubuntu-ports/ maverick main
где «maverick», опять же, нужно заменить именем установленной версии Ubuntu. На этом предварительная установка Ubuntu для ARM закончена. Можете приступать к закачке дополнительного софта.
Продолжение следует.