#!/bin/sh # # Copyright IBM Corp. 2016, 2017 # # s390-tools is free software; you can redistribute it and/or modify # it under the terms of the MIT license. See LICENSE for details. # # hooks/s390-tools-zdev # This hook script adds files required to apply firmware-provided I/O # configuration data during boot. # # Needs to run after udev or resulting udev rules could be overwritten PREREQ="udev" prereqs() { echo "$PREREQ" } case $1 in prereqs) prereqs exit 0 ;; esac . /usr/share/initramfs-tools/hook-functions # Add modules for all device types supported by chzdev (required for # auto-configuration) zdev_modules="lcs qeth qeth_l2 qeth_l3 dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod zfcp" for x in $zdev_modules ; do manual_add_modules ${x} done copy_exec /sbin/chzdev copy_exec /sbin/lszdev copy_exec /sbin/vmcp _tempfile=$(mktemp --tmpdir initramfs-zdev.XXXXXX) # Obtain early + root device configuration chzdev --export "$_tempfile" --persistent --by-path / \ --by-attrib "zdev:early=1" --quiet --type 2>/dev/null # Apply via --import to prevent other devices from being configured. # Rename the resulting cio-ignore rule to ensure that it does not override # the one copied by the initramfs udev hook to /lib/udev. chzdev --import "$_tempfile" --persistent \ --base "/etc/udev/rules.d/41-cio-ignore.rules=$DESTDIR/etc/udev/rules.d/41-cio-ignore-root.rules" \ --base "/etc=$DESTDIR/etc" --yes --quiet --no-root-update --force \ >/dev/null rm -f "$_tempfile"