diff --git a/scripts/udevd b/scripts/udevd
index 0e6ef3f..9b336c5 100644
--- a/scripts/udevd
+++ b/scripts/udevd
@@ -227,12 +227,21 @@ detach_filesystem()
 	attach_pts_filesystem
 }
 
+usb_coldplug()
+{
+	# Another round of USB coldplugging to kick devices into operation
+	# which lacked drivers before.
+	for dev in /sys/bus/usb/devices/*/uevent; do
+		[ -e "$dev" ] && echo -n add > "$dev"
+	done
+}
+
 start()
 {
 	# don't use udev if sysfs is not mounted.
 	[ ! -d $sysfs_dir/block ] && exit 1
 
-	prepare_filesystem
+	prepare_filesystem && usb_coldplug
 	RETVAL=$?
 	return $RETVAL
 }