Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
I'd like to update initramfs-tools in stable, to address: - Boot failure due to missing drivers on some (mostly ARM-based) systems (#762634, #825687). This doesn't just appear immediately after installation but may also appear as a regression when upgrading the kernel to a new upstream version, due to added cross-device dependencies. - Boot failure to missing keyboard driver for a less common keyboard interface (#639876). This makes cryptsetup and the initramfs panic shell unusable. The fix for this resulted in a new warning message (similar to #792910) so I want to include the fix for that as well. - Missing fsck of root and /usr if initramfs-tools was installed in a chroot without /proc mounted (#845581). This affects all images built with vmdebootstrap until something triggers an initramfs rebuild. These are all fixed in testing already. The diff below is for a snapshot of the git branch; the real version number would be as above. Ben. diff --git a/debian/changelog b/debian/changelog index 40a12ebb20df..2570da6800f8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +initramfs-tools (0.120+deb8u3~1.gbp94d23b) UNRELEASED; urgency=medium + + ** SNAPSHOT build @94d23b8dde719b656940217911dc24d95e9df200 ** + + * [6661d01] hook-functions: Include drivers for all keyboards when + MODULES=dep (Closes: #639876) + * [6afc19f] auto_add_modules: Include most USB host drivers (Closes: #762634) + * [eb35e9a] auto_add_modules: Include all bus driver modules + * [c9636d5] Remove code that prunes 'broken' symlinks and sometimes /etc/mtab + (Closes: #845581) + * [50b90a9] auto_add_modules: Add all I2C bus and mux drivers when + MODULES=most (Closes: #825687) + * [94d23b8] hook-functions: Stop force-loading drivers found through sysfs + when MODULES=dep (Closes: #792910) + + -- Ben Hutchings <b...@decadent.org.uk> Mon, 23 Jan 2017 19:11:19 +0000 + initramfs-tools (0.120+deb8u2) jessie; urgency=medium * [7863219] hook-functions: Include drivers/nvme in block driver modules diff --git a/hook-functions b/hook-functions index 18e1c4902451..53753ba22ccf 100644 --- a/hook-functions +++ b/hook-functions @@ -206,7 +206,7 @@ sys_walk_mod_add() if [ -e "$driver_path" ]; then module="$(basename $(readlink -f $driver_path))" if [ -n "${module}" ]; then - force_load "${module}" + manual_add_modules "${module}" fi fi device_path="$(dirname ${device_path})" @@ -223,7 +223,7 @@ sys_walk_modalias() if [ -e "${device_path}/modalias" ]; then modalias=$(cat "${device_path}/modalias") if [ -n "${modalias}" ]; then - force_load "${modalias}" + manual_add_modules "${modalias}" fi fi device_path="$(dirname ${device_path})" @@ -472,6 +472,17 @@ dep_add_modules_mount() add_loaded_modules 'phy[-_]*' add_loaded_modules 'pinctrl[-_]*' + # Sys walk keyboards. We identify keyboards as input devices + # that can generate at least key events 1-31; udev has the + # same heuristic. Note that the format of the bitmap + # properties depends on the word size of the process reading + # the uevent file! + for device in /sys/class/input/input*; do + if grep -qs "^KEY=.*fffffff[ef]$" "${device}/uevent"; then + sys_walk_mod_add "$(readlink -f "$device")" + fi + done + # catch old-style IDE if [ -e /sys/bus/ide/devices/ ]; then sys_walk_modalias ${dev_sys_path} @@ -525,14 +536,26 @@ auto_add_modules() for arg in "$@" ; do case "$arg" in base) - modules="$modules ehci-pci ehci-orion ehci-hcd ohci-hcd ohci-pci uhci-hcd usbhid" - modules="$modules xhci xhci-pci xhci-hcd" modules="$modules btrfs ext2 ext3 ext4 ext4dev " modules="$modules isofs jfs reiserfs udf xfs" modules="$modules nfs nfsv2 nfsv3 nfsv4" modules="$modules af_packet atkbd i8042 psmouse" modules="$modules virtio_pci virtio_mmio" + # Include most USB host and dual-role drivers + copy_modules_dir kernel/drivers/usb/host \ + hwa-hc.ko sl811_cs.ko sl811-hcd.ko \ + u132-hcd.ko whci-hcd.ko + copy_modules_dir kernel/drivers/usb/c67x00 + copy_modules_dir kernel/drivers/usb/chipidea + copy_modules_dir kernel/drivers/usb/dwc2 + copy_modules_dir kernel/drivers/usb/dwc3 + copy_modules_dir kernel/drivers/usb/isp1760 + copy_modules_dir kernel/drivers/usb/musb + copy_modules_dir kernel/drivers/usb/renesas_usbhs + # and any extcon drivers for USB + modules="$modules extcon-usb-gpio" + # Include all HID drivers unless we're sure they # don't support keyboards. hid-*ff covers various # game controllers with force feedback. @@ -551,8 +574,11 @@ auto_add_modules() hid-wiimote.ko hid-zydacron.ko # Any of these might be needed by other drivers + copy_modules_dir kernel/drivers/bus copy_modules_dir kernel/drivers/clk copy_modules_dir kernel/drivers/gpio + copy_modules_dir kernel/drivers/i2c/busses + copy_modules_dir kernel/drivers/i2c/muxes copy_modules_dir kernel/drivers/phy copy_modules_dir kernel/drivers/pinctrl copy_modules_dir kernel/drivers/regulator diff --git a/mkinitramfs b/mkinitramfs index b64c7fb820f9..8b7e52639380 100755 --- a/mkinitramfs +++ b/mkinitramfs @@ -315,11 +315,6 @@ if [ ! -e "${DESTDIR}/bin/sh" ]; then copy_exec /bin/sh "${DESTDIR}/bin/" fi -# Remove any looping or broken symbolic links, since they break cpio. -[ "${verbose}" = y ] && xargs_verbose="-t" -(cd "${DESTDIR}" && find . -type l -printf '%p %Y\n' | sed -n 's/ [LN]$//p' \ - | xargs ${xargs_verbose:-} -rL1 rm -f) - # dirty hack for armhf's double-linker situation; if we have one of # the two known eglibc linkers, nuke both and re-create sanity if [ "$DPKG_ARCH" = armhf ]; then -- System Information: Debian Release: stretch/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)