LINUX.ORG.RU

Скорость COM-порта в CentOS 4.5


0

0

Всем доброго дня!
Работаем с последовательным портом в CentOS 4.5. К порту подключено специализированное устройство, которое работает на скорости 4800 бит/сек.
Дело в том, что в этой минимальная скорость COM-порта ограничена 9600 бит/сек. Кто знает как побороть?

★★
Ответ на: комментарий от anonymous

>setserial >anonymous (*) (22.10.2007 11:45:06)

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

>setserial
>anonymous (*) (22.10.2007 11:45:06)
Я было тоже так подумал, а оно вишь как:
gserg@ADM:/boot/grub$ sudo setserial /dev/ttyS0 Baud_base 4800
Cannot set serial info: Invalid argument

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

Да, и при этом же: gserg@ADM:/boot/grub$ sudo setserial -a /dev/ttyS0 /dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test

gserg@ADM:/boot/grub$ sudo setserial /dev/ttyS0 Baud_base 9600

Последнее тоже успешно выполняется.

gserg ★★
() автор топика

Это вообще не из setserial надо делать, а из stty

stty ... 4800 < /dev/ttyS0

man stty

А в setserial baud_base оставь, как есть. Это вообще из другой оперы.

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

>Это вообще не из setserial надо делать, а из stty
> stty ... 4800 < /dev/ttyS0
> man stty
> А в setserial baud_base оставь, как есть. Это вообще из другой оперы.

Посмотрел stty. Все бы замечательно, но драйвер железки сам инициализирует порт и выставляет скорость, использую sysctl() - то есть таким же образом, как и setserial.

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

Решение оказалось следующим: в исходниках ядра, в файлах drivers/serial/8250.c и drivers/serial/serial-core.c стояло тупо условие, когда при попытке установить baud base меньше 9600 ядро возвращало EINVAL. В двух местах правиться 9600 на нужную нам циферку, собирается ядро.

gserg ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.