Bug#852361: jessie-pu: package initramfs-tools/0.120+deb8u3
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@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 <ben@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)
Reply to: