summaryrefslogtreecommitdiffstats
path: root/modules.d/98pollcdrom
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/98pollcdrom')
-rwxr-xr-xmodules.d/98pollcdrom/module-setup.sh16
-rwxr-xr-xmodules.d/98pollcdrom/pollcdrom.sh21
2 files changed, 37 insertions, 0 deletions
diff --git a/modules.d/98pollcdrom/module-setup.sh b/modules.d/98pollcdrom/module-setup.sh
new file mode 100755
index 0000000..9684181
--- /dev/null
+++ b/modules.d/98pollcdrom/module-setup.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ return 255
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_hook initqueue/settled 99 "$moddir/pollcdrom.sh"
+}
diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
new file mode 100755
index 0000000..85305a7
--- /dev/null
+++ b/modules.d/98pollcdrom/pollcdrom.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# Licensed under the GPLv2
+#
+# Copyright 2008-2012, Red Hat, Inc.
+# Harald Hoyer <harald@redhat.com>
+
+if [ ! -e /sys/module/block/parameters/events_dfl_poll_msecs ]; then
+ # if the kernel does not support autopolling
+ # then we have to do a
+ # dirty hack for some cdrom drives,
+ # which report no medium for quiet
+ # some time.
+ for cdrom in /sys/block/sr*; do
+ [ -e "$cdrom" ] || continue
+ # skip, if cdrom medium was already found
+ strstr "$(udevadm info --query=property --path="${cdrom##/sys}")" \
+ ID_CDROM_MEDIA && continue
+ echo change > "$cdrom/uevent"
+ done
+fi