Android 2.1 на Nokia N900 теперь и Dual Boot

image
На этот раз я напишу о том как установить 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(анг.)
Обсуждение разработка(анг.)
+23
20 июня 2010, 19:03
11
n4ela 2,0

комментарии (21)

+1
sht0rm #
Хм. Зарядка то почему не работает?
Неужели контроль за зарядом не возложен на контроллер аккумулятора?
При выключенном аппарате зарядка идет? Или же происходит «недозагрузка» коммуникатора?
0
n4ela #
При выключенном N900, когда вставляешь зарядку на экране появляется картинка nokia(подсветка не включается) и начинает идти зарядка, я так понимаю это и есть «недозагрузка».
Если полноценный линукс поставить в дуалбут то там тоже зарядка не идет и если не ошибаюсь проект Mer то же таким страдал.
0
sht0rm #
Спасибо, так и предполагал.
+1
Nidaylokn #
А нахрена оно нужно, окромя «Just for fun», конечно, если там GSM не работает?
+1
n4ela #
Проект активно пилится, вполне возможно что в будущем мы получим полностью рабочий Android на n900. А пока только just for fun, но лично мне был интересен сам процесс установки.
0
amarao #
А можно, наоборот? Рабочее маэмо на андроидные железки?
0
n4ela #
Информацию о порте Maemo на андройд железки не встречал. Но в теории я думаю такое возможно, ведь на maemo не только аппараты от Nokia, но и пару коммуникаторов/планшетов от сторонних производителей.
+6
izmalk #
Впервые слышу DualBoot в контексте телефона. Мы живем в удивительные времена
+1
n4ela #
Linux вообще удивительная вещь. А Maemo это действительно настоящий Linux без всяких ограничений.
+2
Terion #
да ладно.
если не ошибаюсь, где-то тут проскакивало, что на айфон в дуалбут андроид запихнули
0
n4ela #
На сколько мне известно что бы поставить андройд на iPhone, последний надо сначала разлочить, а в N900 не каких ограничений нету, ну кроме пожалуй телефонного закрытого телефонного модуля.
0
Colobock #
Есть DualBoot и для плеера — Cowon D2 грузит свою прошивку или RockBox.
+1
Ozamodaz #
Разве ж только Cowon D2? Везде, куда я ставил RockBox, его бутлодер оставлял возможность загружать родную прошивку.
0
Colobock #
У меня опыта нет, потому и говорю про то, что вертел своими руками.
–5
Evengard #
А смысл сего деяния? Или кто-то считает здесь Андроид лучше Маемо?
+4
salchenko #
А смысл вообще в установке чего то на неподдерживаемые устройства? Ответ один — для большинства это ИНТЕРЕСНО.
0
easy_john #
понятно, когда ось с какими-то значительными плюсами ставится на железо, где изначально ее нет. но по фичам/удобству андроид и маемо находятся достаточно близко.
ну и андроид-девайсов все же полно, в т.ч. и недорогих, а вот маемо устройства крайне мало.
для меня бы выглядело более осмысленным как раз наоборот, установка маемо на неродные телефоны.
0
Evengard #
Полностью с вами согласен.
0
andreyu #
А почему бы не взятъ родное ядро и модули?
0
hubhito #
При загрузке android после логотипа появляется модальное окно «Power off — Shutting down» и телефон выключается. Кто-нибудь сталкивался с таким?
0
Sonyrus #
Думаю, что проект так и останется «just for fun» ибо реально сравнивая Maemo и Android понимаешь, что последний предоставляет гораздо меньше возможностей. Вот пользователям Андроида наверное быдо бы интересно поставить Maemo на свои аппараты. Хотя не уверен, что это возможно.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.