Arch Linuxでシリアルコンソール 2

以前、OS側の設定によるシリアルコンソールの設定を書きましたが、シリアルコンソールでgrubもいじれるようにしたくなりました。

grubとOS両方の設定が必要らしいのですが、grubの設定だけでOSにも入ることができました。

http://www.nakanokun.com/wordpress/?p=188




grubの設定
$ sudo vim /etc/default/grub

変更
GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600"

追加
GRUB_TERMINAL="serial"
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

 




GRUB configファイルの再生成
$ sudo grub-mkconfig -o /boot/grub/grub.cfg

 




クライアント側

Linuxから接続する場合、cuかscreenを使用します。
$ sudo cu -l /dev/ttyS0 -s 9600

$ sudo screen /dev/ttyS0 9600

Arch Linuxでは /dev/tty* の所有者が root:tty になっているので、sudoで実行するか利用したいユーザをttyグループに追加する必要があります。
$ sudo gpasswd -a ユーザ名 tty

 

Windowsから接続する場合、TeraTermなどのターミナルソフトを使用します。

Windows XPまではハイパーターミナルという標準のターミナルエミュレータから接続できたようですが、Vista以降には入っていません。

Tera Term > New connection > Serial > Port でポートを指定することで接続できます。

 




OS側でもシリアルコンソールを受けるように設定していると挙動がおかしくなったので無効にします。
$ sudo systemctl stop getty@ttyS0
$ sudo systemctl disable getty@ttyS0

 




Arch LinuxではGRUB2はGRUB、GRUB1はGRUB Legacyと呼ぶようです。

 

コメント

このブログの人気の投稿

fontconfigの設定

UEFIのブートオーダーを一時的に変更する

VLCでBlu-rayを再生