summaryrefslogtreecommitdiff
path: root/packages/linux-hotplug
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/linux-hotplug
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/linux-hotplug')
-rw-r--r--packages/linux-hotplug/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/files/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/files/collie/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/files/collie/usbd1
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/files/mmc.agent0
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/files/sleeve.agent120
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/files/sleeve.rc60
-rw-r--r--packages/linux-hotplug/files/soc.agent62
-rw-r--r--packages/linux-hotplug/files/sysconfig-hotplug12
-rw-r--r--packages/linux-hotplug/files/tosa/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/files/tosa/sysconfig-usb2
-rw-r--r--packages/linux-hotplug/files/usbd2
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/files/usbd.agent63
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040329/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040329/busybox.patch13
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040329/fix-net.agent29
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040329/logcheck-ignore1
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/linux-hotplug-20040329/update-usb.usermap37
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/.mtn2git_empty0
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/fix-net.agent29
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/hotplug-net-agent-usb.patch43
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/isapnp-exit.diff11
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/logcheck-ignore1
-rwxr-xr-x[-rw-r--r--]packages/linux-hotplug/linux-hotplug-20040920/update-usb.usermap37
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/usb-storage2
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/usbrc-busybox.patch13
-rw-r--r--packages/linux-hotplug/linux-hotplug-20040920/userspecified_hcd.patch55
27 files changed, 593 insertions, 0 deletions
diff --git a/packages/linux-hotplug/.mtn2git_empty b/packages/linux-hotplug/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/.mtn2git_empty
diff --git a/packages/linux-hotplug/files/.mtn2git_empty b/packages/linux-hotplug/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/files/.mtn2git_empty
diff --git a/packages/linux-hotplug/files/collie/.mtn2git_empty b/packages/linux-hotplug/files/collie/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/files/collie/.mtn2git_empty
diff --git a/packages/linux-hotplug/files/collie/usbd b/packages/linux-hotplug/files/collie/usbd
index e69de29bb2..38aff0adcb 100644
--- a/packages/linux-hotplug/files/collie/usbd
+++ b/packages/linux-hotplug/files/collie/usbd
@@ -0,0 +1 @@
+usbdmodule="sa1100_bi"
diff --git a/packages/linux-hotplug/files/mmc.agent b/packages/linux-hotplug/files/mmc.agent
index 3b2050d7eb..3b2050d7eb 100644..100755
--- a/packages/linux-hotplug/files/mmc.agent
+++ b/packages/linux-hotplug/files/mmc.agent
diff --git a/packages/linux-hotplug/files/sleeve.agent b/packages/linux-hotplug/files/sleeve.agent
index e69de29bb2..55befca1b1 100644..100755
--- a/packages/linux-hotplug/files/sleeve.agent
+++ b/packages/linux-hotplug/files/sleeve.agent
@@ -0,0 +1,120 @@
+#!/bin/sh
+#
+# H3600 Sleeve hotplug policy agent for Linux 2.4 kernels
+#
+# Kernel NET hotplug params include:
+#
+# ACTION=%s [add or remove]
+# VENDOR_ID=%s
+# DEVICE_ID=%x
+# DEVICE_NAME=%s
+#
+
+. /etc/hotplug/hotplug.functions
+#DEBUG=yes export DEBUG
+
+if [ "$DEBUG" != "" ]; then
+ mesg "Executing $0 action=$ACTION, device=$DEVICE_NAME ($VENDOR_ID,$DEVICE_ID)"
+fi
+
+COMPACTFLASH_TIMING_INCREMENT=0
+PCMCIA_TIMING_INCREMENT=0
+DUAL_PCMCIA_TIMING_INCREMENT=0
+NAVMAN_TIMING_INCREMENT=0
+BACKPAQ_TIMING_INCREMENT=-100
+
+if [ -f /etc/sysconfig/hotplug ] ; then
+ . /etc/sysconfig/hotplug
+fi
+
+case $ACTION in
+add)
+ case $DEVICE_NAME in
+ "Compaq Mercury Backpaq")
+ mkdir -p /backpaq
+ echo $BACKPAQ_TIMING_INCREMENT > /proc/sys/backpaq/pcmcia/timing_increment_ns
+ ## mount -t jffs2 /dev/mtdblock/4 /backpaq
+ modprobe h3600_backpaq_fpga || mesg 'could not load backpaq fpga driver'
+ modprobe h3600_backpaq_camera || mesg 'could not load backpaq camera driver'
+ if [ -c /dev/v4l/video0 ] ; then
+ ln -s /dev/v4l/video0 /dev/video0
+ ln -s /dev/v4l/video0 /dev/video
+ fi
+ CAMERATYPE=`/bin/grep "CameraType" /proc/backpaq/camera | /bin/sed -e 's/.*: //'`
+ BACKPAQ_NUMBER=`/bin/grep "Major revision" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
+ FPGA_NUMBER=`/bin/grep "FPGA version" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
+ CAMERA_NUMBER=`/bin/grep "Camera" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
+
+ echo "CAMERA_TYPE = $CAMERATYPE"
+ echo "BACKPAQ_NUMBER = $BACKPAQ_NUMBER"
+ echo "FPGA_NUMBER = $FPGA_NUMBER"
+ echo "CAMERA_NUMBER = $CAMERA_NUMBER"
+ echo "looking for file: /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin"
+ if [ -e /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin ] ; then
+ cat /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin > /dev/backpaq/fpga
+ elif [ -e /etc/fpga_$CAMERATYPE.bin ] ; then
+ cat /etc/fpga_$CAMERATYPE.bin > /dev/backpaq/fpga
+ elif [ -e /etc/fpga.bin ] ; then
+ cat /etc/fpga.bin > /dev/backpaq/fpga
+ else
+ mesg 'unable to program the backpaq fpga'
+ fi
+ modprobe h3600_backpaq_accel || mesg 'could not load backpaq accelerometer driver'
+ mesg 'BackPAQ drivers loaded'
+ ;;
+ "Compaq CompactFlash Sleeve")
+ mesg 'CompactFlash drivers loaded'
+ echo $COMPACTFLASH_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
+ ;;
+ "Compaq PC Card Sleeve")
+ mesg 'PC card sleeve drivers loaded'
+ echo $PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
+ ;;
+ "Compaq Dual PC Card Sleeve")
+ mesg 'Dual PC card sleeve drivers loaded'
+ echo $DUAL_PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
+ ;;
+ "Navman GPS/CF Sleeve")
+ mesg 'Navman GPS sleeve drivers loaded'
+ echo $NAVMAN_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
+ start-stop-daemon --start --exec /usr/sbin/gpsd.bin -- -p /dev/tts/0 -s 57600
+ ;;
+ *)
+ mesg "$1 $ACTION event not handled for $DEVICE_NAME"
+ ;;
+ esac
+ ;;
+
+remove)
+ case $DEVICE_NAME in
+ "Compaq Mercury Backpaq")
+ mesg 'Unloading BackPAQ drivers'
+ ## umount /backpaq
+ rmmod h3600_backpaq_camera
+ rmmod h3600_backpaq_accel
+ rmmod h3600_backpaq_fpga
+ ;;
+ "Compaq CompactFlash Sleeve")
+ mesg 'Unloading CompactFlash sleeve'
+ ;;
+ "Compaq PC Card Sleeve")
+ mesg 'Unloading PC Card sleeve'
+ ;;
+ "Compaq Dual PC Card Sleeve")
+ mesg 'Unloading Dual PC Card sleeve'
+ ;;
+ "Navman GPS/CF Sleeve")
+ mesg 'Unloading Navman GPS sleeve'
+ start-stop-daemon --stop --name gpsd.bin
+ ;;
+ *)
+ mesg $1 $ACTION event not handled for $DEVICE_NAME
+ ;;
+ esac
+ ;;
+
+*)
+ mesg "$1 $ACTION event not supported"
+ exit 1 ;;
+
+esac
diff --git a/packages/linux-hotplug/files/sleeve.rc b/packages/linux-hotplug/files/sleeve.rc
index e69de29bb2..864a2eb182 100644..100755
--- a/packages/linux-hotplug/files/sleeve.rc
+++ b/packages/linux-hotplug/files/sleeve.rc
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# H3600 Sleeve hotplug *.rc agent.
+# This script is called by /etc/init.d/hotplug whenever
+# a run level has changed.
+#
+# A single argument is passed - start, restart, status, or stop
+#
+# We set up parameters that are equivalent to the ones created
+# by the Kernel and pass them along to /sbin/hotplug (the
+# function called by the kernel).
+#
+# Kernel NET hotplug params include:
+#
+# ACTION=%s [add or remove]
+# VENDOR_ID=%s
+# DEVICE_ID=%x
+# DEVICE_NAME=%s
+#
+
+. /etc/hotplug/hotplug.functions
+# DEBUG=yes export DEBUG
+
+SLEEVEFILE="/proc/bus/sleeve/device"
+[ ! -f $SLEEVEFILE ] && exit 0
+
+# give the sleeve driver a kick to make sure it recognizes the card -Jamey 6/26/01
+# echo > /proc/sys/sleeve/insert
+
+export DEVICE_NAME=`/bin/grep driver $SLEEVEFILE | /bin/sed -e 's/.*=//'`
+export DEVICE_ID=`/bin/grep device $SLEEVEFILE | /bin/sed -e 's/.*=//'`
+export VENDOR_ID=`/bin/grep vendor $SLEEVEFILE | /bin/sed -e 's/.*=//'`
+
+case "$1" in
+ start)
+ export ACTION="add"
+ /sbin/hotplug sleeve
+ ;;
+ stop)
+ export ACTION="remove"
+ /sbin/hotplug sleeve
+ ;;
+ restart)
+ export ACTION="remove"
+ /sbin/hotplug sleeve
+ export ACTION="add"
+ /sbin/hotplug sleeve
+ ;;
+ status)
+ if [ -f /var/lock/subsys/hotplug ]; then
+ mesg "Hot plug sleeve has been started, current device $DEVICE_NAME"
+ else
+ mesg "Hot plug sleeve has not been started, current device $DEVICE_NAME"
+ fi
+ ;;
+ *)
+ mesg "Usage: $0 {start|stop|status|restart}"
+ ;;
+esac
+
diff --git a/packages/linux-hotplug/files/soc.agent b/packages/linux-hotplug/files/soc.agent
index e69de29bb2..e91246196f 100644
--- a/packages/linux-hotplug/files/soc.agent
+++ b/packages/linux-hotplug/files/soc.agent
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# SoC hotplug agent for 2.6 kernels
+#
+# ACTION=add
+# SOC_ID=1234
+#
+
+cd /etc/hotplug
+. ./hotplug.functions
+
+MAP_CURRENT=$MODULE_DIR/modules.socmap
+
+#
+# stdin is "modules.socmap" syntax
+# on return, all matching modules were added to $DRIVERS
+#
+soc_map_modules ()
+{
+ while read line
+ do
+ # comments are lines that start with "#" ...
+ # be careful, they still get parsed by bash!
+ case "$line" in
+ \#*) continue ;;
+ esac
+
+ set $line
+
+ module="$1"
+ id="$2"
+
+ if [ "$id" != "0x$SOC_ID" ]; then
+ continue
+ fi
+
+ # It was a match!
+ case " $DRIVERS " in
+ *" $module "* )
+ : already found
+ ;;
+ * )
+ DRIVERS="$module $DRIVERS"
+ ;;
+ esac
+ : drivers $DRIVERS
+ done
+}
+
+case $ACTION in
+
+add)
+
+ load_drivers soc $MAP_CURRENT "$SOC_ID"
+ ;;
+
+*)
+ debug_mesg SoC $ACTION event not supported
+ exit 1
+ ;;
+
+esac
diff --git a/packages/linux-hotplug/files/sysconfig-hotplug b/packages/linux-hotplug/files/sysconfig-hotplug
index e69de29bb2..7ee5a20c31 100644
--- a/packages/linux-hotplug/files/sysconfig-hotplug
+++ b/packages/linux-hotplug/files/sysconfig-hotplug
@@ -0,0 +1,12 @@
+##
+## Each of these may be assigned to the number of nanoseconds by which to
+## increase the timing of pcmcia bus transactions
+##
+# COMPACTFLASH_TIMING_INCREMENT=0
+## the single pcmcia sleeve seems to be a bit slow, but 25ns makes my
+## orinoco card detectable. -Jamey 4/2/2002
+PCMCIA_TIMING_INCREMENT=25
+# DUAL_PCMCIA_TIMING_INCREMENT=0
+
+## mount options used by MMC
+MMC_MOUNT_OPTIONS="-t auto -o sync,noatime"
diff --git a/packages/linux-hotplug/files/tosa/.mtn2git_empty b/packages/linux-hotplug/files/tosa/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/files/tosa/.mtn2git_empty
diff --git a/packages/linux-hotplug/files/tosa/sysconfig-usb b/packages/linux-hotplug/files/tosa/sysconfig-usb
index e69de29bb2..cbd18c6566 100644
--- a/packages/linux-hotplug/files/tosa/sysconfig-usb
+++ b/packages/linux-hotplug/files/tosa/sysconfig-usb
@@ -0,0 +1,2 @@
+## Specify the USB host controller driver
+HCD="usb_ohci_tc6393"
diff --git a/packages/linux-hotplug/files/usbd b/packages/linux-hotplug/files/usbd
index e69de29bb2..aa4e6d2de7 100644
--- a/packages/linux-hotplug/files/usbd
+++ b/packages/linux-hotplug/files/usbd
@@ -0,0 +1,2 @@
+usbdmodule=""
+
diff --git a/packages/linux-hotplug/files/usbd.agent b/packages/linux-hotplug/files/usbd.agent
index e69de29bb2..6613b4810a 100644..100755
--- a/packages/linux-hotplug/files/usbd.agent
+++ b/packages/linux-hotplug/files/usbd.agent
@@ -0,0 +1,63 @@
+#!/bin/ash
+
+# DEBUG=yes export DEBUG
+#set -x
+
+. /etc/hotplug/hotplug.functions
+. /etc/default/usbd
+cd $HOTPLUG_DIR
+
+[ -z "$INTERFACE" ] && exit 1
+[ -z "$ACTION" ] && exit 1
+[ -z "$usbdmodule" ] && exit 0
+
+debug_mesg "USBD $ACTION Action Recived"
+
+case $INTERFACE in
+
+monitor)
+ case $ACTION in
+ # called to load all usb device modules
+ load)
+ modprobe usbdcore
+ modprobe net_fd
+ modprobe $usbdmodule
+ ;;
+
+ # called to handle suspend power management event
+ suspend)
+ rmmod $usbdmodule
+ ;;
+
+ # called to reload after resume power management event
+ restore-loaded)
+ modprobe $usbdmodule
+ sleep 2
+ ;;
+
+ # called to unload after resume power management event
+ restore-unloaded)
+ modprobe -r net_fd
+ ;;
+
+ # called to unload all usb device modules
+ unload)
+ modprobe -r $usbdmodule
+ ;;
+
+ *)
+ debug_mesg USBD $ACTION event not handled
+ exit 1
+ ;;
+ esac
+ ;;
+*)
+ debug_mesg USBD $INTERFACE-$ACTION event not handled
+ exit 1
+ ;;
+esac
+
+[ -e /proc/usb-monitor ] && echo "Done" > /proc/usb-monitor
+
+exit 0
+
diff --git a/packages/linux-hotplug/linux-hotplug-20040329/.mtn2git_empty b/packages/linux-hotplug/linux-hotplug-20040329/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/linux-hotplug-20040329/.mtn2git_empty
diff --git a/packages/linux-hotplug/linux-hotplug-20040329/busybox.patch b/packages/linux-hotplug/linux-hotplug-20040329/busybox.patch
index e69de29bb2..7a90f246a5 100644
--- a/packages/linux-hotplug/linux-hotplug-20040329/busybox.patch
+++ b/packages/linux-hotplug/linux-hotplug-20040329/busybox.patch
@@ -0,0 +1,13 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- hotplug-2004_03_29/etc/hotplug.d/default/default.hotplug~busybox 2004-03-26 23:34:34.000000000 +0100
++++ hotplug-2004_03_29/etc/hotplug.d/default/default.hotplug 2004-06-18 23:33:22.000000000 +0200
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # This version of /sbin/hotplug should works on most GNU/Linux systems
+ # using Linux 2.2.18+ or 2.4.* kernels. On 2.2.*, only USB has such
diff --git a/packages/linux-hotplug/linux-hotplug-20040329/fix-net.agent b/packages/linux-hotplug/linux-hotplug-20040329/fix-net.agent
index e69de29bb2..3bc0935018 100644
--- a/packages/linux-hotplug/linux-hotplug-20040329/fix-net.agent
+++ b/packages/linux-hotplug/linux-hotplug-20040329/fix-net.agent
@@ -0,0 +1,29 @@
+#!/bin/sh -e
+#
+# Since ifupdown of Debian is different than one of RedHat.
+# So we need to fix it
+
+topdir=$1
+dir=$topdir/etc/hotplug
+test -f $dir/net.agent || exit 1
+mv $dir/net.agent $dir/net.agent.orig
+
+sed -e '/^\*)/i\
+unregister)\
+ # Assume that we want to run ifdown no matter what, \
+ # because it is not going to remove the data from the \
+ # ifstate database otherwise.\
+ if [ -x /sbin/ifdown ]; then\
+ debug_mesg invoke ifdown $INTERFACE\
+ exec /sbin/ifdown $INTERFACE\
+ else\
+ # mesg "how do I bring interfaces up on this distro?"\
+ mesg "E: /sbin/ifdown not found. You need to install ifupdown package"\
+ fi\
+ mesg $1 $ACTION event not handled\
+ ;;\
+' $dir/net.agent.orig > $dir/net.agent
+rm -f $dir/net.agent.orig
+chmod 755 $dir/net.agent
+exit 0
+
diff --git a/packages/linux-hotplug/linux-hotplug-20040329/logcheck-ignore b/packages/linux-hotplug/linux-hotplug-20040329/logcheck-ignore
index e69de29bb2..b941353041 100644
--- a/packages/linux-hotplug/linux-hotplug-20040329/logcheck-ignore
+++ b/packages/linux-hotplug/linux-hotplug-20040329/logcheck-ignore
@@ -0,0 +1 @@
+net.agent: invoke if(up|down)
diff --git a/packages/linux-hotplug/linux-hotplug-20040329/update-usb.usermap b/packages/linux-hotplug/linux-hotplug-20040329/update-usb.usermap
index e69de29bb2..d09e1176ec 100644..100755
--- a/packages/linux-hotplug/linux-hotplug-20040329/update-usb.usermap
+++ b/packages/linux-hotplug/linux-hotplug-20040329/update-usb.usermap
@@ -0,0 +1,37 @@
+#!/bin/sh -e
+# update-usb.usermap
+# Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+# GPL
+
+LIBDIR=/usr/lib/hotplug
+USERMAP=/etc/hotplug/usb.usermap
+LOCALMAP=/etc/hotplug/usb.usermap.local
+
+test -d $LIBDIR || exit 0
+
+echo -n "Updating $USERMAP ..."
+
+echo "# usb.usermap file" > $USERMAP
+echo "# This is autogenerated by update-usb.usermap program" >> $USERMAP
+echo "# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info" >> $USERMAP
+
+if [ -f $LOCALMAP ]; then
+ echo "# usb.usermap.local" >> $USERMAP
+ cat $LOCALMAP >> $USERMAP
+fi
+
+cd $LIBDIR
+for package in *
+do
+ if [ -d "$package" ]; then
+ map=$package/usb.usermap
+ echo "# $package" >> $USERMAP
+ if [ -x "$map" ]; then
+ ./$map >> $USERMAP
+ elif [ -f "$map" ]; then
+ cat $map >> $USERMAP
+ fi
+ fi
+done
+
+echo done.
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/.mtn2git_empty b/packages/linux-hotplug/linux-hotplug-20040920/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux-hotplug/linux-hotplug-20040920/.mtn2git_empty
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/fix-net.agent b/packages/linux-hotplug/linux-hotplug-20040920/fix-net.agent
index e69de29bb2..3bc0935018 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/fix-net.agent
+++ b/packages/linux-hotplug/linux-hotplug-20040920/fix-net.agent
@@ -0,0 +1,29 @@
+#!/bin/sh -e
+#
+# Since ifupdown of Debian is different than one of RedHat.
+# So we need to fix it
+
+topdir=$1
+dir=$topdir/etc/hotplug
+test -f $dir/net.agent || exit 1
+mv $dir/net.agent $dir/net.agent.orig
+
+sed -e '/^\*)/i\
+unregister)\
+ # Assume that we want to run ifdown no matter what, \
+ # because it is not going to remove the data from the \
+ # ifstate database otherwise.\
+ if [ -x /sbin/ifdown ]; then\
+ debug_mesg invoke ifdown $INTERFACE\
+ exec /sbin/ifdown $INTERFACE\
+ else\
+ # mesg "how do I bring interfaces up on this distro?"\
+ mesg "E: /sbin/ifdown not found. You need to install ifupdown package"\
+ fi\
+ mesg $1 $ACTION event not handled\
+ ;;\
+' $dir/net.agent.orig > $dir/net.agent
+rm -f $dir/net.agent.orig
+chmod 755 $dir/net.agent
+exit 0
+
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/hotplug-net-agent-usb.patch b/packages/linux-hotplug/linux-hotplug-20040920/hotplug-net-agent-usb.patch
index e69de29bb2..a64fc50d2b 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/hotplug-net-agent-usb.patch
+++ b/packages/linux-hotplug/linux-hotplug-20040920/hotplug-net-agent-usb.patch
@@ -0,0 +1,43 @@
+--- hotplug/etc/hotplug/net.agent 2005-01-13 21:12:47.143597392 +1300
++++ hotplug/etc/hotplug/net.agent 2005-01-13 21:17:57.095477544 +1300
+@@ -41,6 +41,9 @@
+ debug_mesg assuming $INTERFACE is already up
+ exit 0
+ ;;
++ # interfaces that don't go up until attached
++ usbf)
++ ;;
+ # interfaces that are registered then brought up
+ *)
+ # NOTE: network configuration relies on administered state,
+@@ -83,6 +86,13 @@
+ mesg $1 $ACTION event not handled
+ ;;
+
++attach)
++ # ifupdown is dumb and won't bring up an interface that it thinks
++ # might already be configured.
++ /sbin/ifdown $INTERFACE
++ exec /sbin/ifup $INTERFACE
++ ;;
++
+ remove|unregister)
+ case $INTERFACE in
+ # interfaces that are unregistered after being "down" (?)
+@@ -105,6 +115,16 @@
+ mesg $1 $ACTION event not handled
+ ;;
+
++detach)
++ if [ -x /sbin/ifdown ]; then
++ debug_mesg invoke ifdown $INTERFACE
++ exec /sbin/ifdown $INTERFACE
++ else
++ mesg "E: /sbin/ifdown not found. You need to install ifupdown package"
++ fi
++ mesg $1 $ACTION event not handled
++ ;;
++
+ *)
+ debug_mesg NET $ACTION event for $INTERFACE not supported
+ exit 1 ;;
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/isapnp-exit.diff b/packages/linux-hotplug/linux-hotplug-20040920/isapnp-exit.diff
index e69de29bb2..e5a9ab10af 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/isapnp-exit.diff
+++ b/packages/linux-hotplug/linux-hotplug-20040920/isapnp-exit.diff
@@ -0,0 +1,11 @@
+--- hotplug-2004_09_20/etc/hotplug/isapnp.rc.orig 2004-12-20 15:01:21.541446000 +0100
++++ hotplug-2004_09_20/etc/hotplug/isapnp.rc 2004-12-20 15:01:32.625760928 +0100
+@@ -13,7 +13,7 @@
+ #
+
+ # only 2.6 kernels are supported
+-[ -d /sys/bus/pnp/devices/ ] || return 0
++[ -d /sys/bus/pnp/devices/ ] || exit 0
+
+ cd /etc/hotplug
+ . ./hotplug.functions
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/logcheck-ignore b/packages/linux-hotplug/linux-hotplug-20040920/logcheck-ignore
index e69de29bb2..b941353041 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/logcheck-ignore
+++ b/packages/linux-hotplug/linux-hotplug-20040920/logcheck-ignore
@@ -0,0 +1 @@
+net.agent: invoke if(up|down)
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/update-usb.usermap b/packages/linux-hotplug/linux-hotplug-20040920/update-usb.usermap
index e69de29bb2..d09e1176ec 100644..100755
--- a/packages/linux-hotplug/linux-hotplug-20040920/update-usb.usermap
+++ b/packages/linux-hotplug/linux-hotplug-20040920/update-usb.usermap
@@ -0,0 +1,37 @@
+#!/bin/sh -e
+# update-usb.usermap
+# Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+# GPL
+
+LIBDIR=/usr/lib/hotplug
+USERMAP=/etc/hotplug/usb.usermap
+LOCALMAP=/etc/hotplug/usb.usermap.local
+
+test -d $LIBDIR || exit 0
+
+echo -n "Updating $USERMAP ..."
+
+echo "# usb.usermap file" > $USERMAP
+echo "# This is autogenerated by update-usb.usermap program" >> $USERMAP
+echo "# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info" >> $USERMAP
+
+if [ -f $LOCALMAP ]; then
+ echo "# usb.usermap.local" >> $USERMAP
+ cat $LOCALMAP >> $USERMAP
+fi
+
+cd $LIBDIR
+for package in *
+do
+ if [ -d "$package" ]; then
+ map=$package/usb.usermap
+ echo "# $package" >> $USERMAP
+ if [ -x "$map" ]; then
+ ./$map >> $USERMAP
+ elif [ -f "$map" ]; then
+ cat $map >> $USERMAP
+ fi
+ fi
+done
+
+echo done.
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/usb-storage b/packages/linux-hotplug/linux-hotplug-20040920/usb-storage
index e69de29bb2..138790a367 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/usb-storage
+++ b/packages/linux-hotplug/linux-hotplug-20040920/usb-storage
@@ -0,0 +1,2 @@
+#!/bin/sh
+modprobe sd_mod \ No newline at end of file
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/usbrc-busybox.patch b/packages/linux-hotplug/linux-hotplug-20040920/usbrc-busybox.patch
index e69de29bb2..35f43dc52b 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/usbrc-busybox.patch
+++ b/packages/linux-hotplug/linux-hotplug-20040920/usbrc-busybox.patch
@@ -0,0 +1,13 @@
+--- hotplug/etc/hotplug/usb.rc.old 2005-05-25 15:50:11.000000000 +0100
++++ hotplug/etc/hotplug/usb.rc 2005-05-25 15:50:59.000000000 +0100
+@@ -95,8 +95,8 @@
+ PRODUCT="$(cat $devlink/../idVendor)/$(cat $devlink/../idProduct)/$(cat $devlink/../bcdDevice)"
+ if [ -f $devlink/../../devnum ]
+ then
+- devbus=$( ( echo -n 000 ; cat $devlink/../../devnum ) | grep -o ...\$ )
+- devdev=$( ( echo -n 000 ; cat $devlink/../devnum ) | grep -o ...\$ )
++ devbus=$( ( echo -n 000 ; cat $devlink/../../devnum ) | sed 's/.*\(...\)$/\1/' )
++ devdev=$( ( echo -n 000 ; cat $devlink/../devnum ) | sed 's/.*\(...\)$/\1/' )
+ DEVICE="/proc/bus/usb/$devbus/$devdev"
+ else
+ DEVICE=
diff --git a/packages/linux-hotplug/linux-hotplug-20040920/userspecified_hcd.patch b/packages/linux-hotplug/linux-hotplug-20040920/userspecified_hcd.patch
index e69de29bb2..c2ceeb686e 100644
--- a/packages/linux-hotplug/linux-hotplug-20040920/userspecified_hcd.patch
+++ b/packages/linux-hotplug/linux-hotplug-20040920/userspecified_hcd.patch
@@ -0,0 +1,55 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- hotplug-2004_09_20/etc/hotplug/usb.rc~userspecified_hcd.patch
++++ hotplug-2004_09_20/etc/hotplug/usb.rc
+@@ -24,6 +24,7 @@
+ unset I_WANT_A_BROKEN_PS
+ PS_PERSONALITY=linux
+
++HCD=
+ STATIC_MODULE_LIST=
+ X11_USBMICE_HACK=false
+
+@@ -166,20 +167,25 @@
+ # FIXME: some of this should be driven by PCI hotplugging, and have
+ # the blacklist control which uhci driver gets used (before 2.5).
+
+- # "new style" HCDs ... more common code
+- modprobe -q ehci-hcd >/dev/null 2>&1
+- modprobe -q ohci-hcd >/dev/null 2>&1
+- modprobe -q uhci-hcd >/dev/null 2>&1
+-
+- # "old style" HCDs ... more driver-specific bugs
+- modprobe -q usb-ohci >/dev/null 2>&1
+- # NOTE: this prefers "uhci"; you may prefer "usb-uhci".
+- # modprobe -q usb-uhci >/dev/null 2>&1 || modprobe -q uhci >/dev/null 2>&1
+- modprobe -q uhci >/dev/null 2>&1 || modprobe -q usb-uhci >/dev/null 2>&1
+-
+- # ... add any non-PCI HCDS here. Examples include the
+- # CRIS usb-host, Philips ISP-1161, Symlogic 811HS, and so on.
+- # ohci-hcd can handle some non-pci variants.
++ # If the user specified which HCD they want, trust them.
++ if [ -n "$HCD" ]; then
++ modprobe -q $HCD >/dev/null 2>&1
++ else
++ # "new style" HCDs ... more common code
++ modprobe -q ehci-hcd >/dev/null 2>&1
++ modprobe -q ohci-hcd >/dev/null 2>&1
++ modprobe -q uhci-hcd >/dev/null 2>&1
++
++ # "old style" HCDs ... more driver-specific bugs
++ modprobe -q usb-ohci >/dev/null 2>&1
++ # NOTE: this prefers "uhci"; you may prefer "usb-uhci".
++ # modprobe -q usb-uhci >/dev/null 2>&1 || modprobe -q uhci >/dev/null 2>&1
++ modprobe -q uhci >/dev/null 2>&1 || modprobe -q usb-uhci >/dev/null 2>&1
++
++ # ... add any non-PCI HCDS here. Examples include the
++ # CRIS usb-host, Philips ISP-1161, Symlogic 811HS, and so on.
++ # ohci-hcd can handle some non-pci variants.
++ fi
+
+ if [ -d /proc/bus/usb ]; then
+ # If we see there are no busses, we "failed" and