Olej писал(а):
Но здесь всё совсем не так просто.
2 полных дня я уже убил на эти упражнения
http://ftp.heanet.ie/mirrors/fedora-sec ... mages/arm/
Код: Выделить всё
Fedora-17-arm-Images-CHECKSUM 19-Jun-2012 04:38 1.9K
Fedora-17-arm-beagle-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 18M
Fedora-17-arm-beagle-mmcblk0.img.xz 19-Jun-2012 04:14 122M
Fedora-17-arm-console.tar.xz 19-Jun-2012 04:13 69M
Fedora-17-arm-kirkwood-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 27M
Fedora-17-arm-kirkwood-mmcblk0.img.xz 19-Jun-2012 04:13 139M
Fedora-17-arm-vexpress-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 19M
Fedora-17-arm-vexpress-mmcblk0.img.xz 19-Jun-2012 04:14 118M
Fedora-17-arm-vexpress-xfce-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 28M
Fedora-17-arm-vexpress-xfce-mmcblk0.img.xz 19-Jun-2012 04:14 531M
Fedora-17-arm-xfce.tar.xz 19-Jun-2012 04:14 466M
Здесь видно и релиз Fedora-17 и дату создания.
Для QEMU нас будут интересовать сборки *-arm-vexpress-*, которых 4:
- это для консольного запуска:
Код: Выделить всё
Fedora-17-arm-vexpress-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 19M
Fedora-17-arm-vexpress-mmcblk0.img.xz 19-Jun-2012 04:14 118M
- и это для запуска с X11 GUI:
Код: Выделить всё
Fedora-17-arm-vexpress-xfce-mmcblk0-kernel.tar.xz 19-Jun-2012 04:14 28M
Fedora-17-arm-vexpress-xfce-mmcblk0.img.xz 19-Jun-2012 04:14 531M
Внятных объяснений на ресурсах Fedora никаких (но на Debian + Ubuntu состояние дел с ARM ещё куда хуже), поэтому до всего пришлось доходить руками:
1. Начиная с того, что - возвращаемся в самое начало разговора:
Olej писал(а):Сам консольный QEMU используют не очень часто, но:
- часто используемый VirtualBox построен на коде QEMU;
...
- QEMU может выполнять VM для доброго десятка поцессорных платформ (ARM, MIPS, PPC, ...).
Это вот как-раз тот самый случай...
Все остальные потребности, для x86, в том числе когда это и Android, могут (и лучше!) быть реализованы и в VirtualBox.
Но вот здесь нужно работать именно с исходным консольным QEMU.
2. Все предыдущие запуски-установки (и не один год) делались как-то так:
Olej писал(а):
2.2. загрузим Android-x86 всё ещё с LiveCD, но инсталлируем его на этот диск:
Код: Выделить всё
bash-4.2$ qemu-kvm -m 500M -hda $DISK -cdrom android-x86-4.0-RC2-eeepc.iso -boot d
...
Поэтому
1-й большой неожиданностью для меня стало то, что запуск по типу - не проходит:
Код: Выделить всё
bash-4.2$ qemu-system-arm -hda ... -cdrom ... -boot ...
...
QEMU грязно ругается на ... синтаксис.
Только напоровшись на это становится понятно:
- qemu-kvm имеет встроенный BIOS, который и делает загрузку с HDD образа;
- в ARM нет такого механизма загрузки, хдесь будут использоваться (в железной реализации) варианты загрузки EFI/UEFI ...
- а в QEMU это можно сделать указав непосредственно
файлы загрузки Linux (это то, что в документации QEMU названо прямой загрузкой Linux, и допускается только для гостевых OS Linux).
3. Именно поэтому даётся
два файла для каждой сборки:
- *-kernel.tar.xz - это архив файлов начальной загрузки для хостовой машины;
- *.img.xz - это архив образа SD-карты для гостевой машины;
(в принципе, все файлы - их 2: ядро + initrd - из *-kernel.tar.xz могут быть скопированы и из *.img.xz, но для этого образ должен быть смонтирован или записан на SD и т.п - с этим надо повозиться).
4. Кроме того, qemu-system-arm потребует указать в ключе -machine точный тип версии ARM для которого делалась сборка, например:
Набор архитектур, процессоров и их точные записи (здесь есть где разгуляться!
), которые знает установленная версия qemu-system-arm см. так:
Код: Выделить всё
bash-4.2$ qemu-system-arm -cpu ?
Available CPUs:
arm926
arm946
arm1026
arm1136
arm1136-r2
arm1176
arm11mpcore
cortex-m3
cortex-a8
cortex-a9
ti925t
pxa250
sa1100
sa1110
pxa255
pxa260
pxa261
pxa262
pxa270
pxa270-a0
pxa270-a1
pxa270-b0
pxa270-b1
pxa270-c0
pxa270-c5
any
Код: Выделить всё
bash-4.2$ qemu-system-arm -M ?
Supported machines are:
collie Collie PDA (SA-1110)
connex Gumstix Connex (PXA255)
verdex Gumstix Verdex (PXA270)
integratorcp ARM Integrator/CP (ARM926EJ-S) (default)
mainstone Mainstone II (PXA27x)
musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
sx1 Siemens SX1 (OMAP310) V2
sx1-v1 Siemens SX1 (OMAP310) V1
cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
akita Akita PDA (PXA270)
spitz Spitz PDA (PXA270)
borzoi Borzoi PDA (PXA270)
terrier Terrier PDA (PXA270)
lm3s811evb Stellaris LM3S811EVB
lm3s6965evb Stellaris LM3S6965EVB
syborg Syborg (Symbian Virtual Platform)
tosa Tosa PDA (PXA255)
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
z2 Zipit Z2 (PXA27x)
Если модель указана не та - виртуальная машина просто тупо молча подвиснет.
Это
2-я неожиданность с этой задачей: "угадай процессор"