Jedním z nepostradatelných prvků při práci na embedded linuxových projektech je přístup k vašemu zařízení přes rozhraní sériové konzoly. K tomu musí mít počítač, na kterém vyvíjíte vestavěný systém, sériový port. Avšak jen velmi málo počítačů má dnes sériový port, a proto místo něj používáme převodníky USB na sériový port.
Na konci budete podrobně rozumět tomu, co jsou sériové konzole a jak fungují na Linuxu.
Nastavení převodníku USB na sériový port
Linux automaticky rozpozná téměř jakýkoli sériový převodník USB, který najdete na trhu. Zapojte libovolný USB převodník do počítače a použijte jej dmesg příkaz ke zjištění názvu souboru zařízení.
dmesg
Ve výše uvedeném příkladu vidíte VirtualBox v sekci výrobce, protože hostitelem je distribuce Linuxu běžící na VirtualBoxu. Zde se název výrobce změní v závislosti na převodníku, který používáte. Můžete také vidět, že sériový převodník, který používáte, je připojen k systému s názvem, jako je např ttyUSB0.
Můžete použít sériový převodník rozpoznaný vaším systémem prostřednictvím souboru zařízení
/dev/ttyUSB0. V závislosti na distribuci, kterou používáte, se soubor zařízení automaticky vytvoří pod /dev adresář zobrazující hlavní, vedlejší a typy zařízení. U sériových převodníků USB je schéma pojmenování obvykle ttyUSB0, ttyUSB1, a ttyUSBX pro každý simultánní překlad.Pokud vyjmete a znovu vložíte sériový převodník USB, když je používán aplikací, systém vydá zařízení nové číslo.
Autorizace přístupu na sériových zařízeních
Výchozí přístupová oprávnění souborů připojeného zařízení USB převodníku jsou obvykle následující:
ls -l /dev/ttyUSB0
# Výstup
crw-rw 1 root dialout 188, 46. července 17 15:34 /dev/ttyUSB0
Při zkoumání výše uvedeného výstupu můžete zjistit:
- Dopis C na začátku řádku označuje, že se jedná o znakové zařízení
- Vlastníkem souboru je uživatel root a uživatel má oprávnění ke čtení a zápisu
- Vlastníkem skupiny souboru je vytáčení skupina a uživatelé v této skupině mají také oprávnění ke čtení a zápisu
- Zbytek uživatelů nemá žádná práva pro čtení a zápis do souboru
Pokud jste aktuálně přihlášeni jako běžný uživatel, který není členem vytáčecí skupiny, nemůžete číst a zapisovat do sériového převodníku USB. Chcete-li tento problém vyřešit, musíte aktuálního uživatele učinit členem vytáčecí skupiny nebo upravit skupinu udev soubory pravidel ve vašem systému.
Pro pohodlí můžete použít první techniku. Chcete-li začít, použijte id příkaz k určení, do kterých skupin váš uživatel patří:
id
Přidejte svého uživatele do skupiny pomocí přidat uživatele nebo usermod příkaz:
# Pro Fedoru
sudo usermod -aG dialout USERNAME# Pro Debian
sudo adduser USERNAME dialout
# Pro Arch
sudo usermod -a -G uucp USERNAME
Členství ve skupině postup je nyní dokončen. Systém však kontroluje informace o členství ve skupině během prvního kroku přihlášení v grafických relacích a poté je poskytuje všem běžícím procesům.
V důsledku toho se musíte odhlásit z aktuální grafické relace a poté se znovu přihlásit nebo restartujte svůj stroj aby se změny projevily. Po dokončení této operace budete mít přístup pro čtení/zápis do zařízení sériového převodníku.
Jak se připojit k sériovým konzolím v systému Linux
Pokud potřebujete přístup k počítači nebo síťové konzole, můžete se obrátit na aplikace sériové konzoly. Obvykle k tomu potřebujete přístup přes SSH. Ze softwarového a hardwarového hlediska je však v některých případech také možné ke konzoli přistupovat pouze pomocí sériových portů.
Tyto typy příkladů najdete nejčastěji na starších počítačích. Níže jsou uvedeny některé z nejlepších aplikací pro sériovou konzolu, které pro vás budou fungovat.
Pomocí Minicomu
Minicom, starou, ale stále fungující aplikaci, můžete do systému nainstalovat následovně:
# Na Fedoře, CentOS a RHEL
sudo mňam Nainstalujte minicom# Na Debianu a Ubuntu
sudo apt-dostat nainstalovat minicom
# Na Arch Linuxu
sudo snap Nainstalujte minicom
Při prvním spuštění se aplikace pokusí otevřít soubor zařízení jako např /dev/modem ve výchozím stavu. Ukončí se, když nemůže najít soubor. Chcete-li tento problém vyřešit, můžete přímo spustit obrazovku nastavení aplikace pomocí -s parametr:
minicom -s
Název zařízení můžete nastavit stisknutím tlačítka A a rychlost sériového portu stisknutím tlačítka E klíč. Když pak odejdete s Výstup, můžete použít odpovídající sériový port.
Na hlavní obrazovce aplikace se můžete vrátit na obrazovku konfigurace pomocí Ctrl + A + O, ukončete aplikaci pomocí Ctrl + A + X, aktivujte režim zalamování řádků pomocí Ctrl + A + Wa získat nápovědu k dalším zkratkám Ctrl + A + Z.
Pomocí GTKTerm
Minicom je obecně používán pokročilými uživateli Linuxu, a proto se nedoporučuje pro začátečníky. Nováčci v Linuxu si mohou nainstalovat GTKTerm, grafický emulátor sériového terminálu pro Linux. Aplikaci můžete do systému nainstalovat pomocí následujících příkazů:
# Na Fedoře, CentOS a RHEL
sudo dnf -y Nainstalujte gtkterm# Na Debianu a Ubuntu
sudo apt-dostat nainstalovat gtkterm
# Na Arch Linuxu
yay -S gtkterm
Když spustíte aplikaci, budete muset nastavit název zařízení a parametry rychlosti pomocí Konfigurace > Port menu takto:
Uložte nastavení jako výchozí pro usnadnění pozdějšího použití.
Pomocí obrazovky
Pokud znáte obrazovku pro správu více terminálů, víte, že ji můžete použít také pro přístup k sériovému portu. Zde jsou příkazy k instalaci:
# Na Fedoře, CentOS a RHEL
sudo dnf -y Nainstalujte obrazovka# Na Debianu, Ubuntu a Linux Mintu
sudo apt-dostat -y instalační obrazovka
# Použijte Snap pro jiné distribuce
sudo snap Nainstalujte obrazovka --klasický
Po instalaci můžete spustit následující příkaz pro připojení k sériové konzole:
obrazovka /dev/ttyUSB0 115500
Nyní můžete vytvořit připojení k sériovému portu v systému Linux
Možnost přístupu k systému Linux pomocí sériového portu je velmi užitečná funkce, zvláště když nechcete připojit monitor k SBC (Session Border Controller).
Protože autorizace sériové konzole je zabudována do jádra Linuxu v době kompilace, měli byste mít alespoň základní znalosti o jádru Linuxu a jeho fungování.