diff options
Diffstat (limited to 'meta/packages/linux-hotplug/files/sleeve.agent')
| -rwxr-xr-x | meta/packages/linux-hotplug/files/sleeve.agent | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/meta/packages/linux-hotplug/files/sleeve.agent b/meta/packages/linux-hotplug/files/sleeve.agent new file mode 100755 index 0000000000..55befca1b1 --- /dev/null +++ b/meta/packages/linux-hotplug/files/sleeve.agent | |||
| @@ -0,0 +1,120 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # H3600 Sleeve hotplug policy agent for Linux 2.4 kernels | ||
| 4 | # | ||
| 5 | # Kernel NET hotplug params include: | ||
| 6 | # | ||
| 7 | # ACTION=%s [add or remove] | ||
| 8 | # VENDOR_ID=%s | ||
| 9 | # DEVICE_ID=%x | ||
| 10 | # DEVICE_NAME=%s | ||
| 11 | # | ||
| 12 | |||
| 13 | . /etc/hotplug/hotplug.functions | ||
| 14 | #DEBUG=yes export DEBUG | ||
| 15 | |||
| 16 | if [ "$DEBUG" != "" ]; then | ||
| 17 | mesg "Executing $0 action=$ACTION, device=$DEVICE_NAME ($VENDOR_ID,$DEVICE_ID)" | ||
| 18 | fi | ||
| 19 | |||
| 20 | COMPACTFLASH_TIMING_INCREMENT=0 | ||
| 21 | PCMCIA_TIMING_INCREMENT=0 | ||
| 22 | DUAL_PCMCIA_TIMING_INCREMENT=0 | ||
| 23 | NAVMAN_TIMING_INCREMENT=0 | ||
| 24 | BACKPAQ_TIMING_INCREMENT=-100 | ||
| 25 | |||
| 26 | if [ -f /etc/sysconfig/hotplug ] ; then | ||
| 27 | . /etc/sysconfig/hotplug | ||
| 28 | fi | ||
| 29 | |||
| 30 | case $ACTION in | ||
| 31 | add) | ||
| 32 | case $DEVICE_NAME in | ||
| 33 | "Compaq Mercury Backpaq") | ||
| 34 | mkdir -p /backpaq | ||
| 35 | echo $BACKPAQ_TIMING_INCREMENT > /proc/sys/backpaq/pcmcia/timing_increment_ns | ||
| 36 | ## mount -t jffs2 /dev/mtdblock/4 /backpaq | ||
| 37 | modprobe h3600_backpaq_fpga || mesg 'could not load backpaq fpga driver' | ||
| 38 | modprobe h3600_backpaq_camera || mesg 'could not load backpaq camera driver' | ||
| 39 | if [ -c /dev/v4l/video0 ] ; then | ||
| 40 | ln -s /dev/v4l/video0 /dev/video0 | ||
| 41 | ln -s /dev/v4l/video0 /dev/video | ||
| 42 | fi | ||
| 43 | CAMERATYPE=`/bin/grep "CameraType" /proc/backpaq/camera | /bin/sed -e 's/.*: //'` | ||
| 44 | BACKPAQ_NUMBER=`/bin/grep "Major revision" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'` | ||
| 45 | FPGA_NUMBER=`/bin/grep "FPGA version" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'` | ||
| 46 | CAMERA_NUMBER=`/bin/grep "Camera" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'` | ||
| 47 | |||
| 48 | echo "CAMERA_TYPE = $CAMERATYPE" | ||
| 49 | echo "BACKPAQ_NUMBER = $BACKPAQ_NUMBER" | ||
| 50 | echo "FPGA_NUMBER = $FPGA_NUMBER" | ||
| 51 | echo "CAMERA_NUMBER = $CAMERA_NUMBER" | ||
| 52 | echo "looking for file: /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin" | ||
| 53 | if [ -e /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin ] ; then | ||
| 54 | cat /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin > /dev/backpaq/fpga | ||
| 55 | elif [ -e /etc/fpga_$CAMERATYPE.bin ] ; then | ||
| 56 | cat /etc/fpga_$CAMERATYPE.bin > /dev/backpaq/fpga | ||
| 57 | elif [ -e /etc/fpga.bin ] ; then | ||
| 58 | cat /etc/fpga.bin > /dev/backpaq/fpga | ||
| 59 | else | ||
| 60 | mesg 'unable to program the backpaq fpga' | ||
| 61 | fi | ||
| 62 | modprobe h3600_backpaq_accel || mesg 'could not load backpaq accelerometer driver' | ||
| 63 | mesg 'BackPAQ drivers loaded' | ||
| 64 | ;; | ||
| 65 | "Compaq CompactFlash Sleeve") | ||
| 66 | mesg 'CompactFlash drivers loaded' | ||
| 67 | echo $COMPACTFLASH_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns | ||
| 68 | ;; | ||
| 69 | "Compaq PC Card Sleeve") | ||
| 70 | mesg 'PC card sleeve drivers loaded' | ||
| 71 | echo $PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns | ||
| 72 | ;; | ||
| 73 | "Compaq Dual PC Card Sleeve") | ||
| 74 | mesg 'Dual PC card sleeve drivers loaded' | ||
| 75 | echo $DUAL_PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns | ||
| 76 | ;; | ||
| 77 | "Navman GPS/CF Sleeve") | ||
| 78 | mesg 'Navman GPS sleeve drivers loaded' | ||
| 79 | echo $NAVMAN_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns | ||
| 80 | start-stop-daemon --start --exec /usr/sbin/gpsd.bin -- -p /dev/tts/0 -s 57600 | ||
| 81 | ;; | ||
| 82 | *) | ||
| 83 | mesg "$1 $ACTION event not handled for $DEVICE_NAME" | ||
| 84 | ;; | ||
| 85 | esac | ||
| 86 | ;; | ||
| 87 | |||
| 88 | remove) | ||
| 89 | case $DEVICE_NAME in | ||
| 90 | "Compaq Mercury Backpaq") | ||
| 91 | mesg 'Unloading BackPAQ drivers' | ||
| 92 | ## umount /backpaq | ||
| 93 | rmmod h3600_backpaq_camera | ||
| 94 | rmmod h3600_backpaq_accel | ||
| 95 | rmmod h3600_backpaq_fpga | ||
| 96 | ;; | ||
| 97 | "Compaq CompactFlash Sleeve") | ||
| 98 | mesg 'Unloading CompactFlash sleeve' | ||
| 99 | ;; | ||
| 100 | "Compaq PC Card Sleeve") | ||
| 101 | mesg 'Unloading PC Card sleeve' | ||
| 102 | ;; | ||
| 103 | "Compaq Dual PC Card Sleeve") | ||
| 104 | mesg 'Unloading Dual PC Card sleeve' | ||
| 105 | ;; | ||
| 106 | "Navman GPS/CF Sleeve") | ||
| 107 | mesg 'Unloading Navman GPS sleeve' | ||
| 108 | start-stop-daemon --stop --name gpsd.bin | ||
| 109 | ;; | ||
| 110 | *) | ||
| 111 | mesg $1 $ACTION event not handled for $DEVICE_NAME | ||
| 112 | ;; | ||
| 113 | esac | ||
| 114 | ;; | ||
| 115 | |||
| 116 | *) | ||
| 117 | mesg "$1 $ACTION event not supported" | ||
| 118 | exit 1 ;; | ||
| 119 | |||
| 120 | esac | ||
