Ohai,
when trying to build an initrd, I get the following output:
root@nana:~# dracut -q /tmp/sdfsdf 5.10.0-2-amd64
dracut-install: No SOURCE argument given
Usage: dracut-install -D DESTROOTDIR [-r SYSROOTDIR] [OPTION]... -a SOURCE...
or: dracut-install -D DESTROOTDIR [-r SYSROOTDIR] [OPTION]... SOURCE DEST
or: dracut-install -D DESTROOTDIR [-r SYSROOTDIR] [OPTION]... -m KERNELMODULE [KERNELMODULE …]
Install SOURCE (from rootfs or SYSROOTDIR) to DEST in DESTROOTDIR with all needed dependencies.
KERNELMODULE can have the format:
<absolute path> with a leading /
=<kernel subdir>[/<kernel subdir>…] like '=drivers/hid'
<module name>
-D --destrootdir Install all files to DESTROOTDIR as the root
-r --sysrootdir Install all files from SYSROOTDIR
-a --all Install all SOURCE arguments to DESTROOTDIR
-o --optional If SOURCE does not exist, do not fail
-d --dir SOURCE is a directory
-l --ldd Also install shebang executables and libraries
-L --logdir <DIR> Log files, which were installed from the host to <DIR>
-R --resolvelazy Only install shebang executables and libraries
for all SOURCE files
-H --hostonly Mark all SOURCE files as hostonly
-f --fips Also install all '.SOURCE.hmac' files
useful information… This happens after the following line: dracut: *** Including module: drm *** So I guess it's the drm module, but I don't know why. I do have "hostonly=yes" in /etc/dracut.conf.d/10-debian.conf, which seems to be relevant for the module?
I cannot confirm this problem. It works without problems on a bullseye VM. Maybe you can strace the dracut call and see which parameters are given to the dracut-install call.
Hey Thomas,
The install call that fails is:
/usr/lib/dracut/dracut-install -D /var/tmp/dracut.OUZAAd/initramfs --kerneldir /lib/modules/5.10.0-2-amd64/ -m --silent -s 'drm_crtc_init|drm_dev_register|drm_encoder_init' -S iw_handler_get_spy
Looking at the lines before that, it seems it looks at
/sys/bus/platform/devices/dock.0/modalias, but that file is empty, so I
guess that's why it's not passing a source to d-install?
The other failures happen after looking at
/sys/bus/platform/devices/dock.1/modalias and
/sys/bus/platform/devices/dock.2/modalias, which are also both empty.
Looking at the code in /usr/lib/dracut/modules.d/50drm/module-setup.sh:
# if the hardware is present, include module even if it is not currently loaded,
# as we could e.g. be in the installer; nokmsboot boot parameter will disable
# loading of the driver if needed
if [[ $hostonly ]]; then
for i in /sys/bus/{pci/devices,platform/devices,virtio/devices,soc/devices/soc?}/*/modalias; do
[[ -e $i ]] || continue
if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register|drm_encoder_init" -S "iw_handler_get_spy" $(<"$i"); then
if strstr "$(modinfo -F filename $(<"$i") 2>/dev/null)" radeon.ko; then
hostonly='' instmods amdkfd
fi
fi
done
else
dracut_instmods -o -s "drm_crtc_init|drm_dev_register|drm_encoder_init" "=drivers/gpu/drm" "=drivers/staging"
fi
I have `hostonly` set, and it passes $(<"$i") to dracut_instmods, which is empty in
the dock.X case.
FWIW, the hardware is a Thinkpad X201s, which has a dock port, but is
not docked right now.
HTH
Evgeni
https://github.com/dracutdevs/dracut/pull/1096 This should fix it.
Package: dracut Version: 056-3 This is fixed in the new version.