How can I get linux to recognize a digiboard?
I have an ISA PC8 card, on which I am trying to use the first 4 ports. Does anyone know what I should do to get my OS to recognize the first 4 ports on the digiboard as /dev/ttyS4 ... /dev/ttyS7?
I have gone through so many combinations of setting the dip switches on the board, on to "mknod" and "setserial", etc. But it doesn't seem to work.
After mknod, I used setserial and got the following result (I'm not so worried about ttyS2 and ttyS3):
# setserial -g /dev/ttyS?
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
/dev/ttyS4, UART: 16650, Port: 0x01a0, IRQ: 2
/dev/ttyS5, UART: 16650, Port: 0x01a8, IRQ: 2
/dev/ttyS6, UART: 16650, Port: 0x01b0, IRQ: 2
/dev/ttyS7, UART: 16650, Port: 0x01b8, IRQ: 2
I've tried the above settings with UART 16550A also.
I use a simple program which opens /dev/ttyS4 and /dev/ttyS5, writes into the former (which succeeds), and attempts to read from the latter (which fails). The two ports are connected via a null modem cable. The read() operation returns EAGAIN, indicating no data were available at the port to read.
int main()
{
int res, fd1, fd2;
char buf1[255], buf2[255];
fd1 = open("/dev/ttyS4", O_RDWR| O_NDELAY);
fd2 = open("/dev/ttyS5", O_RDWR| O_NDELAY);
sprintf(buf1, "this is a test", sizeof("this is a test"));
res = write(fd1, buf1, strlen(buf1));
res = read(fd2, buf2, 5);
return 0;
}
The dip switch settings of the first 4 digiboard ports and of the digiboard irq match the settings of /dev/ttyS4 ... /dev/ttyS7 as listed above.
However, I noticed that none of several combinations of the setserial command did not affect the irq values listed in /proc/interrupts.
Thanks in advance.
Raja Hayek.
- Re: [newbie] Getting linux to recognize a digiboard an... Raja . Hayek
- Re: [newbie] Getting linux to recognize a digiboa... Mikkel L. Ellertson