home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # /etc/init.d/serial
- #
- # Initializes the serial ports on your system
- #
- # Without uncommenting some of the lines in this script, you'll be unable to
- # use ports other than the first two, and those only if they use "standard"
- # IRQ values (whatever those are... :^) The rc.serial script made a couple
- # machines I tested this on hang at this point in the boot process, so it's
- # commented out by default. However, if you need to set up extended serial
- # ports, it's a very good starting point. It usually works great.
- # More info that will be useful: I did some testing and found that the lines
- # in /etc/rc.d/rc.serial that are most likely to make the machine hang are the
- # one that sets up /dev/ttyS3, and the last time, which causes a report to be
- # issued to the console about how the ports were configured. This tries to
- # report on *every* port... if you change it so it only lists the ports you're
- # going to use (/dev/ttyS0 /dev/cua1 /dev/cua2 for example) that it probably
- # won't cause a hang. Also, the "wild" interrupt detection used for auto-
- # configuration can cause problems as well. I highly recommend using the
- # manual configuration lines to avoid trouble.
- #
- ### BEGIN INIT INFO
- # Provides: setserial
- # Should-Start: $local_fs boot.loadmodules
- # Default-Start: B
- # Default-Stop:
- # Description: Initializes the serial ports
- ### END INIT INFO
-
- . /etc/rc.status
-
- SETSERIAL="/bin/setserial -b"
-
- rc_reset
- case $1 in
- start|b)
- PORTS=`(for p in /dev/ttyS*; do isserial <$p && echo $p; done) 2>/dev/null`
-
- run_setserial ()
- {
- $SETSERIAL $@
- rc_status
- }
-
- echo "Configuring serial ports..."
-
- # Do wild interrupt detection (uncomment if you're brave enough to
- # attempt auto-configuration... )
- #
- # run_setserial -W ${PORTS}
-
- ###############################################################
- #
- # AUTOMATIC CONFIGURATION
- #
- # Uncomment the appropriate lines below to enable auto-configuration
- # of a particular board. Or comment them out to disable them....
- #
- ###############################################################
-
- # Do AUTOMATIC_IRQ probing
- #
- AUTO_IRQ=auto_irq
-
- # These are the standard COM1 through COM4 devices
- #
- # If you have an internal modeme with a Rockwell Chipset, add a "skip_test"
- # to the /dev/ttyS3 line below. (It's not added by default because it will
- # screw up people with 8514 displays).
- #
- # run_setserial /dev/ttyS0 ${AUTO_IRQ} skip_test autoconfig
- # run_setserial /dev/ttyS1 ${AUTO_IRQ} skip_test autoconfig
- # run_setserial /dev/ttyS2 ${AUTO_IRQ} skip_test autoconfig
- # run_setserial /dev/ttyS3 ${AUTO_IRQ} autoconfig
-
- # These are for the first AST Fourport board (base address 0x1A0)
- #
- # run_setserial /dev/ttyS4 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS5 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS6 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS7 ${AUTO_IRQ} autoconfig
-
- # These are for the second AST Fourport board (base address 0x2A0)
- #
- # run_setserial /dev/ttyS8 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS9 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS10 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS11 ${AUTO_IRQ} autoconfig
-
- # These are the 3rd and 4th ports on the Accent Async board.
- #
- # run_setserial /dev/ttyS12 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS13 ${AUTO_IRQ} autoconfig
-
- # Usenet Serial Board II (base address 0x100)
- #
- # run_setserial /dev/ttyS16 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS17 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS18 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS19 ${AUTO_IRQ} autoconfig
-
-
- # BocaBoard 4 port (BB-1004) (base address 0x100)
- #
- # run_setserial /dev/ttyS16 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS17 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS18 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS19 ${AUTO_IRQ} autoconfig
-
- # BocaBoard 8 port (BB-1008) (base address 0x100),
- # or two BB-1004's (base addresses 0x100 and 0x120)
- #
- # run_setserial /dev/ttyS16 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS17 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS18 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS19 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS20 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS21 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS22 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS23 ${AUTO_IRQ} autoconfig
-
- # BocaBoard 16 port (BB-1008), (base address 0x100),
- # or two BB-1008's (base addresses 0x100 and 0x140),
- # or four BB-1004's (base address 0x100, 0x120, 0x140, and 0x160)
- #
- # Warning --- some of these ports may conflict with the Future Domain
- # SCSI controller. If you want to run both the BocaBoards and the
- # Future Domain controller, you may need to change the port assignment
- # of the Bocaboards -- see below in the section on manual configuration.
- #
- # run_setserial /dev/ttyS16 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS17 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS18 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS19 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS20 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS21 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS22 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS23 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS24 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS25 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS26 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS27 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS28 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS29 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS30 ${AUTO_IRQ} autoconfig
- # run_setserial /dev/ttyS31 ${AUTO_IRQ} autoconfig
-
- ###############################################################
- #
- # MANUAL CONFIGURATION
- #
- # If you want to do manual configuration of one or more of your
- # serial ports, uncomment and modify the relevant lines.
- #
- ###############################################################
-
- # These are the standard COM1 through COM4 devices
- #
- # run_setserial /dev/ttyS0 uart 16550A port 0x3F8 irq 4
- # run_setserial /dev/ttyS1 uart 16550A port 0x2F8 irq 3
- # run_setserial /dev/ttyS2 uart 16450 port 0x3E8 irq 4
- # run_setserial /dev/ttyS3 uart 16450 port 0x2E8 irq 3
-
- # These are the first set of AST Fourport ports
- #
- # run_setserial /dev/ttyS4 uart 16450 port 0x2A0 irq 7 fourport
- # run_setserial /dev/ttyS5 uart 16450 port 0x2A8 irq 7 fourport
- # run_setserial /dev/ttyS6 uart 16450 port 0x2B0 irq 7 fourport
- # run_setserial /dev/ttyS7 uart 16450 port 0x2B8 irq 7 fourport
-
- # These are the second set of AST Fourport ports
- #
- # run_setserial /dev/ttyS8 uart 16450 port 0x2A0 irq 5 fourport
- # run_setserial /dev/ttyS9 uart 16450 port 0x2A8 irq 5 fourport
- # run_setserial /dev/ttyS10 uart 16450 port 0x2B0 irq 5 fourport
- # run_setserial /dev/ttyS11 uart 16450 port 0x2B8 irq 5 fourport
-
- # These are the 3rd and 4th ports on the Accent Async board.
- #
- # run_setserial /dev/ttyS12 uart 16450 port 0x330 irq 4
- # run_setserial /dev/ttyS13 uart 16450 port 0x338 irq 4
-
- # These are two spare devices you can use to customize for
- # some board which is not supported above....
- # run_setserial /dev/ttyS14 uart XXXXX port XXXX irq X
- # run_setserial /dev/ttyS15 uart XXXXX port XXXX irq X
-
- # These are the ports used for either the Usenet Serial II
- # board, or the Boca Board 4, 8, or 16 port boards.
- #
- # Uncomment only the first 4 lines for the Usenet Serial II board,
- # and uncomment the first 4, 8, or all 16 lines for the
- # Boca Board BB-1004, BB-1008, and BB-2016 respectively.
- #
- # run_setserial /dev/ttyS16 uart 16550A port 0x100 irq 12
- # run_setserial /dev/ttyS17 uart 16550A port 0x108 irq 12
- # run_setserial /dev/ttyS18 uart 16550A port 0x110 irq 12
- # run_setserial /dev/ttyS19 uart 16550A port 0x118 irq 12
- # run_setserial /dev/ttyS20 uart 16550A port 0x120 irq 12
- # run_setserial /dev/ttyS21 uart 16550A port 0x128 irq 12
- # run_setserial /dev/ttyS22 uart 16550A port 0x130 irq 12
- # run_setserial /dev/ttyS23 uart 16550A port 0x138 irq 12
- # run_setserial /dev/ttyS24 uart 16550A port 0x140 irq 12
- # run_setserial /dev/ttyS25 uart 16550A port 0x148 irq 12
- # run_setserial /dev/ttyS26 uart 16550A port 0x150 irq 12
- # run_setserial /dev/ttyS27 uart 16550A port 0x158 irq 12
- # run_setserial /dev/ttyS28 uart 16550A port 0x160 irq 12
- # run_setserial /dev/ttyS29 uart 16550A port 0x168 irq 12
- # run_setserial /dev/ttyS30 uart 16550A port 0x170 irq 12
- # run_setserial /dev/ttyS31 uart 16550A port 0x178 irq 12
-
- ###########################################################
- #
- # Print the results of the serial configuration process
- #
- ###########################################################
-
-
- ${SETSERIAL} -bg ${PORTS}
- rc_status
- echo "Configured serial ports"
- rc_status -v1
- ;;
- stop)
- # skip / do nothing
- ;;
- status)
- PORTS=`(for p in /dev/ttyS*; do isserial <$p && echo $p; done) 2>/dev/null`
- ${SETSERIAL} -bg ${PORTS}
- rc_status -v1
- ;;
- *)
- echo "usage: setserial {start|stop|status}"
- ;;
- esac
- rc_exit
-