EBUG勉強会/20190223_SerialConsole
をテンプレートにして作成
Start:
#topicpath
* 河豚板のシリアルコンソール対応
RIGHT:EBUG 第68回会合 ~
2019年2月23日、(有)銀座堂 ~
川俣吉広、kaw@on.rim.or.jp
** シリアルコンソールを使用するケース
OpenBSDを使っていると、以下のようなケースでシリアルコンソ...
-OpenBSD/arm64をラズパイ3等で動作させる場合
--HDMIがまだサポートされていないので、デフォルトでコンソ...
-OpenBSDを[[vmm(4)>https://man.openbsd.org/vmm.4]]のゲス...
--vmmはビデオ出力をサポートしていないため、コンソールが仮...
(コンソールへのアクセスはインスタンス起動後に[[cu(1)>http...
-OpenBSDの起動メッセージのtranscript取るためにQEMUを-seri...
-盆栽のような、headless運用の場合
--メモリ節約のためVGAドライバを入れていない、あるいはリモ...
-etc...
OpenBSDをシリアルコンソールで運用するには以下の操作を行う。
-シリアルデバイスからログインできるように、あらかじめ[[/e...
tty00 "/usr/libexec/getty std.9600" vt220 on secure
↑ ↑
実際のラインスピードに合わせる gettyを有効に...
-起動直後のブートプロンプトに対し、以下のように入力する
boot> set tty com0 ←VGAなどに表示される
boot> [Enter] ←シリアルデバイスに切り替わって出...
-あるいは、前項の入力内容を[[/etc/boot.conf>https://man.o...
-OpenBSD/arm64では、デフォルトでシリアルコンソールとなっ...
** 河豚板での問題点
通常のOpenBSDをHDD等へインストールする場合であれば、イン...
Change the default console to com0? [no]
と訊かれるため、これにyesと答えれば上記の設定が行われる。
一方、河豚板ではデフォルトでは毎回fresh bootとなるため、...
そのため、別のアプローチを取る必要がある。
さらに、bootプロンプト(又はboot.conf)で設定したボーレート...
** 対応策
河豚板では、OpenBSD本来の初期化スクリプト[[/etc/rc>https:...
シリアルコンソール対応として、/boottmp/rc内で以下の処理を...
-コンソールがシリアルデバイスかどうかの検出を行う
-シリアルデバイスの場合、その伝送速度を取得する
-検出した結果に基づいて/etc/ttysの書き換えを行う。
実際に/boottmp/rc内に追加したコードは以下のようになる。
- echo "Keyboard type;"
- while :; do
- kbd -l | sed -e '1,3d; /^$/d' | sort | past...
- echo -n '-> '; read kbtype
- if kbd $kbtype; then
- echo $kbtype > /etc/kbdtype
- break
- fi
- done
+ if dmesg | grep -q '^.* at .*: console keyboard...
+ echo "Keyboard type;" ...
+ while :; do
+ kbd -l | sed -e '1,3d; /^$/d' | sort | ...
+ echo -n '-> '; read kbtype
+ if kbd $kbtype; then
+ echo $kbtype > /etc/kbdtype
+ break
+ fi
+ done
+ fi
- echo "Please wait ... "
+ #------------------------------
+ # serial console (for vmm/vmd)
+ # ...
+ if dmesg | grep -q '^com0: console'; then ...
+ ttyspeed=`stty speed` ...
+ sed -i.orig -e 's|^tty00[ ].*|tty00 ...
+ fi ↑
+ /etc/ttysファイルの該当エン...
+ #--------------- シリアルデバイスからログイ...
+ # root password
+ #
until passwd root
do
echo "passwd failed, Try again."
done
**まとめ
以上の改修により、河豚板が起動された環境がheadless運用の...
河豚板ではLive Systemの特徴を活かすため起動時に環境を自動...
例を挙げると;
-起動時に全ストレージデバイスをスキャンし、河豚板用のデバ...
-全デバイスのスキャン結果やユーザの指示を基にファイルシス...
→マウントの結果から、[[/etc/fstab>https://man.openbsd.org...
-ネットワークデバイスの検出を行い、実際に使われそうなデバ...
WiFiデバイスの場合は、認証設定の項目も提示する
今回のシリアルコンソール対応も、これらの設定などと同様の...
----
#topicpath
End:
#topicpath
* 河豚板のシリアルコンソール対応
RIGHT:EBUG 第68回会合 ~
2019年2月23日、(有)銀座堂 ~
川俣吉広、kaw@on.rim.or.jp
** シリアルコンソールを使用するケース
OpenBSDを使っていると、以下のようなケースでシリアルコンソ...
-OpenBSD/arm64をラズパイ3等で動作させる場合
--HDMIがまだサポートされていないので、デフォルトでコンソ...
-OpenBSDを[[vmm(4)>https://man.openbsd.org/vmm.4]]のゲス...
--vmmはビデオ出力をサポートしていないため、コンソールが仮...
(コンソールへのアクセスはインスタンス起動後に[[cu(1)>http...
-OpenBSDの起動メッセージのtranscript取るためにQEMUを-seri...
-盆栽のような、headless運用の場合
--メモリ節約のためVGAドライバを入れていない、あるいはリモ...
-etc...
OpenBSDをシリアルコンソールで運用するには以下の操作を行う。
-シリアルデバイスからログインできるように、あらかじめ[[/e...
tty00 "/usr/libexec/getty std.9600" vt220 on secure
↑ ↑
実際のラインスピードに合わせる gettyを有効に...
-起動直後のブートプロンプトに対し、以下のように入力する
boot> set tty com0 ←VGAなどに表示される
boot> [Enter] ←シリアルデバイスに切り替わって出...
-あるいは、前項の入力内容を[[/etc/boot.conf>https://man.o...
-OpenBSD/arm64では、デフォルトでシリアルコンソールとなっ...
** 河豚板での問題点
通常のOpenBSDをHDD等へインストールする場合であれば、イン...
Change the default console to com0? [no]
と訊かれるため、これにyesと答えれば上記の設定が行われる。
一方、河豚板ではデフォルトでは毎回fresh bootとなるため、...
そのため、別のアプローチを取る必要がある。
さらに、bootプロンプト(又はboot.conf)で設定したボーレート...
** 対応策
河豚板では、OpenBSD本来の初期化スクリプト[[/etc/rc>https:...
シリアルコンソール対応として、/boottmp/rc内で以下の処理を...
-コンソールがシリアルデバイスかどうかの検出を行う
-シリアルデバイスの場合、その伝送速度を取得する
-検出した結果に基づいて/etc/ttysの書き換えを行う。
実際に/boottmp/rc内に追加したコードは以下のようになる。
- echo "Keyboard type;"
- while :; do
- kbd -l | sed -e '1,3d; /^$/d' | sort | past...
- echo -n '-> '; read kbtype
- if kbd $kbtype; then
- echo $kbtype > /etc/kbdtype
- break
- fi
- done
+ if dmesg | grep -q '^.* at .*: console keyboard...
+ echo "Keyboard type;" ...
+ while :; do
+ kbd -l | sed -e '1,3d; /^$/d' | sort | ...
+ echo -n '-> '; read kbtype
+ if kbd $kbtype; then
+ echo $kbtype > /etc/kbdtype
+ break
+ fi
+ done
+ fi
- echo "Please wait ... "
+ #------------------------------
+ # serial console (for vmm/vmd)
+ # ...
+ if dmesg | grep -q '^com0: console'; then ...
+ ttyspeed=`stty speed` ...
+ sed -i.orig -e 's|^tty00[ ].*|tty00 ...
+ fi ↑
+ /etc/ttysファイルの該当エン...
+ #--------------- シリアルデバイスからログイ...
+ # root password
+ #
until passwd root
do
echo "passwd failed, Try again."
done
**まとめ
以上の改修により、河豚板が起動された環境がheadless運用の...
河豚板ではLive Systemの特徴を活かすため起動時に環境を自動...
例を挙げると;
-起動時に全ストレージデバイスをスキャンし、河豚板用のデバ...
-全デバイスのスキャン結果やユーザの指示を基にファイルシス...
→マウントの結果から、[[/etc/fstab>https://man.openbsd.org...
-ネットワークデバイスの検出を行い、実際に使われそうなデバ...
WiFiデバイスの場合は、認証設定の項目も提示する
今回のシリアルコンソール対応も、これらの設定などと同様の...
----
#topicpath
Page: