mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-09 14:36:43 +00:00
docs(riscv64): document Ubuntu 24.04 and 26.04 support
The guides said riscv64 covered EL10 only, and the riscv64 page listed Ubuntu as unsupported. Both support matrices now carry the architecture for Ubuntu, and the riscv64 page describes the Ubuntu paths: the loader copycd builds from the media, the installer needing none of the accommodations EL10 requires, the ports archive the packages come from, and a management node running on riscv64. The 26.04 media need the RVA23 profile, which is recorded as a limitation. Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
This commit is contained in:
@@ -9,7 +9,7 @@ In a homogeneous cluster, the management node is the same hardware architecture
|
||||
|
||||
The issues arises in a heterogeneous cluster, where the management node is running a different level operating system *or* hardware architecture as the compute nodes in which to deploy the image. The ``genimage`` command that builds stateless images depends on various utilities provided by the base operating system and needs to be run on a node with the same hardware architecture and *major* Operating System release as the nodes that will be booted from the image.
|
||||
|
||||
When running xCAT >= 2.17 on EL >= 8 based management node with x86_64 architecture, qemu-user-static can be used to cross-build ppc64*, aarch64 and riscv64 osimages. Therefore, you don't need to build images on systems with the target architecture anymore.
|
||||
When running xCAT >= 2.17 on EL >= 8 based management node with x86_64 architecture, qemu-user-static can be used to cross-build ppc64*, aarch64 and riscv64 osimages. Therefore, you don't need to build images on systems with the target architecture anymore. The same applies to an Ubuntu management node, where ``qemu-user-static`` and ``binfmt-support`` are packages of the distribution and register the handler on install.
|
||||
|
||||
Cross-build ppc64*/aarch64/riscv64 stateless/statelite image on x86_64 management node
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
Support Matrix
|
||||
==============
|
||||
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| | RHEL | SLES | RHEL | SLES | Ubuntu | RHEL | SLES | Ubuntu | RHEL | SLES | Ubuntu | RHEL |
|
||||
| | ppc64 | ppc64 | x86_64 | x86_64 | x86_64 | ppc64le | ppc64le | ppc64el | aarch64 | aarch64 | aarch64 | riscv64 |
|
||||
| | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN |
|
||||
+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+
|
||||
| RHEL | | | | | | | | | | | | |
|
||||
| ppc64 | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | | | [1]_ | [1]_ | [1]_ | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | |
|
||||
| ppc64 | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | | | [1]_ | [1]_ | [1]_ | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| RHEL | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes |
|
||||
| MN/SN | [4]_ | [4]_ | | | | | | | | | | [6]_ |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no |
|
||||
| MN/SN | [4]_ | [4]_ | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| Ubuntu | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no |
|
||||
| MN/SN | [5]_ | [5]_ | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| RHEL | | | | | | | | | | | | |
|
||||
| ppc64le | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | [2]_ | [2]_ | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | |
|
||||
| ppc64le | no | no | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | | | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| Ubuntu | | | | | | | | | | | | |
|
||||
| ppc64el | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | [3]_ | [3]_ | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| | RHEL | SLES | RHEL | SLES | Ubuntu | RHEL | SLES | Ubuntu | RHEL | SLES | Ubuntu | RHEL | Ubuntu |
|
||||
| | ppc64 | ppc64 | x86_64 | x86_64 | x86_64 | ppc64le | ppc64le | ppc64el | aarch64 | aarch64 | aarch64 | riscv64 | riscv64 |
|
||||
| | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN | CN |
|
||||
+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+
|
||||
| RHEL | | | | | | | | | | | | | |
|
||||
| ppc64 | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no |
|
||||
| MN/SN | | | [1]_ | [1]_ | [1]_ | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | | |
|
||||
| ppc64 | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no |
|
||||
| MN/SN | | | [1]_ | [1]_ | [1]_ | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| RHEL | | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes | no |
|
||||
| MN/SN | [4]_ | [4]_ | | | | | | | | | | [6]_ | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no |
|
||||
| MN/SN | [4]_ | [4]_ | | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| Ubuntu | | | | | | | | | | | | | |
|
||||
| x86_64 | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | yes |
|
||||
| MN/SN | [5]_ | [5]_ | | | | | | | | | | | [7]_ |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| RHEL | | | | | | | | | | | | | |
|
||||
| ppc64le | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no |
|
||||
| MN/SN | [2]_ | [2]_ | | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| SLES | | | | | | | | | | | | | |
|
||||
| ppc64le | no | no | yes | yes | yes | yes | yes | yes | no | no | no | no | no |
|
||||
| MN/SN | | | | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
| Ubuntu | | | | | | | | | | | | | |
|
||||
| ppc64el | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no |
|
||||
| MN/SN | [3]_ | [3]_ | | | | | | | | | | | |
|
||||
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|
||||
|
||||
|
||||
Notes:
|
||||
@@ -54,3 +54,4 @@ Notes:
|
||||
.. [4] If the compute nodes are DFM managed systems, will need the ppc64le DFM and ppc64le hardware server on the management node.
|
||||
.. [5] Does not support DFM managed compute nodes, hardware control does not work.
|
||||
.. [6] riscv64 compute nodes boot through UEFI firmware and grub2 only. The management node needs the riscv64 Genesis image (``xCAT-genesis-openembedded-riscv64``) and ``/tftpboot/boot/grub2/grub2.riscv64`` (see :doc:`/guides/install-guides/yum/grub2`). EL10 compute nodes are supported, validated from an EL10 x86_64 management node; a riscv64 management node is documented in :doc:`/guides/admin-guides/manage_clusters/riscv64/index`.
|
||||
.. [7] Ubuntu 24.04 and 26.04 riscv64 compute nodes, stateful and stateless, validated from an Ubuntu x86_64 management node. The riscv64 packages that carry a binary (``goconserver``, ``ipmitool-xcat``, ``conserver-xcat``) come from a riscv64 xcat-dep apt repository; see :doc:`/guides/admin-guides/manage_clusters/riscv64/index`.
|
||||
|
||||
@@ -60,7 +60,10 @@ the repository declares. Only ``xCAT``, ``xCATsn`` and ``xCAT-genesis-scripts``
|
||||
carry an architecture, and there the difference is packaging metadata rather than
|
||||
compiled output. That is why this build needs no ``sbuild`` and no per-codename
|
||||
chroot -- unlike xcat-deps, whose packages are compiled and genuinely differ per
|
||||
release.
|
||||
release. ``xCAT`` and ``xCATsn`` are built for riscv64 as well as amd64 and
|
||||
ppc64el, and every release the repository serves declares the architecture;
|
||||
``xCAT-genesis-scripts`` keeps the two architectures it has control files for,
|
||||
because riscv64 Genesis ships as an OpenEmbedded package instead.
|
||||
|
||||
Helpers shared by both builders live in ``build-utils/lib/XCAT/BuildUtils.pm``.
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ Key Attributes
|
||||
+--------------------------+----------------------+-----------------------------------+
|
||||
| aarch64 | >=el8 | grub2 |
|
||||
+--------------------------+----------------------+-----------------------------------+
|
||||
| riscv64 | >=el10 | grub2,grub2-http,grub2-tftp |
|
||||
| riscv64 | >=el10, >=ubuntu24.04| grub2,grub2-http,grub2-tftp |
|
||||
+--------------------------+----------------------+-----------------------------------+
|
||||
|
||||
* postscripts:
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
RISC-V 64-bit (riscv64)
|
||||
=======================
|
||||
|
||||
xCAT manages RISC-V 64-bit (``riscv64``) compute nodes running EL10. Rocky
|
||||
Linux 10 is the reference distribution; the RHEL 10 RISC-V developer preview
|
||||
uses the same media layout. The general cluster management documentation under
|
||||
xCAT manages RISC-V 64-bit (``riscv64``) compute nodes running EL10 or Ubuntu.
|
||||
Rocky Linux 10 is the reference EL distribution and the RHEL 10 RISC-V developer
|
||||
preview uses the same media layout; on the Ubuntu side, 24.04 and 26.04 are
|
||||
supported from the live-server media. The general cluster management documentation under
|
||||
:doc:`/guides/admin-guides/manage_clusters/index` applies; this page
|
||||
only covers what is specific to the architecture.
|
||||
|
||||
@@ -21,16 +22,31 @@ What riscv64 nodes need
|
||||
``grub2-http`` is recommended for installers, whose initrd is large.
|
||||
* ``nodetype.arch`` and ``osimage.osarch`` are ``riscv64``. No alias is
|
||||
needed: ``uname -m``, rpm and dpkg all use the same token.
|
||||
* ``/tftpboot/boot/grub2/grub2.riscv64``: the EL grub2 UEFI image for riscv64
|
||||
(the ``EFI/BOOT/grubriscv64.efi`` of the EL10 riscv64 BaseOS tree).
|
||||
``copycds`` publishes it from the installation media when the management node
|
||||
does not have it yet, the ``grub2-xcat`` package installs the same image, and
|
||||
:doc:`/guides/install-guides/yum/grub2` describes copying it by hand. An image
|
||||
that is already there is never replaced.
|
||||
* ``/tftpboot/boot/grub2/grub2.riscv64``: the grub2 UEFI image the firmware
|
||||
loads. On EL media it is the ``EFI/BOOT/grubriscv64.efi`` of the riscv64
|
||||
BaseOS tree, which the ``grub2-xcat`` package also installs and
|
||||
:doc:`/guides/install-guides/yum/grub2` describes copying by hand; ``copycds``
|
||||
publishes it when the management node does not have it yet and keeps an image
|
||||
that is already there.
|
||||
|
||||
Ubuntu media are different: the loader they carry boots only from the media,
|
||||
because it holds a built-in configuration that searches for the live
|
||||
filesystem and never reads the configuration ``nodeset`` writes. ``copycds``
|
||||
therefore builds a netboot image from the ``grub-efi-riscv64-bin`` package on
|
||||
the media, with the network modules and the ``/boot/grub2`` prefix compiled
|
||||
in, and installs it under that name. An image already there is kept when it
|
||||
carries that prefix and those modules, which is what the loader this path
|
||||
builds looks like; anything else is replaced, because the image the media
|
||||
carry cannot reach the configuration. When the media cannot produce a
|
||||
replacement, whatever is there is left untouched and ``copycds`` says so:
|
||||
check that the nodes still boot, since the file was not built for this path.
|
||||
Building the loader needs ``grub-mkimage``, which ``grub-common`` provides and
|
||||
``xcat-server`` requires.
|
||||
* The riscv64 Genesis image (``xCAT-genesis-openembedded-riscv64``) for
|
||||
discovery, BMC setup and flashing. Its kernel is loaded by grub2 through the
|
||||
EFI stub. ``go-xcat`` installs the package; on a management node built another
|
||||
way, install it explicitly (``dnf install xCAT-genesis-openembedded-riscv64``),
|
||||
way, install it explicitly (``dnf install xCAT-genesis-openembedded-riscv64``,
|
||||
or ``apt install xcat-genesis-openembedded-riscv64`` on Ubuntu),
|
||||
the same way the images of other architectures are installed for a mixed
|
||||
cluster. ``xcatconfig`` runs ``mknb riscv64`` for every installed image.
|
||||
The management node itself is x86_64 (the validated combination, see
|
||||
@@ -65,6 +81,9 @@ for the other architectures.
|
||||
Stateful (diskful) installation
|
||||
--------------------------------
|
||||
|
||||
EL10
|
||||
~~~~
|
||||
|
||||
Import the Rocky Linux 10 riscv64 DVD with ``copycds``; it creates the
|
||||
``rocky10.x-riscv64-install-compute`` osimage. The installer kernel and initrd
|
||||
come from ``images/pxeboot`` on the media, like x86_64 and aarch64.
|
||||
@@ -84,6 +103,28 @@ package lists add ``grub2-efi-riscv64`` and ``efibootmgr``, and the
|
||||
these files. After ``nodeset <node> boot`` the firmware boots the installed
|
||||
system because the per-node ``grub2-<node>`` loader link is removed.
|
||||
|
||||
Ubuntu
|
||||
~~~~~~
|
||||
|
||||
Import the Ubuntu 24.04 or 26.04 riscv64 live-server ISO with ``copycds``; it
|
||||
creates the ``ubuntu<version>-riscv64-install-compute`` osimage. The installer
|
||||
kernel and initrd come from ``casper/vmlinux`` and ``casper/initrd``, where the
|
||||
riscv64 media keep them.
|
||||
|
||||
The installer needs no riscv64 accommodation of the kind EL10 requires: Subiquity
|
||||
installs ``grub-efi-riscv64`` itself, writes both ``\EFI\ubuntu\grubriscv64.efi``
|
||||
and the removable-media fallback ``\EFI\BOOT\BOOTRISCV64.EFI``, and registers the
|
||||
UEFI boot entry. The shared ``compute.subiquity.tmpl`` is used unchanged.
|
||||
|
||||
The autoinstall configuration is fetched from the management node over HTTP with
|
||||
``ds=nocloud-net``. That argument holds a semicolon, which grub2 reads as a
|
||||
command separator, so the boot loader configuration quotes it; a node whose
|
||||
kernel command line ends before the seed URL is a sign of an unquoted separator.
|
||||
|
||||
Packages the media do not carry are taken from ``ports.ubuntu.com``, which is
|
||||
where every architecture other than amd64 and i386 is published. Set
|
||||
``site.ubuntu_apt_mirror`` to point at a local mirror instead.
|
||||
|
||||
Crash dumps
|
||||
~~~~~~~~~~~
|
||||
|
||||
@@ -116,6 +157,15 @@ management node needs the riscv64 user-mode emulator registered with
|
||||
systemd-binfmt, as described in
|
||||
:doc:`/advanced/mixed_cluster/building_stateless_images`.
|
||||
|
||||
On Ubuntu, ``genimage`` builds the image with ``debootstrap`` from the
|
||||
``compute.ubuntu24.04.riscv64`` and ``compute.ubuntu26.04.riscv64`` package
|
||||
lists. It bootstraps from ``ports.ubuntu.com``, because ``archive.ubuntu.com``
|
||||
publishes amd64 and i386 only; ``site.ubuntu_apt_mirror`` overrides that for a
|
||||
local mirror serving every architecture. A management node of another
|
||||
architecture needs the same ``qemu-user-static`` binfmt registration as EL, and
|
||||
a release older than the one being built needs the target's ``debootstrap``
|
||||
script, which is a symlink to ``gutsy`` for every modern Ubuntu.
|
||||
|
||||
Management node on riscv64
|
||||
--------------------------
|
||||
|
||||
@@ -142,6 +192,15 @@ that disables weak dependencies (``install_weak_deps=False``) has to install
|
||||
``perl-DB_File`` explicitly to keep the Confluent client working.
|
||||
xCAT does not install anything from CPAN; every dependency is an rpm.
|
||||
|
||||
On Ubuntu the ``xcat`` and ``xcatsn`` packages are built for riscv64 and the
|
||||
apt repository indexes the architecture, so ``apt install xcat`` brings up a
|
||||
riscv64 management node. Everything else xCAT needs comes from the Ubuntu
|
||||
riscv64 archive, except the xcat-dep packages that carry a binary:
|
||||
``goconserver``, ``ipmitool-xcat`` and ``conserver-xcat`` must come from a
|
||||
riscv64 xcat-dep apt repository. The remaining xcat-dep packages, including
|
||||
``grub2-xcat`` and the x86-only boot loaders, are ``Architecture: all`` and
|
||||
install anywhere.
|
||||
|
||||
Limitations
|
||||
-----------
|
||||
|
||||
@@ -151,7 +210,9 @@ Limitations
|
||||
HTTP boot firmware yet, and a node that ``nodeset`` has configured is offered
|
||||
its per-node boot loader over TFTP, as on the other architectures, so keep PXE
|
||||
boot enabled in the firmware.
|
||||
* Ubuntu riscv64 is not supported yet.
|
||||
* Ubuntu 26.04 riscv64 requires the RVA23 profile. A machine that implements
|
||||
only the older profile stops with an illegal instruction early in userspace;
|
||||
24.04 runs on the older profile.
|
||||
* The serial console defaults to ``ttyS<site.defserialport>``; boards whose
|
||||
firmware exposes the console on another device need
|
||||
``linuximage.addkcmdline`` or the serial settings adjusted.
|
||||
|
||||
@@ -62,7 +62,7 @@ noderes Attributes:
|
||||
ppc64le NonVirtualize ALL petitboot
|
||||
ppc64le PowerKVM Guest ALL grub2,grub2-http,grub2-tftp
|
||||
aarch64 >=el8 grub2
|
||||
riscv64 >=el10 grub2,grub2-http,grub2-tftp
|
||||
riscv64 >=el10, >=ubuntu24.04 grub2,grub2-http,grub2-tftp
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ group Attributes:
|
||||
ppc64le NonVirtualize ALL petitboot
|
||||
ppc64le PowerKVM Guest ALL grub2,grub2-http,grub2-tftp
|
||||
aarch64 >=el8 grub2
|
||||
riscv64 >=el10 grub2,grub2-http,grub2-tftp
|
||||
riscv64 >=el10, >=ubuntu24.04 grub2,grub2-http,grub2-tftp
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ node Attributes:
|
||||
ppc64le NonVirtualize ALL petitboot
|
||||
ppc64le PowerKVM Guest ALL grub2,grub2-http,grub2-tftp
|
||||
aarch64 >=el8 grub2
|
||||
riscv64 >=el10 grub2,grub2-http,grub2-tftp
|
||||
riscv64 >=el10, >=ubuntu24.04 grub2,grub2-http,grub2-tftp
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Differentiators
|
||||
|
||||
* Support Multiple Hardware
|
||||
|
||||
IBM Power, IBM Power LE, x86_64, aarch64 (alpha support), riscv64 (EL10, UEFI + grub2)
|
||||
IBM Power, IBM Power LE, x86_64, aarch64 (alpha support), riscv64 (EL10 and Ubuntu, UEFI + grub2)
|
||||
|
||||
* Support Multiple Virtualization Infrastructures
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Operating System & Hardware Support Matrix
|
||||
|SLES | yes | yes | yes | yes | yes | yes | yes | no | no |
|
||||
| | | | | | | | | | |
|
||||
+-------+-------+-------+-----+-------+--------+--------+--------+----------+----------+
|
||||
|Ubuntu | no | yes | no | yes | yes | yes | yes | no | no |
|
||||
|Ubuntu | no | yes | no | yes | yes | yes | yes | no | yes |
|
||||
| | | | | | | | | | |
|
||||
+-------+-------+-------+-----+-------+--------+--------+--------+----------+----------+
|
||||
|CentOS | no | no | no | no | yes | yes | yes | no | no |
|
||||
@@ -21,4 +21,4 @@ Operating System & Hardware Support Matrix
|
||||
| | | | | | | | | | |
|
||||
+-------+-------+-------+-----+-------+--------+--------+--------+----------+----------+
|
||||
|
||||
riscv64 support covers EL10 compute nodes (Rocky Linux 10 and the RHEL 10 RISC-V developer preview) that boot through UEFI firmware and grub2. See :doc:`/guides/admin-guides/manage_clusters/riscv64/index` for details.
|
||||
riscv64 support covers EL10 (Rocky Linux 10 and the RHEL 10 RISC-V developer preview) and Ubuntu 24.04 and 26.04, on nodes that boot through UEFI firmware and grub2. Both stateful and stateless nodes are supported, and the management node itself can run on riscv64. See :doc:`/guides/admin-guides/manage_clusters/riscv64/index` for details.
|
||||
|
||||
Reference in New Issue
Block a user