Мой дневник

16.11.2012

Андроид с пингвиньим лицом

Filed under: Uncategorized — sae762 @ 18:07

Получилось! Научился ставить android-x86 на pc так, чтобы там же одновременно работал обычный линух.

Изначально android-x86 представляет из себя монолитный кусок, например ISO-образ. Можно его запустить, поиграться, но нужно иметь сборку именно под свое устройство, и пересобрать довольно сложно. Для ограниченного набора мобильных чипсетов оно может и хорошо, но на х86, а возможно и на китайских arm-ах железо весьма разнообразно, так что пересобирать всю систему тяжеловато.

Поэтому делаем так:

1. Ставим linux. Например, мой любимый gentoo. Достаточно stage3 + grub

2. Собираем ядро. Берем ядро от андроида, собираем как хотим. Важно оставить для андрюши framebuffer-девайс, хотя бы vesafb. (тормозить на нем будет безбожно, зато работает в VirtualBox-е :)) Для нормальной работы андроида нужно добавить модули вашей видеокарты, например inteldrmfb (i915)

3. В grub получится запись типа kernel /bzImage root=/dev/sda2, то есть наше ядро в данном случае не использует initrd (однако фичу эту в ядре нужно оставить – андроиду нужно).

4. Теперь ставим андроид (android-x86.org). Создаем папку типа /android-eee, сливаем туда все файлы с ISO-образа. Создаем там же папку data – туда будет андроид писАть ;). Уместно будет распаковать system.sfs в папку system – нам ведь нужно добавить в андроид свои модули ядра (копируем из /lib/modules), да и вообще рулить файлами. Файл system.sfs удаляем или переименовываем.

5. Прописываем grub: kernel /bzImage root=/dev/ram0 SRC=android-eee . Остальные параметры берем из isolinux.cfg. Добавляем строчку initrd /somedir/initrd.img (этот файлик нужно положить на /boot раздел, т.е. туда же где bzImage, можно в папку somedir).

Собственно, на этом можно попробовать загрузить андроид. Если все прописалось верно, то наше ядро подтянет initrd от андроида, который вытащит из папки android-eee сначала ramdisk.img, а затем примонтирует system. И вы получите красивую заставку и попадете на “setup wizard”. Заполняйте, юзайте андроид.

Самое интересное – нажав Alt-F1 вы попадете в командную строку (аналогично можно запустить терминал в андроиде и ввести su). И если в терминале выполнить действия:

mount -o remount,rw tmpfs /
mkdir /mnt/gentoo
mount -t ext3 /dev/block/sda2 /mnt/gentoo
mount -o bind /dev /mnt/gentoo/dev
mount -t proc proc /mnt/gentoo/proc
chroot /mnt/gentoo /bin/bash

то вы перейдете в свой родной линух! При этом весь андроид будет лежать тут же, в папке куда вы его поклали. Устанавливаем наше окружение:

export PATH=/bin:/usr/bin:usr/sbin
export HOME=/root
export LD_LIBRARY_PATH=

export TERM=linux

… и можно запустить например midnight commander (TERM – для него), поднять сеть (для линукса), запустить sshd и т.п. Пока не пробовал иксы, но ничего не мешает.

Вот такой мутантик получился 🙂

 

Advertisements

1 Comment »

  1. Резонно спросить – зачем все это. А вот, например, для этого: https://play.google.com/store/apps/details?id=au.com.darkside.XServer&hl=ru . Попробую запустить под андроидом icewm и далее все что угодно вплоть до wine )

    Comment by sae762 — 21.11.2012 @ 11:07 | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: