Subject : How to resolve "All ports busy" on serial port Solaris 2.x
DETAIL DESCRIPTION:
For Solaris 2.x systems:
-----------------------
1) Port Monitor¸¦ Disable ¶Ç´Â »èÁ¦ÇÑÈÄ
tip -9600 /dev/cua/a
Make sure that you are not trying to access a device that has been
incorrectly specified in /etc/remote when using the tip command.
Use the device /dev/cua/a, for example, and not /dev/term/a.
2) There could be a permissions problem on the device.
Change the permissions and owner of the modem port:
#chmod 666 /dev/cua/a
#chgown uucp /dev/cua/a
To verify the permission bits and owner, use the following
options to ls to follow the link to the actual device:
#ls -Ll /dev/cua/a
Note: If cu is abruptly killed, the device will be left
with an owner of the last user using cu.
3) Check for a lock file in /var/spool/locks. If there is
a lock file, for example LK.032.028.001, then cat the
file. The number displayed is the PID of a process.
Use the ps command above to determine if the process
is still active. Try removing the lock file. IF you
still get "All ports busy," then the process must
be killed. If the process is defunct, it cannot be
killed and rebooting will be necessary. This happens
because the driver is waiting at an unkillable level
for a device to respond.
4) Another process has the port open. This might be another tip
session or another program like lp. It could also be a port monitor.
#ps -ef |grep tip
Do the following as root: (use appropriate device)
#fuser /dev/cua/a
/dev/cua/a: 652o 651o
#ps -ef | grep 652
#ps -ef | grep 651
The process id's, PID's, are 652 & 651 ( drop the o )
If the process using the port is /usr/bin/login or ttymon then
either somebody has dialed into your machine hence the modem
will be active or the modem may be asserting DCD all the time.
Inwhich case check the jumpers and modem settings.
5) IF the process is "ttymon" there are two ways to kill the
process. The easiest is to use Admintool and select
port -> Edit -> Delete Service. You should now
be able to tip or cu to the port. (The modem is no longer
configured for dial-in).
The command to remove the service is:
#pmadm -r -p zsmon -s
(use pmadm -l to determine SVCTAG)
6) Try bringing the system down to single user mode and then back
up to multiuser mode.
exit Windows
init S
type control-d
7) The following removes the devices and recreates them without
rebooting (do not perform a boot -r if a SparcStorage Array exists):
a) To determine the physical device name:
ls -al /dev/term/a
lrwxrwxrwx 1 root root 32 Jul 27 1995 /dev/term/a ->
../../devices/obio/zs@0,100000:a
cd /devices/obio
ls zs*:a*
zs@0,100000:a zs@0,100000:a,cu
ls -al zs*:a*
crw------- 1 lp tty 29, 0 Feb 19 14:01 zs@0,100000:a
crw-rw-rw- 1 uucp uucp 29,131072 Dec 26 14:08 zs@0,100000:a,cu
There are two physical devices for a serial port. Each has a different
minor number which allows the operating system to identify which
driver to use. The a,cu (/dev/cua/a) device is typically used for
modem control and outgoing transactions.
b) remove the devices:
rm zs*:a*
c) then remove the links
cd /dev/term
rm a
cd /dev/cua
rm a
d) Recreate the devices in /devices and then use ports to
recreate the links.
/usr/sbin/drvconfig
/usr/sbin/ports
8) ÇÊ¿äÇÏ´Ù¸é Port¸¦ ´Ù½Ã »ý¼ºÇÏ¿© ÁÖ±âÀ§ÇØ Reconfiguration bootÀÌ ÇÊ¿äÇÏ´Ù.
Revision History
ÀÛ¼ºÀÏÀÚ : 97.2.4
ÀÛ¼ºÀÚ : À̹ÎÈ£