Terminál přes sériový port na Linux a GRUB |
#287 |
V tomto příkladu uvažujeme, že nastavení provádíme pro sériový port
/dev/ttyS0
s rychlostí přenosu 115200 Bd, délka slova
8 bitů, bez parity a s jedním stop bitem.
Seznam dostupných sériových portů:
dmesg | grep ttyS
Vše děláme jako root:
sudo -i
Upravit soubor /etc/default/grub
:
GRUB_DEFAULT=0
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=\`lsb_release -i -s 2> /dev/null || echo Debian\`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
--unit=0
v nastavení GRUB_SERIAL_COMMAND
může
mít hodnoty 0 až 3, s tím, že tato hodnota má ovlivňovat pořadí
sériového portu. Většinou funguje vše s hodnotou 0
.
Uděláme update /boot/grub/grub.cfg
:
update-grub
nebo
grub-mkconfig -o /boot/grub/grub.cfg
a
reboot
Pokud je vše správně nastaveno, tak po restartu počítače by se měl zobrazovat průběh bootování Linuxu…
Možné komplikace:
- Pokud se v terminálu nezobrazuje menu zavaděče GRUB (stejně jako na
monitoru), tak je možné že to blokuje nastavení BIOS počítače. Jedná se
o nastavení s názvem
Secure Boot
. Po vypnutíSecure Boot
v BIOS počítače by se mělo v terminálu po startu počítače objevovat i menu zavaděče GRUB. - Pokud se po naběhnutí Linuxu v terminálu neobjeví
login
uživatele, potom neběží služba getty pro sériový port. Toto nastavíte příkazem:
sudo systemctl enable serial-getty@ttyS0.service
a
sudo reboot
Upozornění: V případě, že máte nastaven přístup na Linux pomocí sériového portu a ten se fyzicky z počítače odstraní (např. změnou nastavení v BIOS), tak to pravděpodobně způsobí zatuhnutí bootování Linuxu. Pokud taková situace nastane, tak je možnost upravit parametry spuštění Linuxu v GRUB.