LINUX.ORG.RU

Не работает /dev/ttySx


0

0
$ setserial /dev/ttyS2
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 4

$ stty -a -F /dev/ttyS2
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D;
eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl
ixon ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0
tab0 bs0 vt0 ff0
-isig -icanon iexten -echo -echoe echok -echonl -noflsh -xcase
-tostop -echoprt echoctl echoke

$ uname -a
Linux debian 2.6.26-2-686 #1 SMP Sat Dec 26 09:01:51 UTC 2009 i686 GNU/Linux

$ dmesg | grep tty
[    0.004000] console [tty0] enabled
[    1.674275] serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
[    1.674575] serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A
[    1.675645] 00:09: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
[    1.676160] 00:0a: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A

Не работает ни с нуль-модемным кабелем ни с любым другим устройством. Сменил несколько разъёмов на 9 и 25 штырьков, подключаю к матери правильно, в BIOS менял на различные порты и IRQ.

При этом в Windows и DOS работает COM-мышь на всех портах в любых условиях. В Linux cat /dev/ttySx молчит при любых условиях. Порт не занят.

Рядом стоит компьютер с тем же самым ядром и там всё работает при любых условиях.

В чём может быть проблема?

А куда делись ttyS0 и ttyS1? Они вообще есть?

А ttyS2 и ttyS3 точно на 4 и 3 прерываниях? Если они настроены на другие прерывания, то ядро этого автоматически не определит. 4 и 3 прерывания ядро назначает автоматически, по умолчанию. Если ты их биосом или аппаратно назначил на другие прерывания, то в setserial это надо указать явно.

ansky ★★★★★
()
Ответ на: комментарий от ansky

Всё есть. Просто я остановился на таком варианте. Могу в BIOS сменить на любой. Это не важно. В DOS всё работает что бы я не выставил в BIOS.

Драйвер мыши (DOS) показывает прерывание 4. Но я посмотрю в этом направлении: вдруг какая-то проблема с прерываниями.

kde4-hater
() автор топика
Ответ на: комментарий от ansky

Выставил в BIOS:

COM1  0x3f8/IRQ 4
COM2  0x2f8/IRQ 3

C:> mouse
CuteMouse v1.9.1 alpha 1 [FreeDOS]
Resident part reset to COM1 (03F8h/IRQ4) in Logitech mode

В программах для DOS мышь бегает.

$ dmesg | grep tty
[    0.004000] console [tty0] enabled
[    4.057962] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.058704] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    4.061711] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.062958] 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

$ cat /dev/ttyS0
^C

$ cat /dev/ttyS1
^C
kde4-hater
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.