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

Come faccio a sapere quale /dev/ttyS* è la mia porta seriale?

Advertisement

Ho un portatile che ha solo una porta seriale.

Sono andato in:

/dev

e ho trovato:

ttyS0
ttyS1
ttyS2
ttyS3

Come faccio a sapere quale di queste “ttyS” si riferisce alla mia porta seriale?

Advertisement

Risposte (5)

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

Credo che sia questo comando:

dmesg | grep tty

Eseguendolo sulla mia Linux box (che ha solo 1 porta seriale) produce una singola linea di output ttyS0. Provate sul vostro, vedrete cosa intendo.

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

Vedi quali UART sono state rilevate in /proc/tty/driver/serial. Una linea con uart:unknown significa: niente rilevato (e probabilmente inesistente).

# 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

Se qualcosa è collegato e pilota le linee CTS, DSR o CD (queste sono linee di ingresso) puoi anche essere abbastanza sicuro che ci sia effettivamente qualcosa… Lo stesso vale per il rx-byte-count.

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

Se avete bisogno di farlo programmaticamente leggendo l'output da dmesg può essere fastidioso, invece la cartella /dev/serial/by-id ha collegamenti sym che prendono il nome da dati identificabili del vostro dispositivo e puntano allo specifico /dev/tty* a cui sono collegati.

Non sono sicuro se questa è qualche regola speciale di udev che è specifica della distribuzione, ma funziona bene in Ubuntu, fatemi sapere se funziona.

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

Da ttyS0 a 3 corrispondono rispettivamente a COM1 a 4. Di solito hanno le stesse risorse hardware e non sono sempre rilevabili, quindi esistono sempre.

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

C'è anche il comando setserial che usa /proc/tty/driver/serial per ottenere i suoi dati.

# 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
Advertisement