見出し画像

Windows Terminalでシリアル接続を行う方法

はじめに


Windows Terminalというターミナルソフトを常用するようになって、しばらく経ちました。Microsoftの自信作だけあって、よくできたツールだと思うのですが、SSH接続が主体のようです。

シリアル接続をするにはどうすればよいのでしょうか?
それが本記事の目的となります。

ハロウィンドリンク

PowerShellスクリプトをダウンロードする

シリアル接続を実現するプログラム(PowerShellスクリプト)を下記からダウンロードします。


Ubuntuのシリアル接続設定

GRUBの設定変更

# cd /etc/default
# diff grub.org grub
7,8c7,8
< GRUB_TIMEOUT_STYLE=hidden
< GRUB_TIMEOUT=0
---
> #GRUB_TIMEOUT_STYLE=hidden
> GRUB_TIMEOUT=30
10,11c10,15
< GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
< GRUB_CMDLINE_LINUX=""
---
> #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
> #GRUB_CMDLINE_LINUX=""
> GRUB_TERMINAL="serial console"
> GRUB_SERIAL_COMMAND="serial --unit=0 --speed=38400"
> GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,38400"

設定の反映

# update-grub


COMポート接続

Windows Terminalにプロファイルを追加して、コマンドラインを以下のように指定します。

pwsh -NoProfile -executionpolicy remotesigned -file C:\hoge\serial_terminal.ps1 -port com3 

以下、例です。

Virtual Box上のUbuntuにCOMポート接続するやり方について説明します。一台のPCでつなぐには、PCに仮想COMデバイスを構築する必要があります。
Free Virtual Serial Portsが使いやすくておすすめですが、商用利用禁止になっています。

ここでは、COM2とCOM3をループバック接続したとします。Virtual BoxにはCOM2を指定します。

Windows TerminalではCOM3に接続すると、Ubuntuのシリアルコンソールにつなぐことができます。


名前付きパイプ接続

Windows Terminalにプロファイルを追加して、コマンドラインを以下のように指定します。

pwsh -NoProfile -executionpolicy remotesigned -file C:\hoge\serial_terminal.ps1 -pipe -port com1 -connretry

Virtual Boxには以下のように設定します。

おわりに

名前付きパイプのバッファ管理がいまひとつで、ときどきUnicodeの文字が文字化けするので、今後改善していこうかなと思っています。

貴重な時間を使って最後まで読んでくださり、ありがとうございました。 よかったら、記事の拡散もお願いいたします。