Regular/riscv64: Difference between revisions

From ALT Linux Wiki
(→‎How to run on QEMU: Update instruction to use OpenSBI)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:


'''<big>Regular image builds for SoC with RISC-V (rv64gc) CPU</big>
'''
{| style="border:1px solid #AAA; background:#F9F9FF; width:100px; margin: 0 0 1em 1em; padding:.2em; text-align:left; float: right;" class=noprint
{| style="border:1px solid #AAA; background:#F9F9FF; width:100px; margin: 0 0 1em 1em; padding:.2em; text-align:left; float: right;" class=noprint
| __TOC__
| __TOC__
Line 7: Line 5:
| [[:ru:Regular/riscv64|Русский]]
| [[:ru:Regular/riscv64|Русский]]
|}
|}
= '''Overview''' =
Regular image builds are intended to test and develop the RISC-V (rv64gc) [https://en.altlinux.org/Ports/riscv64 port] of the [https://en.altlinux.org/Sisyphus Sisyphus] repository.


To learn more about regular image builds one could refer to [https://en.altlinux.org/Regular this article].
[[Regular|Regular image]] builds are intended for testing and development of the [[Ports/riscv64|RISC-V (rv64gc) port]] of [[Sisyphus]] repository.


To make a bug report or discuss any suggestions please refer to the [[#Feedback|"Feedback"]] section on this page.
Additional information:
* on Regular images: [[Regular]];
* on riscv64 Sisyphus port: [[Ports/riscv64]];
* [[#Feedback]].


To enter the system, after the boot with one of the images listed below, please use the following username/password:
The images are intended to be run in qemu without modification and written according to the instructions to removable storage devices for sequent loading on target boards. Аfter booting from one of the images below, use the following credentials to login:  
<br>
'''<tt>login: root</tt>'''
<br>
'''<tt>password: alt</tt>'''


The graphical image with [https://en.wikipedia.org/wiki/Xfce XFCE] does not provides
  login: root
a preset password for the root user. At the first boot the user will be asked to setup
  password: altlinux
system manually through visual menu.


In the case of the developer image ('''builder''') there is an another user:
For images with graphics the user will be asked to complete the initial setup in a graphical setup wizard at the first boot. During configuration, you can set the timezone, root password, password for connecting to VNC (if launched via VNC), create a new user, etc. On boards without a graphics adapter the graphical setup wizard must be run via VNC.
<br>
'''<tt>login: altlinux</tt>'''
<br>
'''<tt>password: alt</tt>'''


{{Attention|It is recommended to '''change the password as soon as possible''' after the first log-in to the system.}}
== Download ==


== HiFive Unleashed ==
=== '''Direct download links''' ===
Four types of the images for the [https://www.sifive.com SiFive's] [https://www.crowdsupply.com/sifive/hifive-unleashed HiFive Unleashed] board currently available:


* Minimal system with systemd -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-jeos-systemd-latest-riscv64.tar.xz link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
These images are marked as '''tested''':
* Minimal system with SysV -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-jeos-sysv-latest-riscv64.tar.xz link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
* Minimal system for developer (rpmbuild, [https://www.altlinux.org/Hasher hasher], gcc-8, ssh) -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-builder-latest-riscv64.tar.xz link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
* Graphical system with XFCE (VNC, X11) -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-xfce-latest-riscv64.tar.xz link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
<br>
The instructions on how to run these images on HiFive Unleashed in [[#How to run on HiFive Unleashed|this section]].


== QEMU ==
* jeos-systemd: [http://nightly.altlinux.org/sisyphus-riscv64/tested/regular-jeos-systemd-latest-riscv64.img.xz riscv64] <ref>No GUI </ref>
The images for the [https://www.qemu.org QEMU] listed below:
 
* Minimal system with systemd -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-jeos-systemd-latest-riscv64.qcow2c link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
* lxqt: [http://nightly.altlinux.org/sisyphus-riscv64/tested/regular-lxqt-latest-riscv64.img.xz riscv64]
* Minimal sytem with SysV -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-jeos-sysv-latest-riscv64.qcow2c link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
* Minimal system for developer (rpmbuild, [https://www.altlinux.org/Hasher hasher], gcc-8, ssh) -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-builder-latest-riscv64.qcow2c link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
* Graphical system with XFCE (VNC, X11) -- [http://nightly.altlinux.org/sisyphus-riscv64/alpha/regular-xfce-latest-riscv64.qcow2c link] ([http://nightly.altlinux.org/sisyphus-riscv64/alpha/MD5SUM MD5], [http://nightly.altlinux.org/sisyphus-riscv64/alpha/SHA1SUM SHA1])
<br>
The instructions on how to run these images on QEMU in [[#How to run on QEMU|this section]].


= '''How to run on QEMU''' =
* mate: [http://nightly.altlinux.org/sisyphus-riscv64/tested/regular-mate-latest-riscv64.img.xz riscv64]
In order to run the image on the QEMU system one need to follow these steps:


'''Step 1.''' Install QEMU with riscv64 support. For example, in the case of ALT x86_64 system: [http://sisyphus.ru/en/srpm/Sisyphus/qemu qemu-system-riscv-core].
* xfce: [http://nightly.altlinux.org/sisyphus-riscv64/tested/regular-xfce-latest-riscv64.img.xz riscv64]


'''Step 2.'''
==== <p style="color:#337569;">ALT x86_64</p> ====
Install or download and extract a package with [https://github.com/riscv/opensbi OpenSBI] and [https://www.denx.de/wiki/U-Boot/ U-Boot]. In the case of '''ALT x86_64''' (if it is not the case, please [[#Other system|see here]]) one could add noarch repository sisyphus-riscv64 to the system and install the package <code>opensbi-firmware-generic</code>:


<source lang="shell">
=== Additional downloads ===
$ 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
</source>


After that, the firmware will be at the path <code>/usr/share/opensbi/generic/firmware/fw_payload.elf</code>.
Some additional images  are available on http://nightly.altlinux.org/sisyphus-riscv64/:


==== <p style="color:#337569;">Other system</p> ====
* images in other formats (e.g. rootfs tarballs, or ISO images with installer);
In that case one could download a package <code>opensbi-firmware-generic-.*</code> from the [http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/ sisyphus-riscv64  noarch repository sisyphus-riscv64]. After that it is possible to install the package <code>rpm -i</code> or extract it <code>rpm2cpio</code>.
* stapshots -- builds from the past weeks, and the newest images that were not tested yet (if any).
Besides that it is possible to get the firmware from the qcow2c image with <code>qemu-nbd</code>.


'''Step 3.''' Download one of the images for QEMU listed ([[#QEMU|above]]) and just replace <code><IMAGE></code> to the path of just downloaded qcow2c image and <code><FIRMWARE></code> to the <code>fw_payload.elf</code>:
== QEMU ==
<source lang="shell">
$ qemu-system-riscv64 -nographic -machine virt \
                      -bios <FIRMWARE> \
                      -m 2G -smp cpus=4 \
                      -drive file=<IMAGE>,id=hd0 -device virtio-blk-device,drive=hd0 \
                      -netdev user,id=eth0 -device virtio-net-device,netdev=eth0
</source>
In the case of the XFCE graphical image, the user needs to redirect incoming
TCP connections to the host port 5900 (VNC) to the guest port. One could do it
with the following command:
<source lang="shell">
$ qemu-system-riscv64 -nographic -machine virt \
                      -bios <FIRMWARE> \
                      -m 2G -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
</source>


For information about how to connect to the VNC server please refer to the [[#VNC|"VNC" section]].
The img.xz images must be unpacked and run according to the instructions: [[Ports/riscv64/QEMU]].


= '''How to run on HiFive Unleashed''' =
== HiFive Unmatched and Unleashed ==
This instruction assumes that the user is working on the computer with ALT Sisyphus installed on it.
In order to run the image on the HiFive Unleashed one need to follow these steps:


'''Step 1.''' [[#HiFive Unleashed|Download]] minimal system image with systemd, which is a ''tar'' archive with rootfs. To install the system one could choose between two options: [[#Automatic install on ALT Sisyphus|automatic install on ALT Sisyphus]] and [[#Manual install|manual]].
Images write in instructions are available on the board pages: [[HiFive Unmatched]] and [[HiFive Unleashed]].  


== Automatic install on ALT Sisyphus ==
== VNC ==
'''Step 2.''' Install the [http://sisyphus.ru/en/srpm/Sisyphus/alt-rootfs-installer alt-rootfs-installer].


'''Step 3.''' Run the <tt>alt-rootfs-installer</tt>. This script will automatically install the system on microSD card. For example, to install <tt>regular-builder-alpha20190329-riscv64.tar.xz</tt> image on <tt>/dev/sdX</tt> with log output to <tt>/home/user/alt-rootfs-installer.log</tt>:
Images with graphical desktop environments provide an option to work remotely via VNC, which is especially useful if your board does not have a (working) video card. To use this option:
<source lang="shell">
$ alt-rootfs-installer --rootfs=/home/user/images/regular-builder-alpha20190329-riscv64.tar.xz \
                      --media=/dev/sdX \
                      --target=HiFive-Unleashed-bbl --log /home/user/alt-rootfs-installer.log
</source>
<br>
After this procedure the /dev/sdX disk will contain two partitions. The first partition will contain bbl bootloader with Linux kernel, which is statically linked with bbl. The second partition will contain root file system.


Now, microSD card is ready to use with HiFive Unleashed.
* enable vnc mode in alterator-setup by uncommenting or adding a line to /etc/alterator-setup/config:


== Manual install ==
<source lang="shell">ALTERATOR_SETUP_VNC=1</source>
'''Step 2.''' Untar the /boot directory from the archive from ''step 1''. For example, in the case of minimal system image with systemd:
<source lang="shell">
$ tar -xf regular-jeos-latest-riscv64.tar.xz ./boot
</source>
The ./boot/vmlinuz will contain symlink to the Linux kernel.


'''Step 3.''' Create the GPT table with two partitions on the microSD card:
or add a --vnc=1 argument for alt-rootfs-installer when it writes to a removable storage device.
* The first partition must contain specific GUID 2E54B353-1271-4842-806F-E436D6AF6985
* The second partition is a typical Linux Filesystem GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4
The example command for <tt>/dev/sdX</tt>:
<source lang="shell">
$ sgdisk -g --clear \
        --new=1:2048:67583 --change-name=1:bootloader --typecode=1:2E54B353-1271-4842-806F-E436D6AF6985 \
        --new=2:264192:    --change-name=2:root      --typecode=2:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
        "/dev/sdX"
</source>


'''Step 4.''' Write the bbl+Linux kernel to the first partition of microSD:
* connect to the board's serial port and wait for the information about the board network address and the VNC connection password:
<source lang="shell">
<source lang="shell">
$ dd if=boot/vmlinuz of=/dev/sdX1 bs=4M status=progress
localhost login: ALTERATOR SETUP === VNC access enabled
ALTERATOR SETUP === VNC Password="cobra-angel"
ALTERATOR SETUP === Default network device: "eth0"
ALTERATOR SETUP === IPv4: "10.0.2.15/24"
ALTERATOR SETUP === IPv6: "fec0::bee1:6f2d:ce4a:9c1d/64
fe80::6a0:ddd0:df03:e44d/64"
PORT=5900
</source>
</source>


'''Step 5.''' Create filesystem on second partition of microSD. Mount it and untar the archive with rootfs:
To connect to a serial console (usually /dev/ttyUSB1) you can use GNU/screen:
<source lang="shell">
<source lang="shell">
$ mkfs.ext4 /dev/sdX2
$ screen /dev/ttyUSB1 115200
$ mount /dev/sdX2 /mnt
$ tar -xpvf regular-jeos-latest-riscv64.tar.xz -C /mnt/
$ umount /dev/sdX2
</source>
</source>


Now, microSD is ready to use with HiFive Unleashed.
* connect to the VNC server. You can use <tt>remote-viewer</tt> -- a VNC client from the virt-viewer package:
<source lang="shell">$ remote-viewer vnc://<ip_address>:<Port></source>


= '''VNC''' =
== Feedback ==
At the first boot the user will be asked to setup
system manually through visual menu. One could setup the timezone, root password,
add a new user, setup VNC password, etc.
In the case of QEMU the connection procedure to VNC is straightforward.
For example, in the case of [https://en.wikipedia.org/wiki/TigerVNC tigerVNC]:
<source lang="shell">
$ vncviewer 127.0.0.1
</source>


In the case of HiFive Unleashed one needs to find out what is the IP address of this machine. The HiFive Unleashed obtains an IP address from DHCP during boot time.
'''• Bug reports''' are tracked at [https://bugzilla.altlinux.org ALT Linux Team bugzilla] (see also: [[BugTracking]]):
One way to do this is to connect HiFive Unleashed and PC with a microUSB-USB cord.
* In the case of any issue with a package choose product ''Sisyphus''.
This allows one to connect to the serial console. To connect to the serial
* In the case of an issue with the images choose product ''Regular'' .
console (usually it is /dev/ttyUSB1) with GNU/screen, please use the following command:
<source lang="shell">
$ screen /dev/ttyUSB1 115200
</source>


During first boot time the information about IPv4 and IPv6 addresses will be prompted
'''IMPORTANT''':
to the console (e.g.):
* set platform field (drop-down list at the right) to ''riscv64'';
<source lang="shell">
* assign the issue to <tt>iv@altlinux.org</tt>.
[  128.084540] xinit[276]: ALTERATOR SETUP === Default device: "eth0"
[  128.084888] xinit[276]: ALTERATOR SETUP === IPv4: "192.168.88.216/24"
[  128.085110] xinit[276]: ALTERATOR SETUP === IPv6: "fe80::72b3:d5ff:fe92:f229/64"
</source>


To connect to the VNC server:
'''• Mailing list:''' [https://lists.altlinux.org/mailman/listinfo/riscv-devel riscv-devel@lists.altlinux.org]
<source lang="shell">
$ vncviewer 192.168.88.216
</source>


= '''Feedback''' =
== Footnotes ==
'''• Bug reports''' submission form at [https://bugzilla.altlinux.org bugzilla].
* In the case of any issue with a package please choose ''Sisyphus''.
* In the case of an issue with the images please choose ''Regular''.
 
Set ''riscv64'' as a platform (drop-down list at the right). In the field "''Assign to''" set <tt>arei@altlinux.org</tt>.
<br>
'''• IRC''' channel [http://irc.netsplit.de/channels/details.php?room=%23altlinux-riscv&net=freenode #altlinux-riscv] at [https://freenode.net/ freenode].
<br>
'''• Mailing list:''' riscv-devel@lists.altlinux.org


[[Category:Sisyphus]]
[[Category:Regular]]
[[Category:RISC-V]]
[[ru:Regular/riscv64]]
[[ru:Regular/riscv64]]
[[Category:Regular]]
[[Category:Sisyphus]]

Latest revision as of 12:15, 27 January 2023

Русский

Regular image builds are intended for testing and development of the RISC-V (rv64gc) port of Sisyphus repository.

Additional information:

The images are intended to be run in qemu without modification and written according to the instructions to removable storage devices for sequent loading on target boards. Аfter booting from one of the images below, use the following credentials to login:

 login: root
 password: altlinux

For images with graphics the user will be asked to complete the initial setup in a graphical setup wizard at the first boot. During configuration, you can set the timezone, root password, password for connecting to VNC (if launched via VNC), create a new user, etc. On boards without a graphics adapter the graphical setup wizard must be run via VNC.

Download

Direct download links

These images are marked as tested:


Additional downloads

Some additional images are available on http://nightly.altlinux.org/sisyphus-riscv64/:

  • images in other formats (e.g. rootfs tarballs, or ISO images with installer);
  • stapshots -- builds from the past weeks, and the newest images that were not tested yet (if any).

QEMU

The img.xz images must be unpacked and run according to the instructions: Ports/riscv64/QEMU.

HiFive Unmatched and Unleashed

Images write in instructions are available on the board pages: HiFive Unmatched and HiFive Unleashed.

VNC

Images with graphical desktop environments provide an option to work remotely via VNC, which is especially useful if your board does not have a (working) video card. To use this option:

  • enable vnc mode in alterator-setup by uncommenting or adding a line to /etc/alterator-setup/config:
ALTERATOR_SETUP_VNC=1

or add a --vnc=1 argument for alt-rootfs-installer when it writes to a removable storage device.

  • connect to the board's serial port and wait for the information about the board network address and the VNC connection password:
localhost login: ALTERATOR SETUP === VNC access enabled
ALTERATOR SETUP === VNC Password="cobra-angel"
ALTERATOR SETUP === Default network device: "eth0"
ALTERATOR SETUP === IPv4: "10.0.2.15/24"
ALTERATOR SETUP === IPv6: "fec0::bee1:6f2d:ce4a:9c1d/64
fe80::6a0:ddd0:df03:e44d/64"
PORT=5900

To connect to a serial console (usually /dev/ttyUSB1) you can use GNU/screen:

$ screen /dev/ttyUSB1 115200
  • connect to the VNC server. You can use remote-viewer -- a VNC client from the virt-viewer package:
$ remote-viewer vnc://<ip_address>:<Port>

Feedback

• Bug reports are tracked at ALT Linux Team bugzilla (see also: BugTracking):

  • In the case of any issue with a package choose product Sisyphus.
  • In the case of an issue with the images choose product Regular .

IMPORTANT:

  • set platform field (drop-down list at the right) to riscv64;
  • assign the issue to iv@altlinux.org.

• Mailing list: riscv-devel@lists.altlinux.org

Footnotes

  1. No GUI