Pull to refresh

Виртуальный ODROID на qemu

Выполнялось под Debian Jessie. ОС образа — тоже Debian Jessie. До этого поднимал виртуалку с raspberry, очень пригодилась эта статья: «Виртуализация raspberry.

Немного теории
Образ „прошивки“ для arm-устройства можно загрузить в виртуалку qemu-system-arm,
но есть несколько нюансов:

— чтобы ядро linux можно было запустить под виртуальной машиной, при сборке ему нужно включить поддержку виртуализации. Данный пункт обходится тем, что qemu позволяет подключить другое ядро из файла, загрузив с ним требуемый образ.
— необходимо выбрать виртуальную машину (--machine), ведь кроме архитектуры процессора имеется различная другая периферия. Чтобы посмотреть доступные виртуальные машины, нужно набрать
qemu-system-arm --machine help


Материалы для скачивания:

Debian Jessie для ODROID:
— Ядро 3.2 с поддержкой виртуализации: (в пакете, там же есть другие полезные материалы)


wget http://odroid.us/odroid/users/osterluk/qemu-example/qemu-example.tgz

Как учебное пособие очень пригодилась эта статья, большая часть сделана по ней.

Действия:

1) скачал qemu-system-arm
sudo apt-get install qemu-system-arm

2) подготовил папку (до этого скачав образ с Jessie):
mkdir odroid
cd odroid
wget http://odroid.us/odroid/users/osterluk/qemu-example/qemu-example.tgz
tar -xvzf qemu-example.tgz
mv ~/Downloads/debian_jessie_armhf_odroidxu_20140103.zip .
unzip debian_jessie_armhf_odroidxu_20140103.img

3) запустил образ следующей строкой:
qemu-system-arm -append "root=/dev/mmcblk0p2 rw physmap.enabled=0 console=ttyAMA0" -M vexpress-a9 -m 1G -kernel zImage -sd debian_jessie_armhf_odroidxu_20140103.img --nographic -serial stdio -net nic -net user -redir tcp:8050::22


Понимаю в ней не всё, но что-то могу разъяснить:

Параметры запуска ядра:
-append "root=/dev/mmcblk0p2 rw physmap.enabled=0 console=ttyAMA0"


root=/dev/mmcblk0p2

— корневая директория „/“ ищется в соответствующем девайсе. Сначала я указал неправильный девайс, что приводило к панике ядра. При этом оно писало, какие доступны, из чего удалось выбрать.
console=ttyAMA0
и позже
-serial stdio 

— нужно чтобы перенаправить консоль в терминал
 -M vexpress-a9 -m 1G 

— виртуальная машина и объём оперативки
 -net nic -net user -redir tcp:8050::22

сеть доступна с виртуалки, но хостовая машина является для неё NAT-ом. Перенаправляем 22 порт одроида на 8050 порт хостовой машины, чтобы иметь доступ по ssh
 -kernel zImage -sd debian_jessie_armhf_odroidxu_20140103.img --nographic 

— подключаем ядро из файла zImage, который лежит в той же папке, образ с дебианом как флешку, отключаем монитор.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.