通常のパソコンのシリアルコンソールの設定
カーネルの起動パラメータを設定するのは Grub2 の役目です。カーネルの起動パラメータにシリアルコンソールの設定を追加しました。一緒に Grub2 もシリアルコンソールへ出力させる設定をしました。# vi /etc/default/grub
(カーネルの起動パラメータの設定)
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200"
(Grub の設定)
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Grub2 の設定を反映させます。
# update-grub
従来は /etc/inittab で設定していたシリアルコンソールを systemd に対応した方法へ変更しました。
# ln -s /lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service
# systemctl daemon-reload
# systemctl start serial-getty@ttyS0.service
# systemctl enable serial-getty@ttyS0.service
以上で設定終了です。別のパソコンからシリアルケーブルを接続して動作確認をしました。接続速度は Grub2 のところで設定した 115200bps です。
玄箱(Debian Jessie)のシリアルコンソールの設定
パソコンでのシリアルコンソールの設定を元に行いました。シリアル・ポートは、/dev/ttyS1 となります。そして玄箱では Grub2 を使用しておらず、u-boot での設定がそのままカーネルの起動パラメータとなります。以前に設定した内容で問題ありませんでした。なおシリアルコンソールの接続速は u-boot で設定した 57600bps です。設定は systemd に対応した部分だけです。
# ln -s /lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyS1.service
# systemctl daemon-reload
# systemctl start serial-getty@ttyS1.service
# systemctl enable serial-getty@ttyS1.service
上記の設定ですぐにシリアルコンソールへ出力が表示されました。
Debian GNU/Linux 8 kurobox ttyS1
kurobox login:
問題発生
上記の通り上手くシリアルコンソールが出力されて気分よく玄箱を再起動させたところ、シリアルコンソールが途中で途切れてしまいました。いわゆるブートコンソールの部分までです。再度 systemctl コマンドで起動させてみたところシリアルコンソールが起動しました。# systemctl daemon-reload
# systemctl start serial-getty@ttyS1.service
どうも起動過程で /dev/ttyS1 がエラーとなっていることが問題のようです。
[ TIME ] Timed out waiting for device dev-ttyS1.device.
[DEPEND] Dependency failed for Serial Getty on ttyS1.
ネット上を検索してみたところ、systemd のバージョンによってはカーネルのビルド・オプション(CONFIG_FHANDLE=y)の設定が必要なのだそうです。このオプションを設定してカーネルの再ビルドを行えばシリアルコンソールが自動起動してくれる可能性があります。ただちに玄箱用のカーネルをビルドする知識がありませんので、しばらくこのシリアルコンソールの件は保留にしておきたいと思います。なお /etc/init.d/ の中にシリアルコンソールを起動させるスクリプトを設置する手段もありますが、正攻法のカーネルの再ビルドをしたいと思っています。
[SOLVED] Problem with systemd - Linux OS - LeMaker
http://forum.lemaker.org/thread-3312-1-1.html
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。