openbsd-riscv64-vm - www.codemadness.org - www.codemadness.org saait content files
(HTM) git clone git://git.codemadness.org/www.codemadness.org
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
openbsd-riscv64-vm (4758B)
---
1 1<- Back / codemadness.org 70
2 i codemadness.org 70
3 i codemadness.org 70
4 i# Setup an OpenBSD RISCV64 VM in QEMU codemadness.org 70
5 i codemadness.org 70
6 iLast modification on 2021-10-26 codemadness.org 70
7 i codemadness.org 70
8 iThis describes how to setup an OpenBSD RISCV64 VM in QEMU. codemadness.org 70
9 i codemadness.org 70
10 iThe shellscript below does the following: codemadness.org 70
11 i codemadness.org 70
12 i* Set up the disk image (raw format). codemadness.org 70
13 i* Patch the disk image with the OpenBSD miniroot file for the installation. codemadness.org 70
14 i* Downloads the opensbi and u-boot firmware files for qemu. codemadness.org 70
15 i* Run the VM with the supported settings. codemadness.org 70
16 i codemadness.org 70
17 iThe script is tested on the host GNU/Void Linux and OpenBSD-current. codemadness.org 70
18 i codemadness.org 70
19 i**IMPORTANT!: The signature and checksum for the miniroot, u-boot and opensbi codemadness.org 70
20 ifiles are not verified. If the host is OpenBSD make sure to instead install the codemadness.org 70
21 ipackages (pkg_add u-boot-riscv64 opensbi) and adjust the firmware path for the codemadness.org 70
22 iqemu -bios and -kernel options. ** codemadness.org 70
23 i codemadness.org 70
24 i codemadness.org 70
25 i## Shellscript codemadness.org 70
26 i codemadness.org 70
27 i #!/bin/sh codemadness.org 70
28 i # mirror list: https://www.openbsd.org/ftp.html codemadness.org 70
29 i mirror="https://ftp.bit.nl/pub/OpenBSD/" codemadness.org 70
30 i release="7.0" codemadness.org 70
31 i minirootname="miniroot70.img" codemadness.org 70
32 i codemadness.org 70
33 i miniroot() { codemadness.org 70
34 i test -f "${minirootname}" && return # download once codemadness.org 70
35 i codemadness.org 70
36 i url="${mirror}/${release}/riscv64/${minirootname}" codemadness.org 70
37 i curl -o "${minirootname}" "${url}" codemadness.org 70
38 i } codemadness.org 70
39 i codemadness.org 70
40 i createrootdisk() { codemadness.org 70
41 i test -f disk.raw && return # create once codemadness.org 70
42 i qemu-img create disk.raw 10G # create 10 GB disk codemadness.org 70
43 i dd conv=notrunc if=${minirootname} of=disk.raw # write miniroot to disk codemadness.org 70
44 i } codemadness.org 70
45 i codemadness.org 70
46 i opensbi() { codemadness.org 70
47 i f="opensbi.tgz" codemadness.org 70
48 i test -f "${f}" && return # download and extract once. codemadness.org 70
49 i codemadness.org 70
50 i url="${mirror}/${release}/packages/amd64/opensbi-0.9p0.tgz" codemadness.org 70
51 i curl -o "${f}" "${url}" codemadness.org 70
52 i codemadness.org 70
53 i tar -xzf "${f}" share/opensbi/generic/fw_jump.bin codemadness.org 70
54 i } codemadness.org 70
55 i codemadness.org 70
56 i uboot() { codemadness.org 70
57 i f="uboot.tgz" codemadness.org 70
58 i test -f "${f}" && return # download and extract once. codemadness.org 70
59 i codemadness.org 70
60 i url="${mirror}/${release}/packages/amd64/u-boot-riscv64-2021.07p0.tgz" codemadness.org 70
61 i curl -o "${f}" "${url}" codemadness.org 70
62 i codemadness.org 70
63 i tar -xzf "${f}" share/u-boot/qemu-riscv64_smode/u-boot.bin codemadness.org 70
64 i } codemadness.org 70
65 i codemadness.org 70
66 i setup() { codemadness.org 70
67 i miniroot codemadness.org 70
68 i createrootdisk codemadness.org 70
69 i opensbi codemadness.org 70
70 i uboot codemadness.org 70
71 i } codemadness.org 70
72 i codemadness.org 70
73 i run() { codemadness.org 70
74 i qemu-system-riscv64 \ codemadness.org 70
75 i -machine virt \ codemadness.org 70
76 i -nographic \ codemadness.org 70
77 i -m 2048M \ codemadness.org 70
78 i -smp 2 \ codemadness.org 70
79 i -bios share/opensbi/generic/fw_jump.bin \ codemadness.org 70
80 i -kernel share/u-boot/qemu-riscv64_smode/u-boot.bin \ codemadness.org 70
81 i -drive file=disk.raw,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 \ codemadness.org 70
82 i -netdev user,id=net0,ipv6=off -device virtio-net-device,netdev=net0 codemadness.org 70
83 i } codemadness.org 70
84 i codemadness.org 70
85 i setup codemadness.org 70
86 i run codemadness.org 70
87 .