Uno degli elementi indispensabili quando si lavora su progetti Linux embedded è l'accesso al dispositivo tramite l'interfaccia della console seriale. Per questo, il computer su cui stai sviluppando un sistema embedded deve avere una porta seriale. Tuttavia, pochissimi computer oggi hanno una porta seriale, ed è per questo che utilizziamo invece convertitori da USB a seriale.

Alla fine, avrai una comprensione dettagliata di cosa sono le console seriali e come funzionano su Linux.

Configurazione del convertitore da USB a seriale

Quasi tutti i convertitori seriali USB che puoi trovare sul mercato vengono automaticamente riconosciuti da Linux. Collega qualsiasi convertitore USB al tuo computer e usa il dmesg comando per scoprire il nome del file del dispositivo.

dmesg

Nell'esempio sopra, vedi VirtualBox nella sezione del produttore, poiché l'host è una distribuzione Linux in esecuzione su VirtualBox. Qui, il nome del produttore cambierà a seconda del convertitore in uso. Puoi anche vedere che il convertitore seriale che stai utilizzando è collegato al sistema con un nome, ad esempio

instagram viewer
ttyUSB0.

È possibile utilizzare il convertitore seriale riconosciuto dal sistema tramite il file del dispositivo /dev/ttyUSB0. A seconda della distribuzione in uso, il file del dispositivo viene creato automaticamente in /dev directory, che mostra i tipi principali, secondari e di dispositivo. Per i convertitori seriali USB, lo schema di denominazione è solitamente ttyUSB0, ttyUSB1, e ttyUSBX per ogni traduzione simultanea.

Se si rimuove e si reinserisce il convertitore seriale USB mentre è in uso da un'applicazione, il sistema emette un nuovo numero per il dispositivo.

Autorizzazione all'accesso su dispositivi seriali

I privilegi di accesso predefiniti dei file del dispositivo convertitore USB montati sono generalmente i seguenti:

ls -l /dev/ttyUSB0

# Produzione
crw-rw 1 root dialout 188, 46 17 luglio 15:34 /dev/ttyUSB0

Esaminando l'output sopra, puoi dire:

  • La lettera c all'inizio della riga indica che si tratta di un dispositivo basato sui caratteri
  • Il proprietario del file è l'utente root e l'utente ha privilegi di lettura e scrittura
  • Il proprietario del gruppo del file è il dialout il gruppo e gli utenti inclusi in questo gruppo hanno anche autorizzazioni di lettura e scrittura
  • Il resto degli utenti non dispone di alcun diritto di lettura e scrittura sul file

Se sei attualmente connesso come utente normale, che non è un membro del gruppo di dialout, non puoi leggere e scrivere sul convertitore seriale USB. Per risolvere questo problema, devi rendere l'utente corrente un membro del gruppo di dialout o modificare il udev file di regole sul tuo sistema.

Puoi utilizzare la prima tecnica per comodità. Per iniziare, usa il id comando per determinare a quali gruppi appartiene il tuo utente:

id

Aggiungi il tuo utente al gruppo utilizzando il Aggiungi utente o mod utente comando:

# Per Fedora
sudo usermod -aG dialout USERNAME

# Per Debian
sudo adduser USERNAME dialout

# Per l'Arch
sudo usermod -a -G uucp USERNAME

L'appartenenza al gruppo la procedura è ora completata. Tuttavia, il sistema controlla le informazioni sull'appartenenza al gruppo durante il primo passaggio di accesso nelle sessioni grafiche e poi le fornisce a tutti i processi in esecuzione.

Di conseguenza, è necessario disconnettersi dalla sessione grafica corrente e quindi riconnettersi o riavvia la macchina affinché le modifiche abbiano effetto. Avrai accesso in lettura/scrittura al dispositivo convertitore seriale dopo aver terminato questa operazione.

Come connettersi a console seriali su Linux

Quando è necessario accedere a un computer oa una console di rete, è possibile fare riferimento alle applicazioni della console seriale. Di solito, per farlo è necessario l'accesso tramite SSH. Tuttavia, da un punto di vista software e hardware, in alcuni casi, è anche possibile accedere alla console utilizzando solo le porte seriali.

Troverai questi tipi di esempi più spesso su computer meno recenti. Di seguito sono elencate alcune delle migliori applicazioni per console seriali che funzioneranno per te.

Utilizzando Minicom

Puoi installare Minicom, un'applicazione vecchia ma ancora funzionante sul tuo sistema come segue:

# Su Fedora, CentOS e RHEL
sudo gnam installare minicom

# Su Debian e Ubuntu
sudo apt-ottenere installa minicom

# Su Arch Linux
sudo schiocco installare minicom

Quando avvii l'applicazione per la prima volta, proverà ad aprire un file del dispositivo come /dev/modem per impostazione predefinita. Termina quando non riesce a trovare il file. Per ovviare a questo problema, puoi avviare direttamente la schermata delle impostazioni dell'applicazione con il -S parametro:

minicom -s

È possibile impostare il nome del dispositivo premendo il tasto UN e la velocità della porta seriale premendo il tasto e chiave. Poi quando esci con Uscita, è possibile utilizzare la porta seriale corrispondente.

Dalla schermata principale dell'applicazione, puoi tornare alla schermata di configurazione con CTRL+A+O, uscire dall'applicazione con CTRL+A+X, attivare la modalità di ritorno a capo con CTRL+A+We ottenere assistenza con altre scorciatoie con CTRL+A+Z.

Utilizzo di GTKTerm

Minicom è generalmente utilizzato da utenti Linux avanzati e quindi non è consigliato ai principianti. I nuovi arrivati ​​su Linux possono installare GTKTerm, un emulatore di terminale seriale grafico per Linux. È possibile installare l'applicazione sul sistema utilizzando i seguenti comandi:

# Su Fedora, CentOS e RHEL
sudo dnf -y installare gtkterm

# Su Debian e Ubuntu
sudo apt-ottenere installa gtkterm

# Su Arch Linux
si -S gtkterm

Quando avvii l'app, dovrai impostare il nome del dispositivo e i parametri di velocità tramite il Configurazione > Porta menu come segue:

Salva le impostazioni come predefinite per facilitare un uso successivo.

Usando lo schermo

Se hai familiarità con lo schermo per la gestione multi-terminale, sapresti che puoi usarlo anche per l'accesso alla porta seriale. Ecco i comandi per installarlo:

# Su Fedora, CentOS e RHEL
sudo dnf -y installare schermo

# Su Debian, Ubuntu e Linux Mint
sudo apt-ottenere -y schermata di installazione

# Usa Snap per altre distribuzioni
sudo schiocco installare schermo --classico

Dopo l'installazione, puoi eseguire un comando come questo per connetterti a una console seriale:

schermo /dev/ttyUSB0 115500

Ora puoi stabilire una connessione alla porta seriale su Linux

Poter accedere al proprio sistema Linux utilizzando la porta seriale è una funzionalità molto utile, soprattutto quando non si desidera collegare un monitor all'SBC (Session Border Controller).

Poiché l'autorizzazione della console seriale è incorporata nel kernel Linux al momento della compilazione, dovresti avere almeno una conoscenza di base del kernel Linux e del suo funzionamento.