Skip to content

Запуск дистрибутива Angstrom

Anton Skshidlevsky edited this page Aug 6, 2013 · 22 revisions

Через Linux Deploy под Android можно запустить дистрибутив Angstrom.

Инструкция

1) Создать образ системы (rootfs) в формате tar.gz на сайте narcissus.angstrom-distribution.org и получить ссылку на архив.

2) В приложении Linux Deploy 1.4.1+ создать новый профиль и в параметрах указать следующее: Дистрибутив - RootFS; URL-адрес зеркала - полученная ранее ссылка; Тип установки - Файл; Путь установки - путь к будущему образу (например, /mnt/sdcard/angstrom.img); Размер образа (МБ) - 100 (можно больше); Имя пользователя - android, Окружение рабочего стола - XTerm; Установить GUI - нет. Остальные параметры менять не нужно.

3) Запустить установку через Параметры -> Установить. В результате должен быть создан файл образа диска на карте памяти и в него распакован архив rootfs.

4) Установить необходимые пакеты и выполнить базовую конфигурацию. Для этого из консоли Android выполнить (через программу ConnectBot или другой терминал):

linuxdeploy shell "opkg update"
linuxdeploy shell "opkg install initscripts sysvinit sysvinit-pidof shadow bash \
    localedef glibc-localedata-en-us glibc-localedata-ru-ru tzdata dropbear sudo \
    xserver-xorg-xvfb x11vnc xinit xterm"
linuxdeploy configure

5) Запустить SSH сервер:

linuxdeploy shell "/etc/init.d/dropbear start"

Теперь можно подключиться по SSH, логин - android, пароль - changeme, порт 22. Остановить SSH сервер:

linuxdeploy shell "/etc/init.d/dropbear stop"

6) Запустить VNC сервер:

linuxdeploy shell
xinit /bin/su - android -c 'export DISPLAY=:0; ~/.vnc/xstartup' -- /usr/bin/Xvfb :0 -screen 0 800x400x16 -nolisten tcp -ac &
su - android -c 'x11vnc -forever -display :0 -wait 10' &

Теперь можно подключиться по VNC, пароль - changeme, порт 5900. Остановить VNC сервер:

pkill -9 Xvfb

7) Настройка автоматического запуска/остановки SSH и VNC через Android-интерфейс Linux Deploy (кнопками СТАРТ/СТОП). Настройка SSH:

linuxdeploy shell "cp /etc/init.d/dropbear /etc/init.d/ssh"

Настройка VNC:

linuxdeploy shell
cat << EOF > /usr/bin/vncserver
#!/bin/sh
[ $# -eq 0 ] && exit 1
VNC_DISPLAY=$1
shift
while true; do
   case $1 in
   -depth)
      VNC_DEPTH=$2; shift 2; continue
   ;;
   -geometry)
      VNC_GEOMETRY=$2; shift 2; continue
   ;;
   -dpi)
      VNC_DPI=$2; shift 2; continue
   ;;
   *)
      break
   ;;
   esac
done
if [ -n "$VNC_DEPTH" -a -n "$VNC_GEOMETRY" -a -n "$VNC_DPI" ]; then
   Xvfb ${VNC_DISPLAY} -screen 0 ${VNC_GEOMETRY}x${VNC_DEPTH} -dpi ${VNC_DPI} -nolisten tcp -ac &
   x11vnc -forever -display ${VNC_DISPLAY} -wait 10 &
   sleep 1
   DISPLAY=${VNC_DISPLAY} ~/.vnc/xstartup &
else
   pkill -9 Xvfb
fi
EOF
chmod 755 /usr/bin/vncserver

Комментарий: Чтобы из консоли Android была доступна команда linuxdeploy нужно в настройках разрешить создавать в системе символьную ссылку (Настройки -> Создать симлинк) и обновить рабочее окружение (Настройки -> Обновить окружение). Однако это необязательное требование и можно вызывать команду linuxdeploy по полному пути ENV_DIR/bin/linuxdeploy, где ENV_DIR - каталог рабочего окружения, по умолчанию /data/local/linux.

http://your_computer:3142/XXXX where XXXX is one of armdebian, armubuntu, or armkali

Clone this wiki locally