07.08.2020 QEMU Virtualization
Lipa (обсуждение | вклад) (→Эмуляция Petalinux QEMU) |
Lipa (обсуждение | вклад) (→QEMU + Questa) |
||
(не показаны 30 промежуточных версий 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/qemu/qemu.git репозиторий qemu] | ||
+ | |||
+ | Ставим в систему nbd | ||
<source lang="bash"> | <source lang="bash"> | ||
− | petalinux-boot --qemu --kernel | + | sudo apt-get install nbd-client |
+ | </source> | ||
+ | |||
+ | Проверяем | ||
+ | <source lang="bash"> | ||
+ | lsmod | grep nbd | ||
+ | </source> | ||
+ | |||
+ | Если нет модуля - загружаем его: | ||
+ | <source lang="bash"> | ||
+ | modprobe nbd | ||
+ | </source> | ||
+ | |||
+ | Ставим в систему pixman | ||
+ | <source lang="bash"> | ||
+ | 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 lang="bash"> | ||
+ | cd qemu | ||
+ | git submodule update --init dtc | ||
+ | </source> | ||
+ | |||
+ | Исполняем: | ||
+ | <source lang="bash"> | ||
+ | ./configure --target-list="aarch64-softmmu" --enable-fdt --disable-kvm --disable-xen make -j4 | ||
+ | </source> | ||
+ | |||
+ | Создаем файл-образ флешки: | ||
+ | <source lang="bash"> | ||
+ | ~/git/qemu/qemu-img create -f qcow2 ~/clonicus_1.2.3/sdcard/sdcard.qcow2 256M | ||
+ | </source> | ||
+ | |||
+ | Подключаем образ к хосту: | ||
+ | <source lang="bash"> | ||
+ | sudo ~/git/qemu/build/qemu-nbd --connect=/dev/nbd0 ~/clonicus_1.2.3/sdcard/sdcard.qcow2 | ||
+ | </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"> | ||
+ | sudo fdisk /dev/nbd0 | ||
+ | </source> | ||
+ | |||
+ | [[:File:sd_table.rar]] | ||
+ | Таблица форматирования | ||
+ | Размеченный файл-образ, берем, пользуем | ||
+ | |||
+ | == START == | ||
+ | |||
+ | Заходим по ssh на виртуальный petalinux | ||
+ | |||
+ | '''Пока что не получается заменить IP адрес.''' Используем 10.0.2.15 | ||
+ | |||
+ | Необходимо переименовать на флешке файл interfaces, чтобы он не ломал настройки | ||
+ | |||
+ | Перенаправляем порты ssh при вызове запуска виртуалки: | ||
+ | <source lang="bash"> | ||
+ | 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 lang="bash"> | ||
+ | ssh-copy-id root@localhost -p 10022 | ||
+ | ssh root@localhost -p 10022 | ||
+ | </source> | ||
+ | |||
+ | Копирование по ssh: | ||
+ | <source lang="bash"> | ||
+ | scp -P 10022 <source> root@localhost:<destination> | ||
</source> | </source> | ||
Строка 23: | Строка 111: | ||
Ctrl-A X | Ctrl-A X | ||
</source> | </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
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.