Link to home
Start Free TrialLog in
Avatar of kakiser
kakiser

asked on

Unusable serial ports

Since my computer only came with one serial port, I went ahead and installed a ISA card that contains an extra parallel port, and two additional serial ports.
When the kernal (2.2.12-20) boots, it correctly identifies that I have 3 serial ports, however it does not 'see' the second parallel port.
When I attempt to access the other two serial ports, via ttyS1 and ttyS2, the following message occurs in the /var/log/messages file:
modprobe: can't locate module char-major-108

I understand what it means, but can't seem to figure out how to fix the problem. Just to be sure, I did actually boot into (shudder) windows to verify that it could see the ports, and it was able to see only one additional com port, and one parallel port.

What I'm doing is setting up a PPP session over the tty port to my Plam Pilot so that I can sync with the PC in my office. I have the PPP session working using ttyS0, and verified that everything works using the Linux box in my office.

Wondering if I should just buy a single serial port card instead of using this multi-combo one.

thanks
 
Avatar of biard
biard

2 questions:  Is there also a modem in this unit?  And although there is no port on the back, does the BIOS happen to list 2 serial ports?
Is there an entry for char-major-108 in /etc/modules.conf ( or /etc/conf.modules ) ?
Avatar of kakiser

ASKER

I have an external modem attached to ttyS0, the built in serial port on the machine. The bios only has an entry for one serial port, since that is all the machine originally came with.

There is no entry for char-major-108 in the /etc/conf.modules file. I did add an entry for aliasing char-major-108 to the normal tty_io module, but it didn't work, and of course afterwards it dawned on me that the board has multiple ports on it, so what I think I need is the kernal driver to handle that, but when I did a make xconfig in /usr/src/linux, it seemed to me that multi board support is built in as a module, but I am clueless which module it is.

thanks
Multi board support generally means "intelligent" cards that only use 1 IRQ for 4 - 16 serial ports. Those multiport cards that you bought one of are just like onboard devices, just that they sit on a card (just like the good ol' times B^). If you can't see the second parallel port, I'd suggest checking the card if its IRQ and I/O ports are configured correctly. You'll probably have to user jumpers on that card, read the docs that came with it. A second parallel port usually lives at IRQ 5, I/O port ... ahh ... no docs here ... uhm, probably 278? 3BF?, but *please* check that before using.

The same (roughly) is true for your serial ports. First check them all if they live at standard locations (ttyS0 at IRQ 4, IO 3F8, ttyS1 at IRQ 3, IO 2F8, as far as I recall) and then configure your multiport card. For that third serial port you'll have to sacrifice another IRQ. That's the reason why there's support for intelligent Multiport cards in the kernel B^)

Hope that helped...
Also, if you think that only using a single port card would help, there are jumper settings for each of the ports that will disable them.  Just disable the second add-on serial port (and the add-on parallel port?).  This way, you are only loading drivers for a total of 2 instead of a total of 3.
Avatar of kakiser

ASKER

I disabled the the parallel port, and the other serial port. Set the remaining serial port to com2 (ttyS1) and IRQ 3. Performing a cat /proc/interrupts shows iqr 3 and 4 are for serial. I also noticed that accessing the built in ttys0 also produces the same missing module message, so that is not the problem, since that port works fine.

I also connected the Plam Pilot sync cradel to the ttyS1 port, started kpilotDaemon, and pressed the sync button. The daemon started up, but was unable talk to the palm. Hooking the cradel up to ttys0 works fine.

I am begining to think that perhaps the card is really the problem, and I should just go find a single serial port card.

any thoughts?

Thanks
Just checked that modprobe error messages, it means that it tries, but fails, to load a PPP modules (probably ppp.o). Shouldn't be too serious, but I don't know if the pilot software needs PPP.

I'd try to check /dev/ttyS1 by using something simpler, i.e. a serial mouse or a null modem cable. If you have a serial mouse, kill the running gpm, plug your mouse into the port on your card and run "gpm -m /dev/ttyS1 -t <yourmousetype>". If you have a null modem cable, plug it into /dev/ttyS1 and /dev/ttyS0, try "cat /dev/ttyS1" on one virtual console and "cat /etc/passwd >/dev/ttyS0" on the other. It should print the content of /etc/passwd on the first console where you typed "cat /dev/ttyS1".
ASKER CERTIFIED SOLUTION
Avatar of jamesR
jamesR

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of kakiser

ASKER

The problem was an IRQ conflict, because eventhough the the serial driver thought the card was using IRQ 3, in reality the card was using IRQ 0! I ran setserial with the auto_irq and autoconfig option to discover this. I pulled the card out, and made sure every jumper was set correctly, and bingo, it now works!

thanks everyone for your assistance.