07.08.2020 QEMU Virtualization

Материал из SRNS
Перейти к: навигация, поиск
(INTRO)
(QEMU + Questa)
 
(не показаны 27 промежуточных версий 2 участников)
Строка 1: Строка 1:
<summary [ hidden ] >
+
<summary hidden=true>
  
 
<center>[[File:QEMU.png|400px]]</center>
 
<center>[[File:QEMU.png|400px]]</center>
Строка 6: Строка 6:
  
 
</summary>
 
</summary>
 
{{Форма2}}
 
  
 
== 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>
  
== Эмуляция Petalinux QEMU ==
+
Подключаем образ к хосту:
Наслаждаемся магией!
+
 
<source lang="bash">
 
<source lang="bash">
petalinux-boot --qemu --kernel
+
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">
Ctrl-A X
+
sudo fdisk /dev/nbd0
 
</source>
 
</source>
  
== SSH ==
+
[[: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

sudo apt-get install nbd-client

Проверяем

lsmod | grep nbd

Если нет модуля - загружаем его:

modprobe nbd

Ставим в систему pixman

sudo apt-get install libpixman-1-dev

Возможно:

sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
sudo apt-get install ninja-build

Инициализируем подмодуль:

cd qemu
git submodule update --init dtc

Исполняем:

./configure --target-list="aarch64-softmmu" --enable-fdt --disable-kvm --disable-xen make -j4

Создаем файл-образ флешки:

~/git/qemu/qemu-img create -f qcow2 ~/clonicus_1.2.3/sdcard/sdcard.qcow2 256M

Подключаем образ к хосту:

sudo ~/git/qemu/build/qemu-nbd --connect=/dev/nbd0 ~/clonicus_1.2.3/sdcard/sdcard.qcow2

Проверяем подключение:

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

Форматируем флешку:

sudo fdisk /dev/nbd0

File:sd_table.rar Таблица форматирования Размеченный файл-образ, берем, пользуем

[править] START

Заходим по ssh на виртуальный petalinux

Пока что не получается заменить IP адрес. Используем 10.0.2.15

Необходимо переименовать на флешке файл interfaces, чтобы он не ломал настройки

Перенаправляем порты ssh при вызове запуска виртуалки:

petalinux-boot --qemu --kernel --qemu-args "-redir tcp:10022:10.0.2.15:22 -drive file=sdcard.qcow2,if=sd,index=0,media=disk"

Далее коннектимся с хоста:

ssh-copy-id root@localhost -p 10022
ssh root@localhost -p 10022

Копирование по ssh:

scp -P 10022 <source>  root@localhost:<destination>


Прерывать симуляцию:

Ctrl-A X

Работает SSH и подгружаются скрипты с подмонтированной SD-карточки. Цветная консоль, ключи ssh...

[править] Native QEMU

Забываем, все, что выше. Запускаем петалинукс на чистом QEMU

качаем репозиторий qemu


Исполняем:

./configure --target-list="arm-softmmu" --enable-fdt --disable-kvm --disable-xen
make -j24

переходим в build, создаем скрипт запуска

#!/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

[править] QEMU + Questa

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты