Public bug reported:

The dracut (s390x-specific) modules 68cms, 74zfcp and 74znet are present
in the upstream source, but do not end up in any binary package.

As a result rd.znet and rd.zfcp have no effect on s390x, and no z/VM CMS
configuration file can be read.

The three modules are listed in debian/dracut-network.install.s390x, which is a 
copy of debian/dracut-network.install:
   usr/lib/dracut/modules.d/68cms
   usr/lib/dracut/modules.d/74zfcp
   usr/lib/dracut/modules.d/74znet

However, dracut-network is "Architecture: all". dh_install selects
debian/<package>.install.<arch> based on the build architecture, and an
architecture-independent binary is built only once, on a single
architecture. The .install.s390x file is therefore never selected, and
the three modules are dropped on every architecture, s390x included.

By contrast dracut-core is "Architecture: any", so its debian/dracut-
core.install.s390x is used on the s390x build and the modules listed
there, 74dasd and 74dasd_mod, are shipped correctly.

That smells like the dracut-network variant was copied from the dracut-
core one without noticing the different Architecture field.

# check:
$ dpkg-deb -c dracut-network_112-7_all.deb | grep -cE 'znet|zfcp|68cms'
0

There is no architecture-specific build of 'dracut-network'.
For comparison, the dracut-core modules do arrive:
$ dpkg-deb -c dracut-core_112-7_s390x.deb | grep -oE '74dasd[a-z_]*'
74dasd
74dasd_mod

Upstream carries all of them: dracut-ng tag 112 contains 68cms, 74dasd,
74dasd_mod, 74zfcp and 74znet under modules.d/.

# impact:
On s390x with a dracut-generated initramfs:

- rd.znet= has no effect, so channel-attached network devices, including 
QETH/OSA and HiperSockets, cannot be configured from the kernel cmd-line. On a 
system whose only network path needs a non-default relative port or layer, the 
device cannot be brought up at all.
- rd.zfcp= has no effect, so an FCP LUN needed early cannot be activated from 
the kernel command line.
- 68cms is absent, so a z/VM CMS configuration file cannot be read.

This grows in importance as the Ubuntu installer moves to dracut, and it
currently blocks the use of the established cross-distribution mechanism
for early IBM Z device configuration (see LP: #2170669)

# fix
List the three modules in the architecture-independent 
d/dracut-network.install, and drop d/dracut-network.install.s390x entirely.

Shipping them on all architectures is harmless, because each one gates on the 
architecture in its own check().
For example modules.d/74znet/module-setup.sh:
       check() {
           [ "$DRACUT_ARCH" = "s390" ] || [ "$DRACUT_ARCH" = "s390x" ] || 
return 1
           require_binaries grep sed seq readlink chzdev || return 1
           return 0
       }

For 68cms and 74zfcp things are similar, as is 74dasd in dracut-core.
So dracut will therefore never include any of them in a non-s390 initramfs, and 
the only cost elsewhere is a few kilobytes of shell script on disk.

# alternatives:

- Making dracut-network "Architecture: any" would work, but multiplies
the binary across every architecture for three small shell modules.

- Moving the modules into debian/dracut-core.install.s390x would work,
since that package is Architecture: any, but places network modules in
the core package.

And this btw. would also affect Debian, since we sync from Debian (with
no Ubuntu delta) - so in prep. that should probably also be forwarded to
Debian.

# verification:

dpkg-deb -c dracut-network_<fixed-version>_all.deb | grep -E
'modules.d/(68cms|74zfcp|74znet)'

On an s390x system, rd.znet= with non-default values actually takes effect.
However, testing with portno=0 or layer2=1 proves nothing, since those are 
already the defaults.

debdiff against 112-7 is attached

** Affects: ubuntu-z-systems
     Importance: Undecided
         Status: New

** Affects: dracut (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: s390x

** Also affects: ubuntu-z-systems
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2171808

Title:
  s390x dracut modules 68cms, 74zfcp and 74znet are not shipped

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2171808/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to