class: center, middle ## Prozessorachitektur # RISC-V ## schnell und einfach ausprobieren ### Hauke Goos-Habermann #### https://goos-habermann.de --- https://gnulinux.ch/freie-hardware-ist-risc-v-die-zukunft ### Über mich - Entwickler des Softwareverteilungssystems m23 - Organisator der Kieler Open Source und Linux Tage - Dienstleister zu m23, Linux und Freier Software - Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - An alternativen und freien CPUs interessiert --- ### RISC-V *
RISC-V
:
Patentfreie
und unter
BSD-Lizenz
stehende
Prozessorachitektur
* *RISC-V* ist ein Überbegriff für verschiedene Prozessoren (vom
Mikrocontroller
bis Serverprozessor) * Einige Hersteller haben bereits
Produkte
, die auf
RISC-V basieren
(z.B. SSD-Controller *SweRV* von Western Digital) * Übersicht über verfügbare und kommende Hardware im Artikel "
Freie Hardware: Ist RISC-V die Zukunft?
" von Niklas auf GNU/Linux.ch vom 16.4.21 * Emulation von RISC-V-CPUs
FPGA
oder
QEMU
* Artikel "
Prozessorachitektur RISC-V schnell und einfach ausprobieren
" über QEMU-Emulation am 09.01.2021 in meiner Kurzanleitungen/Howtos-Sektion * Herunterladen und Importieren der VirtualBox-Appliance, die QEMU und die RISC-V-Maschine enthält * Weitere Informationen, Einrichtung, etc. --- ### QEMU-Startskript *"/home/test/riscv64-debian-unstable.sh"* wird beim Booten der VM automatisch auf Terminal 5 gestartet: * ***-nographic*** und ***console=ttyS0***: keine Grafikausgabe (da auf TTY gestartet), ***-m 1.9G***: 1,9 GB Ram, ***-smp 4***: 4 CPUs, ***-bios*** und ***-kernel***: Imagedateien für BIOS und Bootloader, ***...rng...***: Zufallszahlengenerator festlegen, ***device virtio-blk-device...*** und ***...riscv64-debian-unstable.img...***: virtuelle Festplatte(ndatei) konfigurieren, ***...virtio-net-device...***: virtuelle Netzwerkkarte einstellen, ***...hostfwd...***: SSH-Port (22) der QEMU-VM auf den Port (5022) der VBox-VM weiterleiten. ```bash qemu-system-riscv64 -nographic -machine virt -m 1.9G -smp 4\ -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf\ -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf\ -object rng-random,filename=/dev/urandom,id=rng0\ -device virtio-rng-device,rng=rng0 \ -append "console=ttyS0 rw root=/dev/vda1" \ -device virtio-blk-device,drive=hd0 \ -drive file=riscv64-debian-unstable.img,format=raw,id=hd0\ -device virtio-net-device,netdev=net0 -net nic,model=ne2k_pci\ -netdev user,id=net0,hostfwd=tcp::5022-:22 ``` --- ### QEMU-RISCV-VM auf tty5 starten Mittels *"/etc/systemd/system/getty@tty5.service.d/override.conf*" festlegen, was auf TTY 5 ausgeführt wird: ```bash [Unit] Description=top on tty5 [Service] Type=simple User=test ExecStart= ExecStart=-/home/test/riscv64-debian-unstable.sh StandardInput=tty StandardOutput=tty TTYPath=/dev/tty5 [Install] WantedBy=multi-user.target ``` --- ### Anmelden #### Zugangsdaten * root-Benutzer: root / test * normaler Benutzer: test / test * root-Rechte erlangen: **su -** #### Direktanmeldung * Terminals 1-4 (**Host**taste + F1-F4): x86-Debian-10 * Terminal 5 (**Host**taste + F5): RISC-V-QEMU-VM #### SSH-Anmeldung * x86-Debian-10: **ssh -p 8022 test@localhost** * RISC-V-QEMU-VM: **ssh -X -p 5022 test@localhost** --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de