HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: Запуск прошивок для зауруса в QEMU

[Ответить]
Jay [04.07.2008 11:49] Запуск прошивок для зауруса в QEMU:
Я тут достиг в этом определенных успехов, поэтому создаю отдельную тему. Чтобы и другим проще было искать, и мне не забыть Лучше бы ее в фак добавить или в список полезных тем. Хотя это уже начинает походить на некрофилию..

На данный момент успехи такие. Под qemu-0.9.1 на моей Gentoo "из коробки" вполне запускаются образы Angstrom для spitz и прочих C3xx (просто в Angstrom делается образ только для spitz на hda).

Собственно, код:
qemu-system-arm -M spitz -show-cursor -portrait -mtdblock /dev/null -kernel zImage-spitz.bin -hda x11-image-spitz.ext2 -append "root=/dev/hda rootfstype=ext2"

Конструкцию -mtdblock /dev/null я вписал, чтобы qemu не ругалась на отсутствие mtd-устройства. Как таковое оно мне не надо, поэтому и /dev/null.

Мышь в этой версии qemu вполне рабочая, оси не перевернуты.

Комбинации с клавишей FN приходится эмулировать через управляющую консоль qemu. Жмем Ctrl+Alt+2, появляется эта самая консоль. Вводим там "sendkey 0x38-j", в основном окне (переключаемся по Ctrl+Alt+1) видим появившуюся звездочку (если ей есть где появляться - нужно какое-то поле для ввода), что соответствует нажатию FN+j на заурусе.

Заодно добавлю, что по Ctrl+Alt+3 появляется окно serial console. Мне через него работать значительно удобнее. Оно имеет нормальную ориентацию и не реагирует так фатально на escape (см. ниже).

Основная проблема одна - по клавише Escape в основном окне qemu Angstrom решает, что нажали power и засыпает. Найти способ его разбудить мне не удалось.

Сеть пока не настраивал, как сделаю (если вообще возможно usbnet поднять в qemu) - отпишусь.
Jay [13.01.2009 17:26] :
Вчера день убил, но за пять минут долетел-таки!

Описал вот тут способ запуска нативных прошивок для C1000:
http://linuxtogo.org/gowiki/AngstromAndQemu/Akita

Сейчас можно запустить практически любую прошивку, для которой есть jffs2-образ rootfs. Проверено на образах Angstrom-console-image и Poky (http://pokylinux.org/releases/pinky-3.1/).

Еще в природе существует скрипт, который умеет выковыривать образ jffs2 из NAND-backup'а.

Следующим шагом будет запуск прошивок с эмулируемых SD и CF через kexecboot
Jay [15.01.2009 00:56] :
SD-карта вполне видится через указание ключа -sd sdcard.img.

Обнаружил в svn qemu возможность использования usbnet. Попробую позже собрать svn-версию и проверить. Было бы очень удобно ходить ssh'ем внутрь qemu и апдейтить прошивку по сети.
ВадимП [16.01.2009 02:23] :
Добавил в список полезных тем...
Jay [16.01.2009 02:39] :
ВадимП
Спасибо
zuki [24.01.2009 07:44] :
У меня получилось запустить Poky, по инструкции отсюда http://butterfeet.org/?p=22.
Но эмуляция оооочень медленная на моём AthlonXP1800, 1Gb.

Пытался запустить Cakoo 1.23 примерно так:

qemu-system-arm -M akita -portrait -show-cursor -kernel initrd.bin -mtdblock SYSTC100.DBK
pxa2xx_cp14_write: Bad register 0x6
qemu: fatal: Trying to execute code outside RAM or ROM at 0x00800000

И дальше список регистров.. ((
Похоже ядро не грузится..
SYSTC100.DBK - NAND backup C1000.
Пытался подставить другое ядро, начинает загружаться, но выдаёт Empty Flash at .. ошибку..
Похоже, я зря подставляю NAND backup туда, так? )
У кого нибудь получалось загружать Cackoo через QEMU?
Jay [24.01.2009 23:47] :
Эмуляция да, небыстрая..

Вообще, в опции -kernel обычно принято указывать путь к ядру, а не к initrd. Укажите там путь к файлу zImage из дистрибутива.
Да и NAND backup в качестве значения опции -mtdblock тоже не подойдет. Но можно достать нужный образ из NAND backup. Для этого нужно воспользоваться рекомендациями и скриптом из этого письма:
http://www.mail-archive.com/qemu-devel@nongnu.org/msg11445.html
Но я этот способ не пробовал, поэтому даже не могу сказать, насколько он рабочий.

Есть еще нюанс, описанный в том же письме. Опция qemu -append не будет работать с ядром Cacko (и вообще со старыми ядрами для Zaurus'ов). Задать свою командную строку для ядра можно только в qemu, собранной из svn, там добавлена опция -old-param. Либо накладывать патчик из другого письма ниже по треду из ссылки и перекомпилировать. Кстати, чем новее qemu, тем лучше.
zuki [25.01.2009 16:52] :
Ой.. точно.. про -kernel initrd, это я что то сглупил..
Спасибо за ссылки, буду пробовать..
Jay [20.06.2009 12:49] :
Vitel
Да, это нормально.. Я способов ускорить не знаю
Фактически оно эмулирует каждую инструкцию процессора, поскольку архитектуры разные. Поэтому вряд ли тут получится что-то ускорить.
Jay [23.09.2009 18:02] :
ivanhoe
А что именно не выходит?
Как запускаете?
Какая версия qemu?
[Ответить]