--- /usr/lib/dracut/modules.d/95nvmf/module-setup.sh 2022-03-16 13:20:17.569960689 +0100 +++ module-setup.sh 2022-03-16 13:18:00.200537657 +0100 @@ -30,6 +30,9 @@ for_each_host_dev_and_slaves is_nvmf local _is_nvmf=$? popd > /dev/null || exit + if [ -f /sys/firmware/acpi/tables/NBFT ]; then + return 0 + fi [[ $_is_nvmf == 0 ]] || return 255 if [ ! -f /sys/class/fc/fc_udev_device/nvme_discovery ]; then if [ ! -f /etc/nvme/discovery.conf ]; then @@ -82,13 +85,18 @@ done } - if [ -f /etc/nvme/hostnqn ]; then - _hostnqn=$(cat /etc/nvme/hostnqn) - echo -n " nvmf.hostnqn=${_hostnqn}" - fi - if [ -f /etc/nvme/hostid ]; then - _hostid=$(cat /etc/nvme/hostid) - echo -n " nvmf.hostid=${_hostid}" + if [ -f /sys/firmware/acpi/tables/NBFT ]; then + echo -n " ip=dhcp" + echo -n " rd.neednet=1" + else + if [ -f /etc/nvme/hostnqn ]; then + _hostnqn=$(cat /etc/nvme/hostnqn) + echo -n " nvmf.hostnqn=${_hostnqn}" + fi + if [ -f /etc/nvme/hostid ]; then + _hostid=$(cat /etc/nvme/hostid) + echo -n " nvmf.hostid=${_hostid}" + fi fi [[ $hostonly ]] || [[ $mount_needs ]] && { @@ -111,6 +119,13 @@ inst_multiple ip sed inst_script "${moddir}/nvmf-autoconnect.sh" /sbin/nvmf-autoconnect.sh + inst_script /usr/bin/parse_nbft.sh /usr/bin/parse_nbft.sh + inst_binary /usr/bin/nbft2json /usr/bin/nbft2json + inst_binary /usr/bin/jq /usr/bin/jq + inst_binary /usr/bin/seq /usr/bin/seq + inst_libdir_file 'libonig.so.5*' + inst_libdir_file 'libjson-c.so.5*' + inst_libdir_file 'libjson-glib-1.0.so.0*' inst_multiple nvme inst_hook cmdline 99 "$moddir/parse-nvmf-boot-connections.sh"