Et av de uunnværlige elementene når du jobber med innebygde Linux-prosjekter er å få tilgang til enheten din via det serielle konsollgrensesnittet. For dette må datamaskinen du utvikler et innebygd system på ha en seriell port. Imidlertid har svært få datamaskiner i dag en seriell port, og det er derfor vi bruker USB til seriell omformere i stedet.
Mot slutten vil du ha en detaljert forståelse av hva seriekonsoller er og hvordan de fungerer på Linux.
Sette opp USB til seriell omformer
Nesten alle USB-serieomformere du kan finne på markedet gjenkjennes automatisk av Linux. Koble en hvilken som helst USB-omformer til datamaskinen og bruk dmesg kommando for å finne ut filnavnet til enheten.
dmesg
I eksemplet ovenfor ser du VirtualBox i produsentdelen, siden verten er en Linux-distribusjon som kjører på VirtualBox. Her vil produsentens navn endres avhengig av omformeren du bruker. Du kan også se at serieomformeren du bruker er festet til systemet med et navn, som f.eks ttyUSB0.
Du kan bruke serieomformeren som gjenkjennes av systemet via enhetsfilen
/dev/ttyUSB0. Avhengig av distribusjonen du bruker, opprettes enhetsfilen automatisk under /dev katalog, som viser hoved-, mindre- og enhetstyper. For USB-serieomformere er navneskjemaet vanligvis ttyUSB0, ttyUSB1, og ttyUSBX for hver simultanoversettelse.Hvis du fjerner og setter inn USB-serieomformeren mens den er i bruk av en applikasjon, utsteder systemet et nytt nummer til enheten.
Tilgangsautorisasjon på serielle enheter
Standard tilgangsrettigheter for monterte USB-konverteringsenhetsfiler er vanligvis som følger:
ls -l /dev/ttyUSB0
# Utgang
crw-rw 1 rotoppringing 188, 46. juli 17 15:34 /dev/ttyUSB0
Når du undersøker utgangen ovenfor, kan du fortelle:
- Brevet c på begynnelsen av linjen angir at dette er en tegnbasert enhet
- Fileieren er rotbrukeren og brukeren har lese- og skriverettigheter
- Gruppeeieren av filen er oppringing gruppen og brukere inkludert i denne gruppen har også lese- og skrivetillatelser
- Resten av brukerne har ingen lese- og skriverettigheter på filen
Hvis du for øyeblikket er pålogget som en vanlig bruker, som ikke er medlem av oppringingsgruppen, kan du ikke lese og skrive til USB-seriekonverteren. For å løse dette problemet må du enten gjøre gjeldende bruker til medlem av oppringningsgruppen eller redigere udev regelfiler på systemet ditt.
Du kan bruke den første teknikken for enkelhets skyld. For å begynne, bruk id kommando for å bestemme hvilke grupper brukeren din tilhører:
id
Legg til brukeren din i gruppen ved å bruke adduser eller brukermod kommando:
# For Fedora
sudo usermod -aG oppringning BRUKERNAVN# For Debian
sudo adduser USERNAME oppringing
# For Arch
sudo usermod -a -G uucp BRUKERNAVN
Gruppemedlemskapet prosedyren er nå fullført. Systemet sjekker imidlertid gruppemedlemskapsinformasjon under det første påloggingstrinnet i grafiske økter og gir den deretter til alle prosesser som kjører.
Som et resultat må du logge ut av gjeldende grafiske sesjon og deretter logge på igjen eller start maskinen på nytt for at endringene skal tre i kraft. Du vil ha lese-/skrivetilgang til seriekonverteringsenheten etter å ha fullført denne operasjonen.
Hvordan koble til seriekonsoller på Linux
Når du trenger tilgang til en datamaskin eller nettverkskonsoll, kan du referere til serielle konsollapplikasjoner. Vanligvis trenger du tilgang over SSH for å gjøre det. Men fra et programvare- og maskinvaresynspunkt er det i noen tilfeller også mulig å få tilgang til konsollen ved å bruke bare serielle porter.
Du finner denne typen eksempler oftest på eldre datamaskiner. Nedenfor er noen av de beste seriekonsollapplikasjonene som vil fungere for deg.
Bruker Minicom
Du kan installere Minicom, en gammel, men fortsatt fungerende applikasjon på systemet ditt som følger:
# På Fedora, CentOS og RHEL
sudo nam installere minicom# På Debian og Ubuntu
sudo apt-få installer minicom
# På Arch Linux
sudo snap installere minicom
Når du starter applikasjonen for første gang, vil den prøve å åpne en enhetsfil som f.eks /dev/modem som standard. Den avsluttes når den ikke finner filen. For å løse dette problemet kan du starte programmets innstillingsskjerm direkte med -s parameter:
minicom -s
Du kan angi enhetsnavnet ved å trykke på EN og seriell porthastighet ved å trykke på E nøkkel. Så når du avslutter med Exit, kan du bruke den tilsvarende serieporten.
Mens du er på programmets hovedskjerm, kan du gå tilbake til konfigurasjonsskjermen med Ctrl + A + O, avslutter applikasjonen med Ctrl + A + X, aktiver linjebrytingsmodus med Ctrl + A + W, og få hjelp med andre snarveier med Ctrl + A + Z.
Bruker GTKTerm
Minicom brukes vanligvis av avanserte Linux-brukere og anbefales derfor ikke for nybegynnere. Linux-nykommere kan installere GTKTerm, en grafisk seriell terminalemulator for Linux. Du kan installere programmet på systemet ditt ved å bruke følgende kommandoer:
# På Fedora, CentOS og RHEL
sudo dnf -y installere gtkterm# På Debian og Ubuntu
sudo apt-få installer gtkterm
# På Arch Linux
yay -S gtkterm
Når du starter appen, må du angi enhetsnavn og hastighetsparametere via Konfigurasjon > Port menyen som følger:
Lagre innstillingene som standard for å lette senere bruk.
Bruker skjerm
Hvis du er kjent med skjerm for multiterminaladministrasjon, vet du at du også kan bruke den for tilgang til seriell port. Her er kommandoene for å installere den:
# På Fedora, CentOS og RHEL
sudo dnf -y installere skjerm# På Debian, Ubuntu og Linux Mint
sudo apt-få -y installasjonsskjerm
# Bruk Snap for andre distribusjoner
sudo snap installere skjerm --klassisk
Etter installasjonen kan du kjøre en kommando som denne for å koble til en seriell konsoll:
skjerm /dev/ttyUSB0 115500
Nå kan du opprette en seriell porttilkobling på Linux
Å kunne få tilgang til Linux-systemet ved hjelp av den serielle porten er en veldig nyttig funksjon, spesielt når du ikke ønsker å koble en skjerm til SBC (Session Border Controller).
Siden den serielle konsollautorisasjonen er innebygd i Linux-kjernen på kompileringstidspunktet, bør du ha minst en grunnleggende forståelse av Linux-kjernen og hvordan den fungerer.