Един от незаменимите елементи, когато работите върху проекти за вграден Linux, е достъпът до вашето устройство чрез интерфейса на серийната конзола. За целта компютърът, на който разработвате вградена система, трябва да има сериен порт. Въпреки това много малко компютри днес имат сериен порт и затова вместо това използваме преобразуватели от USB към сериен порт.
В края ще разберете подробно какво представляват серийните конзоли и как работят на Linux.
Настройване на USB към сериен конвертор
Почти всеки USB сериен конвертор, който можете да намерите на пазара, се разпознава автоматично от Linux. Включете произволен USB конвертор във вашия компютър и използвайте dmesg команда, за да разберете името на файла на устройството.
dmesg
В примера по-горе виждате VirtualBox в раздела за производителя, тъй като хостът е дистрибуция на Linux, работеща на VirtualBox. Тук името на производителя ще се промени в зависимост от конвертора, който използвате. Можете също така да видите, че серийният конвертор, който използвате, е прикрепен към системата с име, като напр ttyUSB0.
Можете да използвате серийния конвертор, разпознат от вашата система чрез файла на устройството /dev/ttyUSB0. В зависимост от дистрибуцията, която използвате, файлът на устройството се създава автоматично под /dev директория, показваща основни, второстепенни и типове устройства. За USB серийни конвертори схемата за именуване обикновено е ttyUSB0, ttyUSB1, и ttyUSBX за всеки симултанен превод.
Ако премахнете и поставите отново USB сериен конвертор, докато се използва от приложение, системата издава нов номер на устройството.
Разрешение за достъп на серийни устройства
Привилегиите за достъп по подразбиране на монтирани файлове на USB конвертор обикновено са както следва:
ls -l /dev/ttyUSB0
# Изход
crw-rw 1 root dialout 188, 46 юли 17 15:34 /dev/ttyUSB0
При изследване на горния резултат можете да кажете:
- Писмото ° С в началото на реда означава, че това е устройство, базирано на знаци
- Собственикът на файла е root потребител и потребителят има привилегии за четене и писане
- Груповият собственик на файла е набиране група и потребителите, включени в тази група, също имат разрешения за четене и запис
- Останалите потребители нямат права за четене и писане на файла
Ако в момента сте влезли като обикновен потребител, който не е член на групата за набиране, не можете да четете и пишете в USB сериен конвертор. За да разрешите този проблем, трябва или да направите текущия потребител член на групата за набиране, или да редактирате udev файлове с правила във вашата система.
Можете да използвате първата техника за удобство. За да започнете, използвайте документ за самоличност команда, за да определите към кои групи принадлежи вашият потребител:
документ за самоличност
Добавете вашия потребител към групата, като използвате adduser или потребителски мод команда:
# За Fedora
sudo usermod -aG dialout ПОТРЕБИТЕЛСКО ИМЕ# За Debian
sudo adduser USERNAME dialout
# За арх
sudo usermod -a -G uucp ПОТРЕБИТЕЛСКО ИМЕ
Членството в групата процедурата вече е завършена. Въпреки това системата проверява информацията за членството в групата по време на първата стъпка за влизане в графични сесии и след това я предоставя на всички работещи процеси.
В резултат на това трябва да излезете от текущата графична сесия и след това да влезете отново или рестартирайте машината си за да влязат в сила промените. Ще имате достъп за четене/запис на устройството за сериен преобразувател след приключване на тази операция.
Как да се свържете със серийни конзоли на Linux
Когато имате нужда от достъп до компютър или мрежова конзола, можете да се обърнете към приложения за серийна конзола. Обикновено ви е необходим достъп през SSH, за да го направите. Въпреки това, от гледна точка на софтуера и хардуера, в някои случаи е възможно също така да получите достъп до конзолата, като използвате само серийни портове.
Ще намерите този тип примери най-често на по-стари компютри. По-долу са някои от най-добрите приложения за серийна конзола, които ще работят за вас.
Използване на Minicom
Можете да инсталирате Minicom, старо, но все още работещо приложение на вашата система, както следва:
# На Fedora, CentOS и RHEL
sudo yum Инсталирай миником# На Debian и Ubuntu
sudo apt-получавам инсталирайте minicom
# В Arch Linux
sudo snap Инсталирай миником
Когато стартирате приложението за първи път, то ще се опита да отвори файл на устройство, като напр /dev/modem по подразбиране. Прекратява се, когато не може да намери файла. За да преодолеете този проблем, можете директно да стартирате екрана с настройки на приложението с -с параметър:
миником -с
Можете да зададете името на устройството, като натиснете А и скоростта на серийния порт, като натиснете д ключ. След това, когато излезете с Изход, можете да използвате съответния сериен порт.
Докато сте на главния екран на приложението, можете да се върнете към екрана за конфигурация с Ctrl + A + O, излезте от приложението с Ctrl + A + X, активирайте режима за пренасяне на линии с Ctrl + A + Wи получете помощ за други преки пътища с Ctrl + A + Z.
Използване на GTKTerm
Minicom обикновено се използва от напреднали потребители на Linux и следователно не се препоръчва за начинаещи. Новодошлите в Linux могат да инсталират GTKTerm, графичен емулатор на сериен терминал за Linux. Можете да инсталирате приложението на вашата система, като използвате следните команди:
# На Fedora, CentOS и RHEL
sudo dnf -y Инсталирай gtkterm# На Debian и Ubuntu
sudo apt-получавам инсталирайте gtkterm
# В Arch Linux
yy -S gtkterm
Когато стартирате приложението, ще трябва да зададете името на устройството и параметрите на скоростта чрез Конфигурация > Порт меню, както следва:
Запазете настройките по подразбиране, за да улесните по-късната употреба.
Използване на екрана
Ако сте запознати с екрана за многотерминално управление, ще знаете, че можете да го използвате и за достъп до сериен порт. Ето командите за инсталиране:
# На Fedora, CentOS и RHEL
sudo dnf -y Инсталирай екран# На Debian, Ubuntu и Linux Mint
sudo apt-получавам -y екран за инсталиране
# Използвайте Snap за други дистрибуции
sudo snap Инсталирай екран -- класически
След инсталирането можете да изпълните команда като тази, за да се свържете със серийна конзола:
екран /dev/ttyUSB0 115500
Сега можете да установите връзка със сериен порт на Linux
Възможността за достъп до вашата Linux система чрез серийния порт е много полезна функция, особено когато не искате да прикачите монитор към SBC (граничен контролер на сесията).
Тъй като оторизацията на серийната конзола е вградена в ядрото на Linux по време на компилирането, трябва да имате поне основни познания за ядрото на Linux и неговата работа.