RISC-V

Differences between revisions 15 and 62 (spanning 47 versions)
Revision 15 as of 2021-02-17 10:56:21
Size: 3629
Editor: xnox
Comment:
Revision 62 as of 2025-02-07 13:36:10
Size: 179
Editor: adrianoco
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Ubuntu provides riscv64 architecture for the RISC-V platform since Focal release.

== Images ==

 * Ubuntu 20.04.2 LTS Release Image https://cdimage.ubuntu.com/releases/20.04.2/release/

 * Ubuntu Focal (20.04) Dailies https://cdimage.ubuntu.com/ubuntu-server/focal/daily-preinstalled/current/

 * Ubuntu Hirsute (21.04) Dailies https://cdimage.ubuntu.com/ubuntu-server/daily-preinstalled/current/

One can boot it on any system with qemu-system, or on bare-metal board such as those built by SiFive.

== Forums ==

You can discuss Ubuntu on RISC-V over at the [[https://discourse.ubuntu.com/c/server/17|Ubuntu Server forums]].

== Booting with qemu ==

Prerequisites:

 * apt install qemu-system-misc opensbi u-boot-qemu qemu-utils

After installing the above prerequisites, one can use any of the above images to boot virtua>

First unpack the image

{{{
xz -dk focal-preinstalled-server-riscv64.img.xz
}}}

Optionally, if you want larger disk, you can expand the disk (filesystem will be automatical>

{{{
qemu-img resize -f raw focal-preinstalled-server-riscv64.img +5G
}}}

Next use OpenSBI bootloader & u-boot-qemu to boot the virtual machine

Working example with all the options is:

{{{
qemu-system-riscv64 \
-machine virt -nographic -m 2048 -smp 4 \
-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
-device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \
-drive file=focal-preinstalled-server-riscv64.img,format=raw,if=virtio
}}}

The important options to use are:

 * Machine type `virt` aka `-machine virt`
 * Bios is OpenSBI `-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf`
 * "kernel" is qemu smode uboot `-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf`

One can use pass through networking, adjust memory (`-m`) & cpu counts (`-smp`) as needed.

Switch to the serial console, wait for cloud-init to complete, then login using `ubuntu:ubuntu`. See the cloud-init section below to further customise the first boot behaviour with cloud-init.

== Booting on SiFive HiFive Unleashed board ==

The above image has U-Boot SPL loader as well as SiFive U-Boot to boot on the board.

Set jumpers to boot from the microSD by setting `MSEL=1011` (MSEL2 to the outside of the board, the rest to the inside).

You can then use "Gnome Disks" app to restore `img.xz` image onto the microSD card, plug it into the board and boot.

You can also use cmdline to extract the image and dd it.

{{{
xz -dk focal-preinstalled-server-riscv64.img.xz
dd if=focal-preinstalled-server-riscv64.img of=/dev/disk/by-id/<TAB><TAB>complete-to-sdcard-device
}}}

Monitor serial console, wait for cloud-init to complete, then login using `ubuntu:ubuntu`. See the cloud-init section below to further customise the first boot behaviour with cloud-init.

== cloud-init integration ==

The image has a fallback cloud-init datasource that configures sudo user `ubuntu` with password `ubuntu` and DHCP networking. You will be asked to change the password on first login.

The image has `CIDATA` partition which can be used as a valid datasource to adjust cloud-config metadata. If you wish to customize user password, networking information, add ssh keys, etc. Please mount `CIDATA` partition rename `meta-data` and `user-data` files and adjust them to taste. You can use network-info to configure networking if something more sophisticated than just DHCP is desired.

For example ssh keys, disabling interactive login, and so on. See https://cloudinit.readthedocs.io/en/latest
#refresh 2 https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/
This page has been moved to the Ubuntu Readthedocs Documentation Website. You are being redirected.

This page has been moved to the Ubuntu Readthedocs Documentation Website. You are being redirected.

RISC-V (last edited 2025-02-07 13:36:10 by adrianoco)