четверг, 21 марта 2013 г.

Зависания при загрузке последовательных портов


Однажды понадобилось проверить мультипортовую плату на компьютере. Ее установка потребовала ручную настройку последовательных портов с помощью команды setserial. Плата была проверена, удалена из компьютера и благополучно забыта. Однако после этого система стала зависать при старте, а именно при инициализации устройств ttyS1 и ttyS2 где-то на минуту. После долгих поисков выяснилось, что настройки инициализации могут находиться в одном из следующих мест:
modconf=/var/run/setserial.conf
autoconfig=/var/lib/setserial/autoserial.conf
etcconfig=/etc/serial.conf
view raw gistfile1.txt hosted with ❤ by GitHub
Первого и третьего файла не оказалось на месте, зато присутствовал второй со следующими параметрами портов:
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
/dev/ttyS1 uart 16550A port 0x02f8 irq 20 baud_base 115200 spd_normal skip_test
/dev/ttyS2 uart 16550A port 0x03e8 irq 20 baud_base 115200 spd_normal skip_test
view raw gistfile1.txt hosted with ❤ by GitHub
Таким образом, были отличия во втором и третьем порту. Стандартная настройка выглядит следующим образом:

 
/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
view raw gistfile1.txt hosted with ❤ by GitHub

Про использование команды setserial можно почитать здесь http://www.opennet.ru/man.shtml?topic=setserial&category=8&russian=0 (на русском)

Комментариев нет:

Отправить комментарий