Een van de onmisbare elementen bij het werken aan embedded Linux-projecten is toegang tot uw apparaat via de seriële console-interface. Hiervoor moet de computer waarop je een embedded systeem ontwikkelt een seriële poort hebben. Tegenwoordig hebben echter maar heel weinig computers een seriële poort en daarom gebruiken we in plaats daarvan USB-naar-serieel-converters.

Aan het einde heb je een gedetailleerd begrip van wat seriële consoles zijn en hoe ze werken op Linux.

De USB-naar-serieel-converter instellen

Bijna elke USB-seriële converter die u op de markt kunt vinden, wordt automatisch herkend door Linux. Sluit een willekeurige USB-converter aan op uw computer en gebruik de dmesg commando om de bestandsnaam van het apparaat te achterhalen.

dmesg

In het bovenstaande voorbeeld ziet u VirtualBox in het gedeelte met de fabrikant, aangezien de host een Linux-distributie is die op VirtualBox draait. Hier verandert de naam van de fabrikant afhankelijk van de converter die u gebruikt. U kunt ook zien dat de seriële converter die u gebruikt, op het systeem is aangesloten met een naam, zoals:

instagram viewer
ttyUSB0.

U kunt de seriële converter gebruiken die door uw systeem wordt herkend via het apparaatbestand /dev/ttyUSB0. Afhankelijk van de distributie die u gebruikt, wordt het apparaatbestand automatisch aangemaakt onder de /dev directory, met hoofd-, secundaire en apparaattypen. Voor USB seriële converters is het naamgevingsschema meestal: ttyUSB0, ttyUSB1, en ttyUSBX voor elke simultaanvertaling.

Als u de USB-seriële converter verwijdert en opnieuw plaatst terwijl deze door een toepassing wordt gebruikt, geeft het systeem een ​​nieuw nummer aan het apparaat.

Toegangsautorisatie op seriële apparaten

De standaard toegangsrechten van gekoppelde USB-converterapparaatbestanden zijn meestal als volgt:

ls -l /dev/ttyUSB0

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

Als u de bovenstaande uitvoer bekijkt, kunt u het volgende zien:

  • De brief c aan het begin van de regel geeft aan dat dit een op tekens gebaseerd apparaat is
  • De bestandseigenaar is de rootgebruiker en de gebruiker heeft lees- en schrijfrechten
  • De groepseigenaar van het bestand is de uitbellen groep en gebruikers in deze groep hebben ook lees- en schrijfrechten
  • De rest van de gebruikers heeft geen lees- en schrijfrechten op het bestand

Als u momenteel bent aangemeld als een gewone gebruiker, die geen lid is van de dialout-groep, kunt u niet lezen en schrijven naar de USB-serieel converter. Om dit probleem op te lossen, moet u de huidige gebruiker lid maken van de uitbelgroep of de udev rule-bestanden op uw systeem.

U kunt voor het gemak de eerste techniek gebruiken. Gebruik om te beginnen de ID kaart commando om te bepalen tot welke groepen uw gebruiker behoort:

ID kaart

Voeg uw gebruiker toe aan de groep met behulp van de Voeg gebruiker toe of gebruikersmod opdracht:

# Voor Fedora
sudo usermod -aG dialout GEBRUIKERSNAAM

# Voor Debian
sudo adduser USERNAME dialout

# Voor Arch
sudo usermod -a -G uucp GEBRUIKERSNAAM

Het groepslidmaatschap procedure is nu voltooid. Het systeem controleert echter de informatie over het groepslidmaatschap tijdens de eerste inlogstap in grafische sessies en geeft deze vervolgens aan alle lopende processen.

Als gevolg hiervan moet u zich afmelden bij de huidige grafische sessie en vervolgens weer inloggen of herstart je machine om de wijzigingen van kracht te laten worden. U hebt lees-/schrijftoegang tot het seriële converterapparaat nadat u deze bewerking hebt voltooid.

Verbinding maken met seriële consoles op Linux

Als u toegang tot een computer of netwerkconsole nodig hebt, kunt u de seriële consoletoepassingen raadplegen. Meestal hebt u hiervoor toegang via SSH nodig. Vanuit software- en hardware-oogpunt is het in sommige gevallen echter ook mogelijk om toegang te krijgen tot de console met alleen seriële poorten.

U vindt dit soort voorbeelden het vaakst op oudere computers. Hieronder vindt u enkele van de beste seriële console-applicaties die voor u werken.

Minicom gebruiken

U kunt Minicom, een oude maar nog steeds werkende applicatie, als volgt op uw systeem installeren:

# Op Fedora, CentOS en RHEL
sudo jammie installeren minicom

# Op Debian en Ubuntu
sudo apt-krijgen minicom installeren

# Op Arch Linux
sudo snap installeren minicom

Wanneer u de toepassing voor de eerste keer start, zal deze proberen een apparaatbestand te openen, zoals: /dev/modem standaard. Het stopt wanneer het het bestand niet kan vinden. Om dit probleem op te lossen, kunt u het instellingenscherm van de toepassing direct starten met de -s parameter:

minicom -s

U kunt de apparaatnaam instellen door op de te drukken EEN toets en de snelheid van de seriële poort door op de E sleutel. Als je dan afsluit met Uitgang, kunt u de bijbehorende seriële poort gebruiken.

In het hoofdscherm van de applicatie kunt u terugkeren naar het configuratiescherm met Ctrl + A + O, sluit de applicatie af met Ctrl + A + X, activeer de regelomloopmodus met Ctrl + A + Wen krijg hulp bij andere sneltoetsen met Ctrl + A + Z.

GTKTerm gebruiken

Minicom wordt over het algemeen gebruikt door gevorderde Linux-gebruikers en wordt daarom niet aanbevolen voor beginners. Linux-nieuwkomers kunnen GTKTerm installeren, een grafische seriële terminalemulator voor Linux. U kunt de applicatie op uw systeem installeren met behulp van de volgende opdrachten:

# Op Fedora, CentOS en RHEL
sudo dnf -y installeren gtkterm

# Op Debian en Ubuntu
sudo apt-krijgen installeer gtkterm

# Op Arch Linux
yay -S gtkterm

Wanneer u de app start, moet u de apparaatnaam en snelheidsparameters instellen via de Configuratie > Poort menu als volgt:

Bewaar de instellingen als standaard om later gebruik te vergemakkelijken.

Scherm gebruiken

Als u bekend bent met scherm voor beheer van meerdere terminals, weet u dat u het ook kunt gebruiken voor toegang tot seriële poorten. Hier zijn de opdrachten om het te installeren:

# Op Fedora, CentOS en RHEL
sudo dnf -y installeren scherm

# Op Debian, Ubuntu en Linux Mint
sudo apt-krijgen -y installeer scherm

# Gebruik Snap voor andere distributies
sudo snap installeren scherm --klassiek

Na de installatie kun je een commando als dit uitvoeren om verbinding te maken met een seriële console:

scherm /dev/ttyUSB0 115500

Nu kunt u een seriële poortverbinding tot stand brengen op Linux

Toegang hebben tot uw Linux-systeem via de seriële poort is een zeer nuttige functie, vooral wanneer u geen monitor op de SBC (Session Border Controller) wilt aansluiten.

Aangezien de seriële console-autorisatie is ingebouwd in de Linux-kernel op het moment van compilatie, moet je op zijn minst een basiskennis hebben van de Linux-kernel en zijn werking.