Запуск прошивок для зауруса в QEMU

КПК с Linux, установка Linux на iPaq и другие модели, программы
Закрыто
Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Запуск прошивок для зауруса в QEMU

Сообщение Jay » Пт июл 04, 2008 11:49

Я тут достиг в этом определенных успехов, поэтому создаю отдельную тему. Чтобы и другим проще было искать, и мне не забыть :) Лучше бы ее в фак добавить или в список полезных тем. Хотя это уже начинает походить на некрофилию..

На данный момент успехи такие. Под 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) - отпишусь.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Вт янв 13, 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 :)
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Чт янв 15, 2009 00:56

SD-карта вполне видится через указание ключа -sd sdcard.img.

Обнаружил в svn qemu возможность использования usbnet. Попробую позже собрать svn-версию и проверить. Было бы очень удобно ходить ssh'ем внутрь qemu и апдейтить прошивку по сети.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пт янв 16, 2009 02:23

Добавил в список полезных тем...

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Пт янв 16, 2009 02:39

ВадимП
Спасибо :)
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

zuki
Новенький (0 lvl)
Сообщения: 2
Зарегистрирован: Сб янв 24, 2009 07:28

Сообщение zuki » Сб янв 24, 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?
I gotta buy Zaurus C1000, meanwhile trying to emulate.

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Сб янв 24, 2009 23:47

Эмуляция да, небыстрая..

Код: Выделить всё

 qemu-system-arm -M akita -portrait -show-cursor -kernel initrd.bin  -mtdblock SYSTC100.DBK
Вообще, в опции -kernel обычно принято указывать путь к ядру, а не к initrd. Укажите там путь к файлу zImage из дистрибутива.
Да и NAND backup в качестве значения опции -mtdblock тоже не подойдет. Но можно достать нужный образ из NAND backup. Для этого нужно воспользоваться рекомендациями и скриптом из этого письма:
http://www.mail-archive.com/qemu-devel@ ... 11445.html
Но я этот способ не пробовал, поэтому даже не могу сказать, насколько он рабочий.

Есть еще нюанс, описанный в том же письме. Опция qemu -append не будет работать с ядром Cacko (и вообще со старыми ядрами для Zaurus'ов). Задать свою командную строку для ядра можно только в qemu, собранной из svn, там добавлена опция -old-param. Либо накладывать патчик из другого письма ниже по треду из ссылки и перекомпилировать. Кстати, чем новее qemu, тем лучше.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

zuki
Новенький (0 lvl)
Сообщения: 2
Зарегистрирован: Сб янв 24, 2009 07:28

Сообщение zuki » Вс янв 25, 2009 16:52

Ой.. точно.. про -kernel initrd, это я что то сглупил..
Спасибо за ссылки, буду пробовать..
I gotta buy Zaurus C1000, meanwhile trying to emulate.

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Сб июн 20, 2009 12:49

Vitel
Да, это нормально.. Я способов ускорить не знаю :)
Фактически оно эмулирует каждую инструкцию процессора, поскольку архитектуры разные. Поэтому вряд ли тут получится что-то ускорить.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Ср сен 23, 2009 18:02

ivanhoe
А что именно не выходит?
Как запускаете?
Какая версия qemu?
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»