Et af de uundværlige elementer, når du arbejder på indlejrede Linux-projekter, er at få adgang til din enhed via den serielle konsolgrænseflade. Til dette skal computeren, hvorpå du udvikler et indlejret system, have en seriel port. Det er dog de færreste computere, der i dag har en seriel port, og derfor bruger vi i stedet USB til seriel konvertere.

Til sidst vil du have en detaljeret forståelse af, hvad serielle konsoller er, og hvordan de fungerer på Linux.

Opsætning af USB til seriel konverter

Næsten enhver seriel USB-konverter, du kan finde på markedet, genkendes automatisk af Linux. Tilslut enhver USB-konverter til din computer og brug dmesg kommando for at finde ud af enhedens filnavn.

dmesg

I eksemplet ovenfor ser du VirtualBox i producentsektionen, da værten er en Linux-distribution, der kører på VirtualBox. Her vil producentens navn ændre sig afhængigt af den konverter, du bruger. Du kan også se, at den serielle konverter, du bruger, er knyttet til systemet med et navn, som f.eks ttyUSB0.

instagram viewer

Du kan bruge den serielle konverter, der genkendes af dit system via enhedsfilen /dev/ttyUSB0. Afhængigt af den distribution, du bruger, oprettes enhedsfilen automatisk under /dev mappe, der viser hoved-, mindre- og enhedstyper. For USB-seriekonvertere er navngivningsskemaet normalt ttyUSB0, ttyUSB1, og ttyUSBX for hver simultan oversættelse.

Hvis du fjerner og genindsætter USB-seriekonverteren, mens den er i brug af et program, udsteder systemet et nyt nummer til enheden.

Adgangsautorisation på serielle enheder

Standardadgangsrettighederne for monterede USB-konverterenhedsfiler er normalt som følger:

ls -l /dev/ttyUSB0

# Output
crw-rw 1 root-opkald 188, 46. juli 17 15:34 /dev/ttyUSB0

Ved at undersøge ovenstående output kan du fortælle:

  • Brevet c i begyndelsen af ​​linjen angiver, at dette er en tegnbaseret enhed
  • Filejeren er root-brugeren og brugeren har læse- og skriverettigheder
  • Gruppeejeren af ​​filen er opkald gruppe og brugere inkluderet i denne gruppe har også læse- og skrivetilladelser
  • Resten af ​​brugerne har ingen læse- og skriverettigheder til filen

Hvis du i øjeblikket er logget ind som en almindelig bruger, som ikke er medlem af opkaldsgruppen, kan du ikke læse og skrive til USB-seriekonverteren. For at løse dette problem skal du enten gøre den nuværende bruger til medlem af opkaldsgruppen eller redigere udev regelfiler på dit system.

Du kan bruge den første teknik for nemheds skyld. For at begynde skal du bruge id kommando for at bestemme, hvilke grupper din bruger tilhører:

id

Tilføj din bruger til gruppen ved hjælp af adduser eller brugermod kommando:

# For Fedora
sudo usermod -aG opkald BRUGERNAVN

# Til Debian
sudo adduser USERNAME opkald

# For Arch
sudo usermod -a -G uucp BRUGERNAVN

Gruppemedlemskabet proceduren er nu afsluttet. Systemet kontrollerer dog gruppemedlemskabsoplysninger under det første login-trin i grafiske sessioner og giver dem derefter til alle kørende processer.

Som et resultat skal du logge ud af den aktuelle grafiske session og derefter logge ind igen eller genstart din maskine for at ændringerne træder i kraft. Du vil have læse-/skriveadgang til den serielle konverterenhed, når du har afsluttet denne handling.

Sådan opretter du forbindelse til serielle konsoller på Linux

Når du har brug for adgang til en computer eller netværkskonsol, kan du henvise til serielle konsolapplikationer. Normalt kræver du adgang over SSH for at gøre det. Men fra et software- og hardwaresynspunkt er det i nogle tilfælde også muligt at få adgang til konsollen ved kun at bruge serielle porte.

Du finder oftest disse typer eksempler på ældre computere. Nedenfor er nogle af de bedste serielle konsolapplikationer, der vil fungere for dig.

Bruger Minicom

Du kan installere Minicom, en gammel, men stadig fungerende applikation på dit system som følger:

# På Fedora, CentOS og RHEL
sudo yum installere minicom

# På Debian og Ubuntu
sudo apt- installere minicom

# På Arch Linux
sudo snap installere minicom

Når du starter applikationen for første gang, vil den forsøge at åbne en enhedsfil som f.eks /dev/modem som standard. Den afsluttes, når den ikke kan finde filen. For at overvinde dette problem kan du starte programmets indstillingsskærm direkte med -s parameter:

minicom -s

Du kan indstille enhedens navn ved at trykke på EN og den serielle porthastighed ved at trykke på E nøgle. Så når du afslutter med Afslut, kan du bruge den tilsvarende serielle port.

Mens du er på programmets hovedskærm, kan du vende tilbage til konfigurationsskærmen med Ctrl + A + O, afslutte applikationen med Ctrl + A + X, aktiver linjeombrydningstilstanden med Ctrl + A + W, og få hjælp til andre genveje med Ctrl + A + Z.

Brug af GTKTerm

Minicom bruges generelt af avancerede Linux-brugere og anbefales derfor ikke til begyndere. Linux-nyankomne kan installere GTKTerm, en grafisk seriel terminalemulator til Linux. Du kan installere programmet på dit system ved hjælp af følgende kommandoer:

# På Fedora, CentOS og RHEL
sudo dnf -y installere gtkterm

# På Debian og Ubuntu
sudo apt- installer gtkterm

# På Arch Linux
yay -S gtkterm

Når du starter appen, skal du indstille enhedsnavnet og hastighedsparametrene via Konfiguration > Port menu som følger:

Gem indstillingerne som standard for at lette senere brug.

Brug af skærm

Hvis du er bekendt med skærm til multi-terminal administration, vil du vide, at du også kan bruge den til seriel portadgang. Her er kommandoerne til at installere det:

# På Fedora, CentOS og RHEL
sudo dnf -y installere skærmen

# På Debian, Ubuntu og Linux Mint
sudo apt- -y installationsskærm

# Brug Snap til andre distributioner
sudo snap installere skærmen -- klassisk

Efter installationen kan du køre en kommando som denne for at oprette forbindelse til en seriel konsol:

skærm /dev/ttyUSB0 115500

Nu kan du oprette en seriel portforbindelse på Linux

At kunne få adgang til dit Linux-system ved hjælp af den serielle port er en meget nyttig funktion, især når du ikke ønsker at tilslutte en skærm til SBC (Session Border Controller).

Da den serielle konsolautorisation er indbygget i Linux-kernen på kompileringstidspunktet, bør du i det mindste have en grundlæggende forståelse af Linux-kernen og dens funktion.