3-й и 4-й последовательный порт не настроен при запуске

Ubuntu 12.04.2 LTS 3.2.0-39-generic-pae

Привет, ПК, на котором я работаю, имеет 4 последовательных порта.

ttyS0 и ttyS1 работают правильно сразу после запуска,

ttyS2 и ttyS3 - нет.

вот соответствующие сообщения dmesg:

Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    1.050346] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.100595] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.144567] serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
[    1.188577] serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A
[    1.383941] isapnp: No Plug & Play device found
[    1.449179] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.477192] 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.498296] 00:08: ttyS2 at I/O 0x3e8 (irq = 7) is a 16550A
[    1.524994] 00:09: ttyS3 at I/O 0x2e8 (irq = 7) is a 16550A

, чтобы заставить их работать, я должен перенастроить их, вызвав:

setserial /dev/ttyS3 baud_base 115200 auto_irq skip_test autoconfig

, который я нашел здесь

Перед переконфигурированием последовательного порта setserial сообщает следующее для последовательных портов:

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 7
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 7

После переконфигурирования выдается сообщение:

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 0
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 0

Последовательные порты снабжены микросхемой fintek f81866, которая поддерживает совместное использование IRQ, поэтому наличие начальных IRQ, равных 7, не должно быть проблемой. хотя установка IRQ на 0 является проблемой из того, что я понимаю в соответствии с man-страницей setserial IRQ 0 зарезервирован для канала 0 таймера.

Микросхема fintek f81866 поддерживает до 6 последовательных портов.

Поэтому я попытался добавить 8250.nr_uarts=8 в строку загрузки, но это ничего не сделало (насколько я знаю, я не знаю способа подтвердить, какие параметры загрузки были переданы).

1119 Что происходит не так? Почему ttyS2 и ttyS3 не настраиваются правильно при запуске?

Как это исправить? Что мне нужно сделать, чтобы они правильно настроены при запуске (если не считать собственного сценария инициализации)?

Заранее спасибо!

3
задан 10 April 2013 в 08:24

2 ответа

Вот еще один пример /var/lib/setserial/autoserial.conf для промышленного ПК Advantech UNO-3072A

/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
/dev/ttyS1 uart 16550A port 0x02f8 irq 3 baud_base 115200 spd_normal skip_test
/dev/ttyS2 uart 16950 port 0xcc00 irq 18 baud_base 921600 low_latency
/dev/ttyS3 uart 16950 port 0xc880 irq 18 baud_base 921600 low_latency
0
ответ дан 10 April 2013 в 08:24

Если вы хотите загрузиться с этой конфигурацией, примененной к последовательному порту, вы можете изменить

/var/lib/setserial/autoserial.conf

для изменения конфигурации ttyS3 включая предложение, которое вы использовали, чтобы правильно перенастроить его.

Файл autoserial.conf используется в процессе загрузки скриптом /etc/rc0.d/K19setserial.

Вот мой собственный файл

/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
/dev/ttyS1 uart 16550A port 0x02f8 irq 3 baud_base 115200 spd_normal skip_test
/dev/ttyS2 uart 16550A port 0x03e8 irq 4 baud_base 115200 spd_normal skip_test
#/dev/ttyS3 uart 16550A port 0x02e8 irq 3 baud_base 115200 spd_normal
/dev/ttyS3 baud_base 115200 auto_irq skip_test autoconfig spd_normal
.
0
ответ дан 10 April 2013 в 08:24

Другие вопросы по тегам:

Похожие вопросы: