Arch Linuxでシリアルコンソール 2
以前、OS側の設定によるシリアルコンソールの設定を書きましたが、シリアルコンソールでgrubもいじれるようにしたくなりました。
grubとOS両方の設定が必要らしいのですが、grubの設定だけでOSにも入ることができました。
http://www.nakanokun.com/wordpress/?p=188
grubの設定
変更
追加
GRUB configファイルの再生成
クライアント側
Linuxから接続する場合、cuかscreenを使用します。
Arch Linuxでは /dev/tty* の所有者が root:tty になっているので、sudoで実行するか利用したいユーザをttyグループに追加する必要があります。
Windowsから接続する場合、TeraTermなどのターミナルソフトを使用します。
Windows XPまではハイパーターミナルという標準のターミナルエミュレータから接続できたようですが、Vista以降には入っていません。
Tera Term > New connection > Serial > Port でポートを指定することで接続できます。
OS側でもシリアルコンソールを受けるように設定していると挙動がおかしくなったので無効にします。
Arch LinuxではGRUB2はGRUB、GRUB1はGRUB Legacyと呼ぶようです。
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と呼ぶようです。
コメント
コメントを投稿