2003-09-12 23:44:05

by Stevie-O

[permalink] [raw]
Subject: Serial port problem with SiS 730 chispet?


I apologize if this problem has been reported before; I tried googling but came
up empty.

I just upgraded my system and put in a EGS K7SEM motherboard with a SiS 730
chipset. I have Debian installed. For those not in the know, Debian provides a
utility called 'discover' that does simple things to detect hardware, such as
scanning the pci bus to find modules that need to be loaded. One of the things
it can do is probe serial ports to find modems and mice and other such things.

Well, to make a long story short, after some time stracing and gdbing and other
experimenting, I think I have determined that discover is stalling when it tries
to open /dev/ttyS0. discover is called twice Debian's startup scripts, and both
times it blocks waiting to open the port. I modified the single-user-mode
startup to run 'openvt sulogin' right away. Things got stranger as I proceeded:

(1) strace -p <discover's pid> wakes it up at 'open(.../dev/ttyS0)'. I think
the signal being sent when strace does ptrace(PTRACE_ATTACH) kickstarts it into
working.
(2) stty -F/dev/ttyS0 (while discover is still blocked) also blocks.
(3) However, when I hit ctrl-C to kill stty, discover unblocks.
(4) To top it all off, everything begins to work at some point. After the
machine has completely booted and I can ssh in (the machine is *intended* to be
a headless server, so normally the only access is via ssh), I can happily run
discover as often as I want and it will proceed normally.


Can anyone out there please help me figure out exactly what's happening (and
more importantly, how to fix it)?

--
Please CC me, I'm not subscribed to the list.

--
- Stevie-O

Real Programmers use COPY CON PROGRAM.EXE