На этот раз я напишу о том как установить Android 2.1 на Nokia N900 в Dual Boot
Требования
Android RootFS
Модифицированное ядро Maemo для DualBoot
Linux на компьютере(Для пользователь Windows можно установить VirtualBox и любой дистрибутив linux'a например Ubuntu)
Maemo-flasher
Карточка MicroSD (минимум 1Gb)
Пакет rootsh на n900
Прошивка ядра
Для начала нам надо прошить ядро которое позволяет загружать как Android так и Maemo
Для этого выключаем телефон, зажимаем на клавиатуре букву U и вставляем usb кабель.
Телефон должен перевестись в так называемый flash-mode
Для этого копируем ядро zImage-0.0.3-a в папку с flasher'om и выполняем команду
./flasher-3.5 --set-rd-flags=no-ext-wd,no-lifeguard-reset --enable-rd-mode -f -k zImage-0.0.3-a -R
Подготовка flashcard
Теперь нам надо разбить нашу флешку, для этого нам надо открыть консоль(разбивку флешки будем производить в консоли т.к. она точно есть в любом дистрибутиве, если же вам хочется работать с графическим интерфейсом вы можете воспользовать программой gparted).
Что бы узнать под каким именем компьютер опознал флеш-карту набираем:
dmesg
В конце у нас появляется приблизительно такие строки:
Это значит что наша флешка опредилилась как устройство /dev/mmcblk0.
Далее приступает к процессу разбивки флешки.
sudo fdisk /dev/mmcblk0
o
n
p
1
<нажать enter>
+128M
t
c
n
p
2
<нажать enter>
<нажать enter>
w
Этими действиями мы разбили нашу флешку на два раздела, один размером 128MB, другой занял все оставшееся место. Теперь необходимо отформатировать разделы под нужные файловые системы.
Первый раздел форматируем в vfat. Делается это командой
sudo mkdosfs /dev/mmcblk0p1
или sudo mkfs.vfat /dev/mmcblk0p1
p1 — означает что форматируем мы первый раздел, если у вас устройство определилось как sda то скорей всего первый раздел будет sda1.
Второй раздел форматируем так:
sudo mke2fs -j /dev/mmcblk0p1 -m0
Теперь нам надо распаковать RootFS от андройда на второй раздел нашей флешки.
mkdir nokia
sudo mount /dev/mmcblk0p2 nokia/
cd nokia/
sudo tar xjvvpf ../Downloads/NITDroid-0.0.3-1-Eclair-WiFi.tbz2
cd ..
sudo umount /dev/mmcblk0p2
На этом наши действия с компьютером закончены, вставляем флешку в телефон.
Установка и настройка Boot Menu
Для Dual Boot'a нам понадобятся пакеты nano(для редактирования файлов, можно использовать и mcedit) и сам bootmenu-n900(для осуществление двойной загрузки)
Программы можно установить как из диспетчера приложений так и из консоли. Для установки из консоли заходим в xterm и набираем:
sudo gainroot
apt-get install nano
apt-get install bootmenu-n900
Теперь настраиваем bootmenu(предполагается что вы уже в консоли с правами root):
cd /etc/bootmenu.d/
nano android.ext.item
И в файл вписываем:
ITEM_NAME="Android (external SD, partition 2)"
ITEM_ID="android2"
ITEM_DEVICE="${EXT_CARD}p2"
ITEM_MODULES="mbcache jbd ext3 fat vfat"
ITEM_FSTYPE="ext3"
ITEM_FSOPTIONS="noatime"
Жмем ctlr+o, ctrl+x — это сохранит наши изменения в файл и закроет редактор.
Для загрузки в Android нам необходимо выключить телефон, выдвинуть клавиатуры и снова включить его. При загрузки появится bootmenu в котором можно будет выбрать в какую OS грузится, при выключении с задвинутой клавиатурой будет грузится Maemo.
На мой взгляд в R&D режиме есть одна бесполезная функция, это мигание клавиатуры что бы ее отключить достаточно отредактировать на телефоне файл /etc/pmconfig, для этого в xTrem'e выполняем следующие команды:
sudo gainroot
nano /etc/pmconfig
И меняем строчку "sleep_ind 1" на "sleep_ind 0".
Состояние проекта
Работает:
* Звук
* Сенсорный ввод
* Ввод с клавиатуры
* WiFi
* Внутренняя флеш-память
Не работает:
* Зарядка
* GSM
* Микрофон
* FM-радио и FM-передатчик
* Камера
На мой взгляд проект сильно продвинулся с тех пор как я писал о нем, появилась полноценная поддержка WiFi, браузер работает достаточно шустро, удалось поиграть во встроенную змейку.
Полезные ссылки
Мануал на английском
NITDroid Wiki(анг.)
Обсуждение разработка(анг.)