domenica 17 gennaio 2021

Porte seriali via USB su UBUNTU

Utilizzo Ubuntu da 10 anni o forse di più… ma sono un utente ignorante, ben poco ho capito del suo funzionamento in tutto questo tempo. Negli anni questo Sistema Operativo si è evoluto molto divenendo ultimamente decisamente user-friendly, quantomeno nelle sue funzioni base.
Navigare sul web, creare file con LibreOffice, gestire archivi di foto/video, guardare un film in streaming, partecipare ad una videoconferenza… sono tutte cose che si riescono a fare facilmente senza nessuna conoscenza informatica. Si installa il sistema operativo nella variante scelta, si apre il Software Center (simile all’App store di Google o Apple) e si installa ciò che serve. Le prime versioni di Ubuntu che utilizzavo non avevano neanche questa “scorciatoia” e bisognava scrivere dei comandi nel terminale anche per l’installazione dei programmi base.

Ma se vogliamo andare oltre? Bhè li iniziano i problemi e sebbene ultimamente il web sia pieno di risorse anche in italiano la strada è in salita. Vogliamo connettere una radio al PC? Ci serve un adattatore RS232-USB, aggeggio che anche in Windows capitava mi facesse imprecare… su Ubuntu ci ho dovuto picchiare la testa per giorni (e sarei qui ancora se non fosse intervenuto Marco IZ2LVZ/PA1ABE ad assistermi nella parte finale della configurazione).

Partiamo dall’inizio: l’acquisto dell’adattatore seriale-USB. Questo consiglio vale non solo per Ubuntu ma anche per Windows e Mac.

La Prolific, azienda che per prima ha creato il chip PL2303 di conversione seriale-USB ha visto negli anni nascere molti cloni dal dubbio funzionamento. Mi è capitato di utilizzare adattatori per programmare radio che facessero i capricci. Un’accurata scelta del prodotto, magari evitando quelli dal costo di gran lunga più basso della media, è già una buona base di partenza per evitare lunghe sudate in un secondo tempo.

Io ne ho uno marchiato Hamlet che acquistai poco dopo il tm-d710, costava 15€.

Teoricamente (e nel mio caso è stato così) inserendolo in una presa libera il Ubuntu dovrebbe già essere in grado di riconoscerlo. Per capirlo apriamo il terminale ed inseriamo il comando dmesg. Otterremo una lunga risposta ma quello che ci interessa sarà verso le ultime righe dove troverete qualcosa tipo:

[11663.596557] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[11663.596560] usb 1-1.2: Product: USB 2.0 To COM Device

[11663.596562] usb 1-1.2: Manufacturer: Prolific Technology Inc.

[11663.597038] pl2303 1-1.2:1.0: pl2303 converter detected

[11663.600039] usb 1-1.2: pl2303 converter now attached to ttyUSB0


Se i messaggi che vediamo sono simili è una buona cosa perchè non sarà necessario installare i driver a mano (cosa non semplicissima in Ubuntu); ma non è ancora ora di cantare vittoria. Da qui a poter usare la porta seriale la strada è lunga… gli utenti Linux sono abituati ad un concetto di “plug and play” un po’ diverso da quello degli utenti Windows.

Proviamo ora a digitare il comando dmesg | grep tty col quale possiamo visualizzare le porte seriali viste dal computer. Il risultato dovrebbe essere simile a questo:

[ 3358.535733] usb 1-1.2: pl2303 converter now attached to ttyUSB0

[ 4311.967573] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0

 

Le porte seriali si chiamano tty seguite da un numero (tty0 equivale a COM1 nel mondo Windows) ma il nome è tale solo se la porta è nativa; in questo caso vedete ttyUSB0 (che significa COM1 su adattatore USB). Ma come si può vedere risulta “attached” ma “disconnected”. Praticamente Ubuntu ci sta dicendo che la porta c’è ma non la possiamo utilizzare.

NOTA IMPORTANTE: all’interno dei software quando bisogna configurare le periferiche seriali non è sufficiente scrivere il nome della porta seriale impiegata (ad. es. ttyUSB0) ma è necessario indicarne il percorso che in questo caso sarà /dev/ttyUSB0.

E’ necessario dare all’utente i permessi per utilizzare questa porta. Sempre da terminale  digitiamo sudo chmod 777 /dev/ttyUSB* per dare all’utente con cui siamo loggati i permessi per usare tutte le porte ttyUSB. Facendo una prova al volo e vedremo che siamo in gradi di gestire, ad esempio, un TNC esterno.

Finita qui? Non proprio! Se spegniamo e riaccendiamo il pc ci accorgiamo che la porta seriale non funziona più. Solo inserendo a terminale nuovamente sudo chmod 777 /dev/ttyUSB*  tutto tornerà a funzionare. Bisogna allora inserire il comando sudo adduser $USER dialout per dare all’utente i permessi in maniera permanente. Si riavvia un’ultima volta e finalmente tutto funzionerà regolarmente.


Devo ringraziare Marco IZ2LVZ/PA1ABE che mi ha dato una grossa mano, non ci fosse stato sarei ancora li a leggere guide e discussioni sui forum di Ubuntu. Capendoci poco o nulla può essere che abbia scritto qualche castroneria spaziale… nel caso lasciate un commento con la correzione. Grazie!


SETUP:
Lenovo ThinkPad T510
Hamlet USB to RS232
Ubuntu 20.04 LTS




Nessun commento:

Posta un commento