Ports/riscv64/QEMU: различия между версиями

Материал из ALT Linux Wiki
< Ports‎ | riscv64
Нет описания правки
Строка 2: Строка 2:


Поддержка RISC-V в отличается в различных версиях qemu.
Поддержка RISC-V в отличается в различных версиях qemu.
== QEMU 6.0+ ==
В qemu 6.0 у ядра 5.14 при загрузке с u-boot работает графика (virtio-gpu) и ввод в графике (virtio-keyboard и virtio-tablet).
Для запуска образов в QEMU необходимо выполнить следующие шаги:
'''Шаг 0.''' Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы на ALT x86_64: [http://sisyphus.ru/en/srpm/Sisyphus/qemu qemu-system-riscv-core]:
  apt-get install qemu-system-riscv-core
'''Шаг 1.''' Скачать последнюю версию [https://packages.altlinux.org/ru/sisyphus/srpms/u-boot-qemu u-boot-qemu для riscv64]. Можно воспользоваться ссылкой  Например, для u-boot-qemu 2021.04:
  wget http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/files/riscv64/RPMS/u-boot-qemu-2021.04-alt1.rv64.riscv64.rpm
Извлечь из пакета '''/usr/share/u-boot/qemu-riscv64_smode/u-boot.bin''':
  rpm2cpio u-boot-qemu-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/qemu-riscv64_smode/u-boot.bin' > u-boot.bin
'''Шаг 2.''' Запуск образа в QEMU можно осуществить следующей командой, указав в IMAGE путь к образу и UBOOT путь до u-boot, скачанного на шаге 1:
<source lang="shell">
$ IMAGE=<путь до образа>
$ UBOOT=<путь до u-boot.bin>
$ qemu-system-riscv64 \
          -nographic -m 2G  -machine virt -kernel "$UBOOT" \
          -smp cpus=4 \
          -drive file=$IMAGE,id=hd0 -device virtio-blk-device,drive=hd0  \
          -netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0 \
          -device virtio-gpu,xres=1280,yres=800 -device virtio-keyboard -device virtio-tablet -sdl
</source>
Если нужен доступ по vnc, то вместо "-sdl" нужно указать "-vnc :1" и подключаться к 5901 порту (5900 порт занят для проброса сети):
<source lang="shell">
$ vncviewer localhost:5901
</source>


== QEMU 5.0 ==
== QEMU 5.0 ==
Строка 53: Строка 91:
'''Шаг 3.''' Дальнейшая настройка графической системы выполняется при помощи [https://www.altlinux.org/Regular/riscv64#VNC VNC]. При подключении по VNC установлен стандартный пароль '''<tt>alt</tt>''', его будет предложено поменять при первоначальной настройке.
'''Шаг 3.''' Дальнейшая настройка графической системы выполняется при помощи [https://www.altlinux.org/Regular/riscv64#VNC VNC]. При подключении по VNC установлен стандартный пароль '''<tt>alt</tt>''', его будет предложено поменять при первоначальной настройке.


== QEMU 6.0+ ==
В qemu 6.0 у ядра 5.14 при загрузке с u-boot работает графика (virtio-gpu) и ввод в графике (virtio-keyboard и virtio-tablet). Поэтому для этого варианта загрузки уже не требуется использовать для графики vnc со стороны операционной системы. При необходимости можно использовать vnc от qemu.
Для запуска образов в QEMU необходимо выполнить следующие шаги:
'''Шаг 0.''' Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы на ALT x86_64: [http://sisyphus.ru/en/srpm/Sisyphus/qemu qemu-system-riscv-core].
'''Шаг 1.''' Скачать последнюю версию [https://packages.altlinux.org/ru/sisyphus/srpms/u-boot-qemu u-boot-qemu для riscv64]. Извлечь из пакета '''/usr/share/u-boot/qemu-riscv64_smode/u-boot.bin'''.
'''Шаг 2.''' Запуск образа в QEMU можно осуществить следующей командой, указав в IMAGE путь к образу и UBOOT путь до u-boot, скачанного на шаге 1:
<source lang="shell">
$ IMAGE=<путь до образа>
$ UBOOT=<путь до u-boot.bin>
$ qemu-system-riscv64 \
          -nographic -m 2G  -machine virt -kernel "$UBOOT" \
          -smp cpus=4 \
          -drive file=$IMAGE,id=hd0 -device virtio-blk-device,drive=hd0  \
          -netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0 \
          -device virtio-gpu,xres=1280,yres=800 -device virtio-keyboard -device virtio-tablet -sdl
</source>
Если нужен доступ по vnc, то вместо "-sdl" нужно указать "-vnc :1" и подключаться к 5901 порту (5900 порт занят для проброса сети):
<source lang="shell">
$ vncviewer localhost:5901
</source>


{{Category navigation|title=RISC-V|category=RISC-V|sortkey=*}}
{{Category navigation|title=RISC-V|category=RISC-V|sortkey=*}}

Версия от 16:14, 19 ноября 2021

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Поддержка RISC-V в отличается в различных версиях qemu.

QEMU 6.0+

В qemu 6.0 у ядра 5.14 при загрузке с u-boot работает графика (virtio-gpu) и ввод в графике (virtio-keyboard и virtio-tablet).

Для запуска образов в QEMU необходимо выполнить следующие шаги:

Шаг 0. Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы на ALT x86_64: qemu-system-riscv-core:

 apt-get install qemu-system-riscv-core

Шаг 1. Скачать последнюю версию u-boot-qemu для riscv64. Можно воспользоваться ссылкой Например, для u-boot-qemu 2021.04:

 wget http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/files/riscv64/RPMS/u-boot-qemu-2021.04-alt1.rv64.riscv64.rpm

Извлечь из пакета /usr/share/u-boot/qemu-riscv64_smode/u-boot.bin:

 rpm2cpio u-boot-qemu-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/qemu-riscv64_smode/u-boot.bin' > u-boot.bin

Шаг 2. Запуск образа в QEMU можно осуществить следующей командой, указав в IMAGE путь к образу и UBOOT путь до u-boot, скачанного на шаге 1:

$ IMAGE=<путь до образа>
$ UBOOT=<путь до u-boot.bin>
$ qemu-system-riscv64 \
          -nographic -m 2G  -machine virt -kernel "$UBOOT" \
          -smp cpus=4 \
          -drive file=$IMAGE,id=hd0 -device virtio-blk-device,drive=hd0  \
          -netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0 \
          -device virtio-gpu,xres=1280,yres=800 -device virtio-keyboard -device virtio-tablet -sdl

Если нужен доступ по vnc, то вместо "-sdl" нужно указать "-vnc :1" и подключаться к 5901 порту (5900 порт занят для проброса сети):

$ vncviewer localhost:5901


QEMU 5.0

Для запуска образов на QEMU необходимо выполнить следующие шаги:

Шаг 0. Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы на ALT x86_64: qemu-system-riscv-core.

Шаг 1.a Прошивка OpenSBI для QEMU virt находится внутри qcow2/qcow2c. Скопируем её из образа:

root$ qemu-nbd -c /dev/nbd0 qemu-riscv64.qcow2c
root$ mount /dev/nbd0p1 /mnt
root$ cp -v /mnt/usr/share/opensbi/qemu/virt/firmware/fw_payload.elf .
user$ FIRM=./fw_payload.elf

Шаг 1.b Альтернативный вариант: загрузить и установить последнюю версию пакета прошивки OpenSBI для QEMU virt. После этого прошивка OpenSBI будет находится в /usr/share/opensbi/qemu/virt/firmware/fw_payload.elf

Например:

user$ curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/opensbi-firmware-qemu-0.6-alt1.noarch.rpm
root$ rpm -i opensbi-firmware-qemu-0.6-alt1.noarch.rpm
user$ FIRM=/usr/share/opensbi/qemu/virt/firmware/fw_payload.elf

Шаг 1.с В случае хостовой системы ALT можно добавить noarch репозиторий riscv64 и установить пакет opensbi-firmware-generic:

$ apt-repo add 'rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux ports/riscv64/Sisyphus/noarch classic'
$ apt-get update
$ apt-get install opensbi-firmware-generic
$ FIRM=/usr/share/opensbi/qemu/virt/firmware/fw_payload.elf


Шаг 2. Запуск образа qcow2/qcow2c на QEMU можно осуществить следующей командой, указав в QCOW путь к образу:

$ QCOW=qemu-riscv64.qcow2c
$ qemu-system-riscv64 \
          -nographic -machine virt -kernel "$FIRM" \
          -m 2G -smp cpus=4 \
          -drive file="$QCOW",id=hd0 -device virtio-blk-device,drive=hd0 \
          -netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0

Шаг 3. Дальнейшая настройка графической системы выполняется при помощи VNC. При подключении по VNC установлен стандартный пароль alt, его будет предложено поменять при первоначальной настройке.