Ubuntu 12.04.2 LTS 3.2.0-39-generic-pae
Bonjour, le PC sur lequel je travaille a 4 ports série.
ttyS0 et ttyS1 fonctionnent correctement dès le démarrage,
ttyS2 et ttyS3 ne fonctionnent pas.
voici les messages dmesg pertinents:
Serial: pilote 8250/16550, 32 ports, partage IRQ activé
[ 1.050346] serial8250: ttyS0 à l'I/O 0x3f8 (irq = 4) est un 16550A
[ 1.100595] serial8250: ttyS1 à l'I/O 0x2f8 (irq = 3) est un 16550A
[ 1.144567] serial8250: ttyS2 à l'I/O 0x3e8 (irq = 4) est un 16550A
[ 1.188577] serial8250: ttyS3 à l'I/O 0x2e8 (irq = 3) est un 16550A
[ 1.383941] isapnp: Aucun périphérique Plug & Play trouvé
[ 1.449179] 00:06: ttyS0 à l'I/O 0x3f8 (irq = 4) est un 16550A
[ 1.477192] 00:07: ttyS1 à l'I/O 0x2f8 (irq = 3) est un 16550A
[ 1.498296] 00:08: ttyS2 à l'I/O 0x3e8 (irq = 7) est un 16550A
[ 1.524994] 00:09: ttyS3 à l'I/O 0x2e8 (irq = 7) est un 16550A
pour les faire fonctionner, je dois les reconfigurer en invoquant:
setserial /dev/ttyS3 baud_base 115200 auto_irq skip_test autoconfig
que j'ai trouvé ici
Avant de reconfigurer le port série, setserial signale ce qui suit pour les ports série:
/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
Après reconfiguration, voici ce qui est signalé:
/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
Les ports série sont fournis par une puce fintek f81866 qui prend en charge le partage d'IRQ, donc avoir les IRQ initiaux définis à 7 ne devrait pas poser de problème. alors que le fait d'avoir les IRQ définis à 0 est un problème d'après ce que je comprends, car selon la page man de setserial man page l'IRQ 0 est réservé pour Timer channel 0.
La puce fintek f81866 prend en charge jusqu'à 6 ports série.
Alors j'ai essayé d'ajouter 8250.nr_uarts=8
à la ligne de démarrage mais cela n'a rien fait (autant que je sache, je ne sais pas comment confirmer les paramètres de démarrage qui ont été passés).
Qu'est-ce qui ne va pas? Pourquoi ttyS2 et ttyS3 ne sont-ils pas configurés correctement au démarrage?
Comment puis-je résoudre ce problème? Que dois-je faire pour qu'ils soient configurés correctement au démarrage (sans créer mon propre script d'initialisation)?
Merci d'avance!