2010-04-14 21:10:13 +0000 2010-04-14 21:10:13 +0000
33
33

Hoe weet ik welke /dev/ttyS* mijn seriële poort is?

Ik heb een laptop die maar één seriële poort heeft.

Ik ging in:

/dev

directory, en ik vond:

ttyS0
ttyS1
ttyS2
ttyS3

Hoe weet ik welke van die “ttyS” verwijst naar mijn seriële poort?

Antwoorden (5)

34
34
34
2010-04-14 21:24:54 +0000

Ik denk dat het dit commando is:

dmesg | grep tty

Dat uitvoeren op mijn eigen Linux box (die maar 1 seriële poort heeft) levert een enkele ttyS0 uitvoerregel op. Probeer het zelf maar, je zult zien wat ik bedoel.

14
14
14
2016-06-30 15:45:47 +0000

Kijk welke UART’s werden gedetecteerd in /proc/tty/driver/serial. Een lijn met uart:unknown betekent: niets gedetecteerd (en waarschijnlijk niet bestaand).

# cat /proc/tty/driver/serial 
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

Als er iets is aangesloten en de lijnen CTS, DSR of CD aanstuurt (dit zijn ingangslijnen) kun je er zelfs vrij zeker van zijn dat er daadwerkelijk iets is… Hetzelfde geldt voor de rx-byte-count.

7
7
7
2014-12-20 13:55:13 +0000

Als u dit programmatisch moet doen kan het lezen van de uitvoer van dmesg lastig zijn, in plaats daarvan heeft de map /dev/serial/by-id sym links die genoemd zijn naar identificeerbare gegevens van uw apparaat en wijzen naar de specifieke /dev/tty* waarmee ze verbonden zijn.

Ik weet niet zeker of dit een speciale udev regel is die distributiespecifiek is, maar het werkt goed in Ubuntu, laat het me weten als het werkt.

6
6
6
2010-04-14 21:17:04 +0000

ttyS0 tot en met 3 komen overeen met respectievelijk COM1 tot en met 4. Ze hebben meestal dezelfde hardwarebronnen en zijn niet altijd detecteerbaar, dus ze bestaan altijd.

1
1
1
2016-09-12 15:19:53 +0000

Er is ook het commando setserial dat /proc/tty/driver/serial gebruikt om zijn gegevens te verkrijgen.

# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3