vbox の仮想マシンにシリアルポートを使わせる。
シリアル・ポートのログインができるように仮想マシンを構成する
virtualboxのシリアルデバイス
実現方法は、いくつかあるのですが、一番よく使われるのは「デバイスを渡す」だとおもう。
個数が増えてくると大変なので、仮想マシンの台数が多いときは、デバイス・ファイルを使うほうが望ましいとは思う。
ホスト・デバイスをブリッジ
Windowsの場合は、仮想COMポートを作るソフトウェア(com0com)を使って、仮想シリアルポートペア( COM3 - COM4 ) を作る、片側を仮想マシンに渡す。
疑似(仮想)シリアル・ポートのペアができると、Terartermなどでつなぐことができる。
Terartermを2つ起動して、COM4/COM3で通信してキー入力がもう一方に送信されると確認できたら準備完了
仮想マシンにデバイスを渡す。
COM4/COM3でペアになっている。このペアの片方を仮想マシンに渡してあげる。
シリアル有効化(ホストデバイス&COM4)
ちなみに、ここで仮想マシン側にCOM1を指定してるので、仮想マシン側ではttyS0 (=COM1)になる
仮想マシン側でgetty起動
仮想マシン側でgetty を起動してログインできるようにする。仮想マシンにはUbuntuを利用した。 COM4は仮想マシン(Ubuntu)側で、ttyS0になる。
sudo systemctl start serial-getty@ttyS0
COM4/COM3ペアの他方のCOM3をTerartermで接続する。
起動時のログとGrubをシリアルに流す。
仮想マシンで、GRUBを設定して、シリアルを有効にする。GRUBがシリアルを使うように仮想マシンを設定する。
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200" GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
grubを再構成
sudo update-grub
COM3につないで起動ログを確認
COM3に接続して、COM4経由で出てくる起動ログを確認する。
WSL+screenの場合
WSLの場合、Windows側でCOM3ポートにアクセスするには。COM3=ttyS3 のように COMXX= ttySXXのマッピングになっている
wsl sudo screen /dev/ttyS3 115200