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

Bug#973733: RTW88_8821ce module fails to find firmware during install and must be reloaded



Attached is a better patch which:
  1) Logs modprobe error messages
  2) Only reloads modules that do not have a network

Thank you!
Daniel Lewart
Urbana, Illinois
--- check-missing-firmware.sh.orig	2021-05-30 15:47:29.000000000 -0500
+++ check-missing-firmware.sh	2021-06-26 00:00:00.000000000 -0500
@@ -103,7 +103,7 @@
 
 	# Give modules some time to request firmware.
 	sleep 1
-	
+
 	modules=""
 	files=""
 
@@ -138,7 +138,7 @@
 			# decode firmware filename as encoded by
 			# udev firmware.agent
 			fwfile="$(basename $file | sed -e 's#\\x2f#/#g')"
-			
+
 			# strip probably nonexistant firmware subdirectory
 			devpath="$(readlink $file | sed 's/\/firmware\/.*//')"
 			# the symlink is supposed to point to the device in /sys
@@ -157,7 +157,7 @@
 			if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
 				continue
 			fi
-			
+
 			files="$fwfile${files:+ $files}"
 
 			if [ "$module" = usbcore ]; then
@@ -334,8 +334,24 @@
 	for module in $(echo $modules | tr " " "\n" | sort -u); do
 		if ! nic_is_configured $module; then
 			log "removing and loading kernel module $module"
-			modprobe -r $module || true
-			modprobe $module || true
+			message=$(modprobe -r $module 2>&1 || true)
+			[ -n "$message" ] && log "$message"
+			message=$(modprobe $module 2>&1 || true)
+			[ -n "$message" ] && log "$message"
+
+			# Module name can be different than driver name
+			# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973733
+			driver=$module
+			if modpath=$(readlink /sys/bus/*/drivers/"$driver"/module); then
+				module2=$(basename $modpath)
+				if [ $module2 != "$driver" ]; then
+					log "removing and loading kernel module $module2 for driver '$driver'"
+					message=$(modprobe -r $module2 2>&1 || true)
+					[ -n "$message" ] && log "$message"
+					message=$(modprobe $module2 2>&1 || true)
+					[ -n "$message" ] && log "$message"
+				fi
+			fi
 		fi
 	done
 done

Reply to: