Jedan od neizostavnih elemenata pri radu na ugrađenim Linux projektima je pristup vašem uređaju putem sučelja serijske konzole. Za ovo, računalo na kojem razvijate ugrađeni sustav mora imati serijski priključak. Međutim, danas vrlo malo računala ima serijski priključak i zato umjesto njega koristimo pretvarače USB-a u serijski.
Na kraju ćete imati detaljno razumijevanje o tome što su serijske konzole i kako rade na Linuxu.
Postavljanje pretvarača USB-a u serijski
Linux automatski prepoznaje gotovo svaki USB serijski pretvarač koji možete pronaći na tržištu. Priključite bilo koji USB pretvarač u svoje računalo i koristite dmesg naredba za pronalaženje naziva datoteke uređaja.
dmesg
U gornjem primjeru vidite VirtualBox u odjeljku proizvođača, jer je host distribucija Linuxa koja radi na VirtualBoxu. Ovdje će se naziv proizvođača promijeniti ovisno o pretvaraču koji koristite. Također možete vidjeti da je serijski pretvarač koji koristite pripojen sustavu s imenom, kao što je ttyUSB0.
Možete koristiti serijski pretvarač koji vaš sustav prepoznaje putem datoteke uređaja
/dev/ttyUSB0. Ovisno o distribuciji koju koristite, datoteka uređaja automatski se stvara pod /dev imenik, koji prikazuje glavne, sporedne i vrste uređaja. Za USB serijske pretvarače, shema imenovanja obično je ttyUSB0, ttyUSB1, i ttyUSBX za svaki simultani prijevod.Ako uklonite i ponovno umetnite USB serijski pretvarač dok ga aplikacija koristi, sustav izdaje novi broj uređaju.
Autorizacija pristupa na serijskim uređajima
Zadane povlastice pristupa datotekama montiranog USB pretvarača obično su sljedeće:
ls -l /dev/ttyUSB0
# Izlaz
crw-rw 1 korijenski poziv 188, 46. srpnja 17. 15:34 /dev/ttyUSB0
Ispitujući gornji rezultat, možete reći:
- pismo c na početku retka označava da se radi o uređaju koji se temelji na znakovima
- Vlasnik datoteke je root korisnik i korisnik ima privilegije čitanja i pisanja
- Grupni vlasnik datoteke je dialout grupa i korisnici uključeni u ovu grupu također imaju dozvole za čitanje i pisanje
- Ostali korisnici nemaju prava čitanja i pisanja datoteke
Ako ste trenutačno prijavljeni kao redoviti korisnik, koji nije član dialout grupe, ne možete čitati i pisati na USB serijski pretvarač. Da biste riješili ovaj problem, morate trenutnog korisnika učiniti članom grupe za pozivanje ili urediti udev datoteke pravila na vašem sustavu.
Možete koristiti prvu tehniku radi praktičnosti. Za početak upotrijebite iskaznica naredba za određivanje kojim grupama vaš korisnik pripada:
iskaznica
Dodajte svog korisnika u grupu pomoću adduser ili korisnički mod naredba:
# Za Fedoru
sudo usermod -aG dialout KORISNIČKO IME# Za Debian
sudo adduser USERNAME dialout
# Za Arch
sudo usermod -a -G uucp KORISNIČKO IME
Članstvo u grupi postupak je sada završen. Međutim, sustav provjerava informacije o članstvu u grupi tijekom prvog koraka prijave u grafičkim sesijama i zatim ih daje svim pokrenutim procesima.
Kao rezultat toga, morate se odjaviti iz trenutne grafičke sesije i zatim se ponovno prijaviti ili ponovno pokrenite svoj stroj kako bi izmjene stupile na snagu. Imat ćete pristup za čitanje/pisanje na uređaj serijskog pretvarača nakon završetka ove operacije.
Kako se spojiti na serijske konzole na Linuxu
Kada trebate pristup računalu ili mrežnoj konzoli, možete se obratiti aplikacijama serijske konzole. Obično vam je za to potreban pristup putem SSH-a. Međutim, sa softverske i hardverske točke gledišta, u nekim slučajevima također je moguće pristupiti konzoli koristeći samo serijske priključke.
Ovakve ćete primjere najčešće pronaći na starijim računalima. Ispod su neke od najboljih aplikacija za serijsku konzolu koje će vam odgovarati.
Korištenje Minicoma
Možete instalirati Minicom, staru ali još uvijek funkcionalnu aplikaciju na svoj sustav na sljedeći način:
# Na sustavima Fedora, CentOS i RHEL
sudo njam instalirati minicom# Na Debianu i Ubuntuu
sudo apt-dobiti instalirati minicom
# Na Arch Linuxu
sudo snap instalirati minicom
Kada prvi put pokrenete aplikaciju, ona će pokušati otvoriti datoteku uređaja kao što je /dev/modem prema zadanim postavkama. Završava se kada ne može pronaći datoteku. Da biste prevladali ovaj problem, možete izravno pokrenuti zaslon postavki aplikacije s -s parametar:
minicom -s
Možete postaviti naziv uređaja pritiskom na A tipku, a brzinu serijskog priključka pritiskom na E ključ. Onda kada izađete sa Izlaz, možete koristiti odgovarajući serijski priključak.
Dok ste na glavnom zaslonu aplikacije, možete se vratiti na konfiguracijski zaslon pomoću Ctrl + A + O, izađite iz aplikacije pomoću Ctrl + A + X, aktivirajte način prijelaza redaka pomoću Ctrl + A + Wi potražite pomoć s drugim prečacima s Ctrl + A + Z.
Korištenje GTKTerma
Minicom općenito koriste napredni korisnici Linuxa i stoga se ne preporučuje početnicima. Početnici u Linuxu mogu instalirati GTKTerm, grafički emulator serijskog terminala za Linux. Aplikaciju možete instalirati na svoj sustav pomoću sljedećih naredbi:
# Na sustavima Fedora, CentOS i RHEL
sudo dnf -y instalirati gtkterm# Na Debianu i Ubuntuu
sudo apt-dobiti instalirajte gtkterm
# Na Arch Linuxu
yay -S gtkterm
Kada pokrenete aplikaciju, morat ćete postaviti naziv uređaja i parametre brzine putem Konfiguracija > Priključak izbornik kako slijedi:
Spremite postavke kao zadane za lakšu kasniju upotrebu.
Korištenje zaslona
Ako ste upoznati sa zaslonom za upravljanje više terminala, znali biste da ga možete koristiti i za pristup serijskom priključku. Evo naredbi za instalaciju:
# Na sustavima Fedora, CentOS i RHEL
sudo dnf -y instalirati zaslon# Na Debianu, Ubuntuu i Linux Mintu
sudo apt-dobiti -y instalacijski zaslon
# Koristite Snap za druge distribucije
sudo snap instalirati zaslon --klasično
Nakon instalacije, možete pokrenuti naredbu poput ove za spajanje na serijsku konzolu:
ekran /dev/ttyUSB0 115500
Sada možete uspostaviti vezu serijskog porta na Linuxu
Mogućnost pristupa vašem Linux sustavu pomoću serijskog porta vrlo je korisna značajka, posebno kada ne želite priključiti monitor na SBC (Session Border Controller).
Budući da je autorizacija serijske konzole ugrađena u Linux kernel u vrijeme kompilacije, trebali biste imati barem osnovno razumijevanje Linux kernela i njegovog rada.