summaryrefslogtreecommitdiff
path: root/system/openrc/hwdrivers.initd
diff options
context:
space:
mode:
Diffstat (limited to 'system/openrc/hwdrivers.initd')
-rw-r--r--system/openrc/hwdrivers.initd32
1 files changed, 32 insertions, 0 deletions
diff --git a/system/openrc/hwdrivers.initd b/system/openrc/hwdrivers.initd
new file mode 100644
index 000000000..80184c971
--- /dev/null
+++ b/system/openrc/hwdrivers.initd
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+
+depend() {
+ need sysfs dev
+ before checkfs fsck
+ after modloop
+ keyword -vserver -lxc
+}
+
+# Load hardware drivers
+start() {
+ # check for boot option "nocoldplug"
+ if get_bootparam noautodetect; then
+ ewarn "Autodetection of hardware disabled from boot cmdline"
+ return 0
+ fi
+
+ ebegin "Loading hardware drivers"
+ find /sys -name modalias -type f -print0 | xargs -0 sort -u \
+ | xargs modprobe -b -a 2> /dev/null
+ # we run it twice so we detect all devices
+ find /sys -name modalias -type f -print0 | xargs -0 sort -u \
+ | xargs modprobe -b -a 2> /dev/null
+
+ # check if framebuffer drivers got pulled in
+ if [ -e /dev/fb0 ] && ! [ -e /sys/module/fbcon ]; then
+ modprobe -b -q fbcon
+ fi
+
+ eend 0
+}
+