以前の記事で「Ubuntu 18.04 LTS Desktop」をインストールした。
そこで、UbuntuパソコンのCOMポートにアクセスし、シリアル通信できたので備忘録を残す。
COMポートのデバイス名確認
パソコン標準装備のCOMポートのデバイス名を確認する。
dmesg
コマンドでログ表示し、有効になってるシリアルポートのデバイス名を確認。
[ 0.705116] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[ 0.725737] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
「ttyS0
」がシリアルポートのデバイス名となってるので、ls
コマンドで確認。
$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 10月 22 15:49 /dev/ttyS0
「dialout
」グループが読み書きアクセス可能。
COMポートへのアクセス権設定
/dev/ttyS0
デバイスにアクセスできるように、自分のユーザを「dialout
」グループに追加。
$ sudo gpasswd -a hoge dialout
グループ追加したら、一度ログインし直して、ID
コマンドで確認。
$ id
uid=1000(hoge) gid=1000(hoge) groups=1000(hoge),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
groups=
に「dialout
」が追加された。
シリアル通信ソフト「C-Kermit」をインストール
以前の記事で、macOSで動かしたシリアル通信ソフト「C-Kermit」でCOMポートアクセスする。
下記コマンドでインストール。
$ sudo apt install ckermit
実行できるか確認。
$ kermit --version
9.0.302 [9.0.302]
通信初期設定
kermitの設定ファイル「/etc/kermit/kermrc
」を確認すると、HOMEディレクトリの .mykermit
ファイルに起動時に実行するコマンドを記述しておく。
$ nano ~/.mykermrc
set line /dev/ttyS0
set carrier-watch off
set speed 115200
set parity none
set flow-control none
C-Kermitの使い方
C-Kermitの起動。
$ kermit
Executing /home/hoge/.mykermrc...
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5 (64-bit)
Copyright (C) 1985, 2011,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/hoge/) C-Kermit>
コマンド入力待ちになるので、c
コマンドで端末通信モードになる。
(/home/hoge/) C-Kermit>c
Connecting to /dev/ttyS0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
これで、端末通信モードになりシリアルポートから文字の送受信ができる。
端末通信モードの終了は、Ctrl-\
を押して c
を押す。
(Back at Ubuntu-Desktop)
----------------------------------------------------
(/home/hoge/) C-Kermit>
コマンド入力待ちになるので、exit
又は q
で終了。
(/home/hoge/) C-Kermit>exit
Closing /dev/ttyS0...OK
hoge@Ubuntu-Desktop: ~
$
- The Kermit Projectに、v8.0みたいだが「USING C-KERMIT Communications Software」のPDFマニュアルが公開されている。英語ではあるが、かなりのページ数でとても詳しく書かれているので参考になる。ちなみに、ターミナル通信モードの説明は「Chapter 8」にある。
通信実行例
以前の記事で「Raspberry Pi」のu-bootでシリアル通信を行った。
Raspbery-Piとの接続
RS232CのCOMポート信号(±12V)から、Raspbery-PiコネクタのTTL信号(3.3V)に変換する必要がある。以下の、変換基板を入手してRaspbery-Piと接続した。
Raspbery-PiのU-Bootと通信
Raspberry Pi 2で、u-bootをSDカードから起動し「C-Kermit」でシリアル通信した。
補足
- kermitは、もともとパソコン通信時代に開発されたファイル転送や自動マクロ通信ソフトだが、端末通信ソフトとしても優れた機能を備えている。
- 「Ubuntu 18.04 LTS Server」でも同様に利用できると思う。(未確認)
- GUIインタフェースでなくCUIのソフトなので、リモートでSSH接続したパソコンからでもストレスなく操作できたので、ある意味便利。
コメント