3ª e 4ª porta serial não configurada na inicialização

2

Ubuntu 12.04.2 LTS 3.2.0-39-generic-pae

Olá, o PC em que estou trabalhando tem 4 portas seriais.

ttyS0 e ttyS1 funcionam corretamente desde o início,

ttyS2 e ttyS3 não.

aqui estão as mensagens relevantes do 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

para fazê-los funcionar, tenho que reconfigurá-los invocando:

setserial /dev/ttyS3 baud_base 115200 auto_irq skip_test autoconfig

que eu encontrei aqui

Antes de reconfigurar a porta serial, o setserial reporta o seguinte para as portas seriais:

/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

Depois de reconfigurar o fllowing, é relatado:

/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

As portas seriais são fornecidas por um chip fintek f81866 que suporta compartilhamento de IRQ, portanto, ter os IRQs iniciais definidos como 7 não deve ser um problema. enquanto ter o IRQs configurado para 0 é um problema do que eu entendo como de acordo com a página de manual

O chip fintek f81866 suporta até 6 portas seriais.

Então, eu tentei adicionar 8250.nr_uarts=8 à linha de inicialização, mas isso não fez nada (até onde sei, não sei como confirmar quais parâmetros de inicialização foram passados).

O que está acontecendo de errado? Por que o ttyS2 e o ttyS3 não estão sendo configurados corretamente na inicialização?

Como posso consertar isso? O que eu preciso fazer para que eles sejam configurados corretamente na inicialização (curta de fazer meu próprio script de inicialização)?

Obrigado antecipadamente!

    
por MrRadiotron 10.04.2013 / 06:24

2 respostas

2

Se você quiser inicializar com esta configuração aplicada na porta serial, você pode modificar o

/var/lib/setserial/autoserial.conf

para modificar a configuração do ttyS3, incluindo a frase que você usou para reconfigurá-lo corretamente.

O arquivo autoserial.conf é usado no processo de inicialização pelo script /etc/rc0.d/K19setserial.

Aqui está meu próprio arquivo

/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
    
por Nomywar 24.04.2014 / 09:55
0

Aqui está outro exemplo de /var/lib/setserial/autoserial.conf para um PC industrial 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
    
por Peter Gibson 20.02.2017 / 07:29