Quantcast
Viewing latest article 6
Browse Latest Browse All 10

Безопасный запуск Linux на устройстве ARM

Image may be NSFW.
Clik here to view.
Речь пойдет о запуске полноценного дистрибутива Linux на устройствах, на которых уже установлен урезанный Linux. Проще говоря, на устройствах с Android и Angstrom.

Этот способ установки является на сегодняшний день самым безболезненным для девайса, что хорошо подходит тем, кто хочет по-прежнему пользоваться устройством по назначению, а не только как площадкой для тестирования Linux. При использовании этого способа файлы Linux вообще не будут устанавливаться на устройство с Андроидом. Вместо этого мы установим их на USB-флешку.

Что требуется?

  1. Обычный компьютер c Linux Ubuntu (у меня Ubuntu 10.10) или Debian. Можно использовать и другие дистрибутивы Linux, нужно только чтобы в них были установлены утилиты Ubuntu: пакет dpkg и его друзья, и скрипт debootstrap.
  2. Собственно устройство с ОС Android (или другой ОС, основанной на Linux), которое умеет работать с флешкой. Я использовал Toshiba AC100 и еще один мобильный девайс, который работает под Linux Angstrom, но ничего специфического для этих устройств не применял, так что советы должны сгодиться и для других девайсов.
  3. Если у вас устройство 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 закончена. Можете приступать к закачке дополнительного софта.
Продолжение следует.


Viewing latest article 6
Browse Latest Browse All 10

Trending Articles