07.08.2020 QEMU Virtualization

Материал из SRNS
Перейти к: навигация, поиск
(SSH)
(QEMU + Questa)
 
(не показаны 23 промежуточные версии 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 инструкция]
Строка 18: Строка 18:
 
Ставим в систему nbd
 
Ставим в систему nbd
 
<source lang="bash">
 
<source lang="bash">
sudo apt-get install nbd-client
+
sudo apt-get install nbd-client  
 
</source>
 
</source>
  
Строка 34: Строка 34:
 
<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>
  
Строка 54: Строка 60:
 
Подключаем образ к хосту:
 
Подключаем образ к хосту:
 
<source lang="bash">
 
<source lang="bash">
sudo ~/git/qemu/qemu-nbd --connect=/dev/nbd0 ~/clonicus_1.2.3/sdcard/sdcard.qcow2
+
sudo ~/git/qemu/build/qemu-nbd --connect=/dev/nbd0 ~/clonicus_1.2.3/sdcard/sdcard.qcow2
 
</source>
 
</source>
  
Строка 72: Строка 78:
 
</source>
 
</source>
  
== Эмуляция Petalinux QEMU ==
+
[[:File:sd_table.rar]]
Наслаждаемся магией!
+
Таблица форматирования
 +
Размеченный файл-образ, берем, пользуем
 +
 
 +
== START ==
 +
 
 +
Заходим по ssh на виртуальный petalinux
 +
 
 +
'''Пока что не получается заменить IP адрес.''' Используем 10.0.2.15
 +
 
 +
Необходимо переименовать на флешке файл interfaces, чтобы он не ломал настройки
 +
 
 +
Перенаправляем порты ssh при вызове запуска виртуалки:
 
<source lang="bash">
 
<source lang="bash">
petalinux-boot --qemu --kernel
+
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>
  
Строка 84: Строка 112:
 
</source>
 
</source>
  
== SSH ==
+
Работает SSH и подгружаются скрипты с подмонтированной SD-карточки. Цветная консоль, ключи ssh...
Заходим по ssh на виртуальный petalinux
+
  
Перенаправляем порты ssh при вызове запуска виртуалки:
+
== Native QEMU ==
 +
 
 +
Забываем, все, что выше. Запускаем петалинукс на чистом QEMU
 +
 
 +
качаем [https://github.com/qemu/qemu.git репозиторий qemu]
 +
 
 +
 
 +
Исполняем:
 
<source lang="bash">
 
<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"
+
./configure --target-list="arm-softmmu" --enable-fdt --disable-kvm --disable-xen
 +
make -j24
 
</source>
 
</source>
  
Далее коннектимся с хоста:
+
переходим в build, создаем скрипт запуска
 
<source lang="bash">
 
<source lang="bash">
ssh-copy-id root@localhost -p 10022
+
#!/bin/bash
ssh root@localhost -p 10022
+
 
 +
./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>
 
</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 Сервер
Инструменты