[FFE] Enhancing 'autoinstall-user-data' with s390x specific device enablement
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Committed
|
Wishlist
|
Canonical Foundations Team | |||
subiquity |
Fix Committed
|
Undecided
|
Olivier Gayot | |||
subiquity (Ubuntu) | Status tracked in Plucky | |||||
Plucky |
Fix Committed
|
Undecided
|
Olivier Gayot |
Bug Description
Request
-------
We want Subiquity to have built-in support for enabling (or disabling) s390-specifc devices, when running an automated install.
We are past FF for plucky, so I would like to request an exception.
Why Needed
----------
On s390x, CCW devices need to be enabled (using chzdev from s390-tools) before they can be used. For manual installations of Ubuntu Server, we already have a TUI screen allowing people to enable or disable specific devices. However, we didn't have support for doing such actions in automated installs. Although it is true that early-commands can be used as an alternative, proper autoinstall support provides a cleaner approach, and makes it possible to use the generated autoinstall-
This feature is a request from the partner engineering team.
What changed
------------
* Subiquity can now read from a "zdevs" autoinstall section, allowing users to specify which devices should be enabled or disabled.
* On startup, devices that have been declared as "enabled": true are automatically enabled using a call to chzdev --enable "$device".
* On startup, devices that have been declared as "enabled": false are automatically disabled using a call to chzdev --disable "$device".
Code to be merged
-----------------
https:/
Original description
-------
On s390x systems (IBM Z and LinuxONE) the s390x specific devices (or better ccw-devices) need to be enabled prior to their usage.
(This does _not_ apply to PCIe devices that the platform supports as well.)
Today this aspect of the special ccw-device enablement is not addressed in the 'autoinstall-
At the end of an interactive installation on a s390x system (or actually already right after the 'zDev' activation screen of subiquity) all s390x specific devices are known and can be obtained by:
$ lszdev --online
TYPE ID ON PERS NAMES
zfcp-host 0.0.e000 yes yes
zfcp-host 0.0.e100 yes yes
zfcp-lun 0.0.e000:
zfcp-lun 0.0.e000:
zfcp-lun 0.0.e100:
zfcp-lun 0.0.e100:
qeth 0.0.c000:
But this output can also be nicely filtered to just print the relevant device information like this:
$ lszdev --online --column ID --no-headings
0.0.e000
0.0.e100
0.0.e000:
0.0.e000:
0.0.e100:
0.0.e100:
0.0.c000:
This is already the base for the device activation.
Enriching this information with the command that triggers the enablement ('chzdev --enable'):
$ for i in $(lszdev --online --column ID --no-headings); do echo chzdev -e $i; done
chzdev -e 0.0.e000
chzdev -e 0.0.e100
chzdev -e 0.0.e000:
chzdev -e 0.0.e000:
chzdev -e 0.0.e100:
chzdev -e 0.0.e100:
chzdev -e 0.0.c000:
produces the list of commands that can be _directly_ added to the 'early-commands' section of the 'autoinstall-
Even if some devices get enabled using a different approach (for example using the boot kernels parm file or using the auto-conf option of a DPM machine), this doesn't hurt since it will be noticed and tolerated by the chzdev command:
$ for i in $(lszdev --online --column ID --no-headings); do chzdev -e $i; done
FCP device 0.0.e000 already configured
FCP device 0.0.e100 already configured
zFCP LUN 0.0.e000:
zFCP LUN 0.0.e000:
zFCP LUN 0.0.e100:
zFCP LUN 0.0.e100:
QETH device 0.0.c000:
$ echo $?
0
Changed in ubuntu-z-systems: | |
importance: | Undecided → Wishlist |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
tags: | added: zdev |
tags: |
added: installation removed: installer |
Changed in ubuntu-z-systems: | |
status: | New → In Progress |
description: | updated |
summary: |
- Enhancing 'autoinstall-user-data' with s390x specific device enablement + [FFE] Enhancing 'autoinstall-user-data' with s390x specific device + enablement |
description: | updated |
Changed in subiquity: | |
status: | In Progress → Fix Committed |
Changed in subiquity (Ubuntu Plucky): | |
status: | Triaged → Fix Committed |
milestone: | none → ubuntu-25.04 |
assignee: | nobody → Olivier Gayot (ogayot) |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
I think work on that has already started: /github. com/canonical/ subiquity/ pull/800
https:/