07.08.2020 QEMU Virtualization
Lipa (обсуждение | вклад) (→INTRO) |
Lipa (обсуждение | вклад) (→QEMU + Questa) |
||
(не показаны 27 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | <summary | + | <summary hidden=true> |
<center>[[File:QEMU.png|400px]]</center> | <center>[[File:QEMU.png|400px]]</center> | ||
Строка 6: | Строка 6: | ||
</summary> | </summary> | ||
− | |||
− | |||
== INTRO == | == INTRO == | ||
Качаем читаем [[:File:ug982-petalinux-system-simulation_QEMU.pdf]] | Качаем читаем [[:File:ug982-petalinux-system-simulation_QEMU.pdf]] | ||
+ | |||
+ | == SD-card create == | ||
[https://github.com/k0nze/qemu_zynq_linux_setup инструкция] | [https://github.com/k0nze/qemu_zynq_linux_setup инструкция] | ||
Выкачиваем [https://github.com/qemu/qemu.git репозиторий qemu] | Выкачиваем [https://github.com/qemu/qemu.git репозиторий qemu] | ||
+ | |||
+ | Ставим в систему nbd | ||
+ | <source lang="bash"> | ||
+ | sudo apt-get install nbd-client | ||
+ | </source> | ||
+ | |||
+ | Проверяем | ||
+ | <source lang="bash"> | ||
+ | lsmod | grep nbd | ||
+ | </source> | ||
+ | |||
+ | Если нет модуля - загружаем его: | ||
+ | <source lang="bash"> | ||
+ | modprobe nbd | ||
+ | </source> | ||
Ставим в систему pixman | Ставим в систему pixman | ||
<source lang="bash"> | <source lang="bash"> | ||
sudo apt-get install libpixman-1-dev | sudo apt-get install libpixman-1-dev | ||
+ | </source> | ||
+ | |||
+ | Возможно: | ||
+ | <source lang="bash"> | ||
+ | sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev | ||
+ | sudo apt-get install ninja-build | ||
</source> | </source> | ||
Строка 37: | Строка 58: | ||
</source> | </source> | ||
− | + | Подключаем образ к хосту: | |
− | + | ||
<source lang="bash"> | <source lang="bash"> | ||
− | + | sudo ~/git/qemu/build/qemu-nbd --connect=/dev/nbd0 ~/clonicus_1.2.3/sdcard/sdcard.qcow2 | |
</source> | </source> | ||
+ | Проверяем подключение: | ||
+ | <source lang="bash"> | ||
+ | sudo fdisk /dev/nbd0 -l | ||
− | + | Диск /dev/nbd0: 256 MiB, 268435456 байтов, 524288 секторов | |
+ | Единицы измерения: секторов из 1 * 512 = 512 байтов | ||
+ | Размер сектора (логический/физический): 512 байт / 512 байт | ||
+ | I/O size (minimum/optimal): 512 bytes / 512 bytes | ||
+ | </source> | ||
+ | |||
+ | Форматируем флешку: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | + | sudo fdisk /dev/nbd0 | |
</source> | </source> | ||
− | == | + | [[:File:sd_table.rar]] |
+ | Таблица форматирования | ||
+ | Размеченный файл-образ, берем, пользуем | ||
+ | |||
+ | == START == | ||
+ | |||
Заходим по ssh на виртуальный petalinux | Заходим по ssh на виртуальный petalinux | ||
+ | |||
+ | '''Пока что не получается заменить IP адрес.''' Используем 10.0.2.15 | ||
+ | |||
+ | Необходимо переименовать на флешке файл interfaces, чтобы он не ломал настройки | ||
Перенаправляем порты ssh при вызове запуска виртуалки: | Перенаправляем порты ssh при вызове запуска виртуалки: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | petalinux-boot --qemu --kernel --qemu-args "-redir tcp:10022:10.0.2.15:22" | + | petalinux-boot --qemu --kernel --qemu-args "-redir tcp:10022:10.0.2.15:22 -drive file=sdcard.qcow2,if=sd,index=0,media=disk" |
</source> | </source> | ||
Строка 62: | Строка 100: | ||
ssh root@localhost -p 10022 | ssh root@localhost -p 10022 | ||
</source> | </source> | ||
+ | |||
+ | Копирование по ssh: | ||
+ | <source lang="bash"> | ||
+ | scp -P 10022 <source> root@localhost:<destination> | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Прерывать симуляцию: | ||
+ | <source lang="bash"> | ||
+ | Ctrl-A X | ||
+ | </source> | ||
+ | |||
+ | Работает SSH и подгружаются скрипты с подмонтированной SD-карточки. Цветная консоль, ключи ssh... | ||
+ | |||
+ | == Native QEMU == | ||
+ | |||
+ | Забываем, все, что выше. Запускаем петалинукс на чистом QEMU | ||
+ | |||
+ | качаем [https://github.com/qemu/qemu.git репозиторий qemu] | ||
+ | |||
+ | |||
+ | Исполняем: | ||
+ | <source lang="bash"> | ||
+ | ./configure --target-list="arm-softmmu" --enable-fdt --disable-kvm --disable-xen | ||
+ | make -j24 | ||
+ | </source> | ||
+ | |||
+ | переходим в build, создаем скрипт запуска | ||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | ./qemu-system-arm -M xilinx-zynq-a9 -m 256M \ | ||
+ | -device loader,file=/home/ivan/linux/u-boot.elf \ | ||
+ | -drive file=/home/ivan/git/SD/sdcard.qcow2,if=sd,index=0,media=disk \ | ||
+ | -serial stdio | ||
+ | </source> | ||
+ | |||
+ | == QEMU + Questa == | ||
+ | |||
[[Категория:HOWTO]] | [[Категория:HOWTO]] |
Текущая версия на 12:26, 23 мая 2022
Содержание |
[править] INTRO
Качаем читаем File:ug982-petalinux-system-simulation_QEMU.pdf
[править] SD-card create
Выкачиваем репозиторий qemu
Ставим в систему nbd
Проверяем
Если нет модуля - загружаем его:
Ставим в систему pixman
Возможно:
sudo apt-get install ninja-build
Инициализируем подмодуль:
git submodule update --init dtc
Исполняем:
Создаем файл-образ флешки:
Подключаем образ к хосту:
Проверяем подключение:
Диск /dev/nbd0: 256 MiB, 268435456 байтов, 524288 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Форматируем флешку:
File:sd_table.rar Таблица форматирования Размеченный файл-образ, берем, пользуем
[править] START
Заходим по ssh на виртуальный petalinux
Пока что не получается заменить IP адрес. Используем 10.0.2.15
Необходимо переименовать на флешке файл interfaces, чтобы он не ломал настройки
Перенаправляем порты ssh при вызове запуска виртуалки:
Далее коннектимся с хоста:
ssh root@localhost -p 10022
Копирование по ssh:
Прерывать симуляцию:
Работает SSH и подгружаются скрипты с подмонтированной SD-карточки. Цветная консоль, ключи ssh...
[править] Native QEMU
Забываем, все, что выше. Запускаем петалинукс на чистом QEMU
качаем репозиторий qemu
Исполняем:
make -j24
переходим в build, создаем скрипт запуска
./qemu-system-arm -M xilinx-zynq-a9 -m 256M \
-device loader,file=/home/ivan/linux/u-boot.elf \
-drive file=/home/ivan/git/SD/sdcard.qcow2,if=sd,index=0,media=disk \
-serial stdio
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.