home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / etc / pcmcia / serial < prev    next >
Text File  |  1999-10-31  |  2KB  |  88 lines

  1. #!/bin/bash
  2. #
  3. # serial 1.30 1999/06/09 17:11:12 (David Hinds)
  4. #
  5. # Initialize or shutdown a PCMCIA serial device
  6. #
  7. # The first argument should be either 'start' or 'stop'.  The second
  8. # argument is the base name for the device.
  9. #
  10. # The script passes an extended device address to 'serial.opts' in the 
  11. # ADDRESS variable, to retrieve device-specific configuration options.
  12. # The address format is "scheme,socket,instance" where "scheme" is the
  13. # PCMCIA configuration scheme, "socket" is the socket number, and
  14. # "instance" is used to number multiple ports on a single card.  
  15. #
  16.  
  17. if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
  18.  
  19. # Get device attributes
  20. get_info $DEVICE
  21.  
  22. # Load site-specific settings
  23. ADDRESS="$SCHEME,$SOCKET,$INSTANCE"
  24. . $0.opts
  25.  
  26. # Debian does not use the "cua" devices
  27.     CALLOUT=$DEVICE
  28.  
  29. case "$ACTION" in
  30.  
  31. 'start')
  32.     if [ ! -c /dev/$DEVICE ] ; then
  33.     cd /dev ; ./MAKEDEV $DEVICE
  34.     fi
  35.     if [ "$LINK" ] ; then
  36.     mv -f $LINK $LINK.O 2>/dev/null
  37.     if uname -r | grep -q '^2\.[2345]' ; then
  38.         ln -s /dev/$DEVICE $LINK
  39.     else
  40.         ln -s /dev/$CALLOUT $LINK
  41.     fi
  42.     fi
  43.     if [ "$SERIAL_OPTS" ] ; then
  44.     setserial /dev/$DEVICE $SERIAL_OPTS
  45.     fi
  46.     if [ "$INITTAB" ] ; then
  47.     echo "S$NR:12345:respawn:$INITTAB $DEVICE" >> /etc/inittab
  48.     telinit q
  49.     fi
  50.     ;;
  51.  
  52. 'check')
  53.     fuser -s /dev/$DEVICE /dev/$CALLOUT $LINK && exit 1
  54.     ;;
  55.  
  56. 'cksum')
  57.     chk_simple "$3,$SOCKET,$INSTANCE" || exit 1
  58.     ;;
  59.     
  60. 'stop')
  61.     if [ "$INITTAB" ] ; then
  62.     fgrep -v $DEVICE /etc/inittab > /etc/inittab.new
  63.     mv /etc/inittab.new /etc/inittab
  64.     telinit q
  65.     fi
  66.     fuser -s -k /dev/$DEVICE /dev/$CALLOUT $LINK
  67.     rm -f $LINK ; mv -f $LINK.O $LINK 2>/dev/null
  68.     ;;
  69.  
  70. 'suspend')
  71.     fuser -s -k -STOP /dev/$DEVICE /dev/$CALLOUT
  72.     ;;
  73.  
  74. 'resume')
  75.     if [ "$SERIAL_OPTS" ] ; then
  76.     setserial /dev/$DEVICE $SERIAL_OPTS
  77.     fi
  78.     fuser -s -k -CONT /dev/$DEVICE /dev/$CALLOUT $LINK
  79.     ;;
  80.  
  81. *)
  82.     usage
  83.     ;;
  84.  
  85. esac
  86.  
  87. exit 0
  88.