[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: