diff options
Diffstat (limited to 'source/installer/sources/initrd/etc/rc.d/rc.ieee1394')
-rwxr-xr-x | source/installer/sources/initrd/etc/rc.d/rc.ieee1394 | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/source/installer/sources/initrd/etc/rc.d/rc.ieee1394 b/source/installer/sources/initrd/etc/rc.d/rc.ieee1394 new file mode 100755 index 000000000..2701229dc --- /dev/null +++ b/source/installer/sources/initrd/etc/rc.d/rc.ieee1394 @@ -0,0 +1,48 @@ +#!/bin/sh +# rc.ieee1394: search for IEEE1394 (firewire) devices needed for installation. + +# This is a function to unload the IEEE1394 (firewire) modules: +ieee1394_stop() { + modprobe -r sbp2 ohci1394 + modprobe -r ieee1394 +} + +# This is a function to attempt to enable a IEEE1394 storage device. +# If this causes problems for you, use "noieee1394" as a kernel +# command line option at boot time. +ieee1394_start() { + # If noieee1394 was given at boot, skip. + if ! cat /proc/cmdline | grep noieee1394 1> /dev/null 2> /dev/null ; then + # If there aren't even any modules for this kernel, skip. + if [ -d /lib/modules/`uname -r` ]; then + # If ieee1394 is already loaded, skip. + if ! grep ieee1394 /proc/modules 1> /dev/null 2> /dev/null ; then + echo "Probing for IEEE1394 (Firewire) controllers." + echo "(to skip, give a 'noieee1394' kernel option at boot)" + #sleep 5 + modprobe -q ieee1394 >/dev/null 2>&1 + # Try to load hub module: + modprobe -q ohci1394 >/dev/null 2>&1 + # Attempt to load storage support. + modprobe -q sbp2 >/dev/null 2>&1 + fi + fi + fi +} + +case "$1" in +'start') + ieee1394_start + ;; +'stop') + ieee1394_stop + ;; +'restart') + ieee1394_stop + sleep 5 + ieee1394_start + ;; +*) + echo "usage $0 start|stop|restart" +esac + |