RISC-V

Differences between revisions 13 and 57 (spanning 44 versions)
Revision 13 as of 2021-02-17 10:44:21
Size: 3600
Editor: xnox
Comment:
Revision 57 as of 2023-11-13 18:51:48
Size: 3321
Editor: lengau
Comment: Fix link
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. Ubuntu provides the riscv64 architecture for the RISC-V platform since the release of Ubuntu 20.04 LTS.
Line 5: Line 5:
 * Ubuntu 20.04.2 LTS Release Image https://cdimage.ubuntu.com/releases/20.04.2/release/ === Preinstalled Server Images ===
Line 7: Line 7:
 * Ubuntu Focal (20.04) Dailies https://cdimage.ubuntu.com/ubuntu-server/focal/daily-preinstalled/current/  * Ubuntu 23.10 (Mantic minotaur) preinstalled images for
Line 9: Line 9:
 * Ubuntu Hirsute (21.04) Dailies https://cdimage.ubuntu.com/ubuntu-server/daily-preinstalled/current/    * [[RISC-V/Nezha D1 | Allwinner Nezha D1]]
   * [[RISC-V/LicheeRV | LicheeRV Dock]]
   * [[RISC-V/PolarFire SoC FPGA Icicle Kit | Microchip Polarfire Icicle]]
   * [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] (also supports [[RISC-V/QEMU | QEMU]])
   * [[RISC-V/StarFive VisionFive | StarFive VisionFive]]
   * [[RISC-V/StarFive VisionFive 2 | StarFive VisionFive 2]]
Line 11: Line 16:
One can boot it on any system with qemu-system, or on bare-metal board such as those built by SiFive.  * Ubuntu 23.04 (Lunar Lobster) preinstalled SD-card images for

   * [[RISC-V/Nezha D1 | Allwinner Nezha D1]]
   * [[RISC-V/LicheeRV | LicheeRV Dock]]
   * [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] (also supports [[RISC-V/QEMU | QEMU]])
   * [[RISC-V/StarFive VisionFive | StarFive VisionFive]]
   * [[RISC-V/StarFive VisionFive 2 | StarFive VisionFive 2]]

 are available at https://cdimage.ubuntu.com/releases/23.04/release/.

 * Ubuntu 22.04.3 (Jammy Jellyfish) preinstalled SD-card images for

   * [[RISC-V/Nezha D1 | Allwinner Nezha D1]]
   * [[RISC-V/LicheeRV | LicheeRV Dock]]
   * [[RISC-V/PolarFire SoC FPGA Icicle Kit | Microchip PolarFire Icicle Kit]]
   * [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] (also supports [[RISC-V/QEMU | QEMU]])
   * [[RISC-V/StarFive VisionFive | StarFive VisionFive]]

 are available at https://cdimage.ubuntu.com/releases/22.04.2/release/.

 * Ubuntu 20.04.5 (Focal Fossa) preinstalled SD-card images for the

   * SiFive HiFive Unleashed
   * [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] (also supports [[RISC-V/QEMU | QEMU]])

 are available at https://cdimage.ubuntu.com/releases/20.04.5/release/.

=== Server Install Image ===

If you want to install Ubuntu on a disk drive, use the server install image.

 * An Ubuntu 23.10 (Mantic Minotaur) [[https://cdimage.ubuntu.com/releases/23.10/release/ubuntu-23.10-live-server-riscv64.img.gz|server install image]] is available at https://cdimage.ubuntu.com/releases/23.10/release/

 * A Ubuntu 23.04 (Lunar Lobster) server install image supporting the [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] board and [[RISC-V/QEMU | QEMU]] is available at https://cdimage.ubuntu.com/releases/23.04/release/.


 * A Ubuntu 22.04.3 (Jammy Jellyfish) server install image supporting the [[RISC-V/SiFive HiFive Unmatched | SiFive HiFive Unmatched]] board and [[RISC-V/QEMU | QEMU]] is available at https://cdimage.ubuntu.com/releases/22.04.3/release/.

A tutorial is available at https://ubuntu.com/tutorials/install-ubuntu-server.

A description of the installation process is also available at https://discourse.ubuntu.com/t/ubuntu-installation-on-the-sifive-hifive-unmatched-board-using-a-server-install-image/27804.

=== Desktop ===

We currently don't provide a desktop image for RISC-V. But you can install package ubuntu-desktop to get a GNOME desktop. As of 2022 due to performance restrictions the only hardware usable for a desktop is the SiFive HiFive Unmatched board.
Line 16: Line 65:

== 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 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 -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,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

Ubuntu provides the riscv64 architecture for the RISC-V platform since the release of Ubuntu 20.04 LTS.

Images

Preinstalled Server Images

Server Install Image

If you want to install Ubuntu on a disk drive, use the server install image.

A tutorial is available at https://ubuntu.com/tutorials/install-ubuntu-server.

A description of the installation process is also available at https://discourse.ubuntu.com/t/ubuntu-installation-on-the-sifive-hifive-unmatched-board-using-a-server-install-image/27804.

Desktop

We currently don't provide a desktop image for RISC-V. But you can install package ubuntu-desktop to get a GNOME desktop. As of 2022 due to performance restrictions the only hardware usable for a desktop is the SiFive HiFive Unmatched board.

Forums

You can discuss Ubuntu on RISC-V over at the Ubuntu Server forums.

RISC-V (last edited 2024-04-21 06:55:43 by xypron)