シリアルコンソールへシェルから書き込みたい。
tty デバイスに対して書き込むのは通常のソケットやファイルに書き込むのも変わらないのです。echo で書き込めます。ただし設定が必要。
事前にチェックすること
- ボーレート
- パーミッション
読み込み側で、待ち受けておく
sudo screen /dev/ttyUSB0 115200
書き込み側で、設定をする
sudo /usr/bin/stty -F /dev/S0 speed 115200
パーミッションを確認しておく
書き込み側でgetty 上がってたりgetty 経由でログインしているとパーミッションが変わってるので一旦オフにしておく
takuya@:~$ sudo ls -l /dev/ttyS0 crw--w---- 1 root tty 4, 64 2月 7 23:30 /dev/ttyS0 takuya@:~$ sudo systemctl stop serial-getty@ttyS0.service takuya@:~$ sudo ls -l /dev/ttyS0 crw--w---- 1 root tty 4, 64 2月 7 23:30 /dev/ttyS0 takuya@:~$
ログイン前後・起動前後のパーミッションの変化について -> https://takuya-1st.hatenablog.jp/entry/2022/02/04/143646
書き込みする
echo aaaaaaa > /dev/ttyS0
echo できるのは、パーミッションがあるときなので、パーミッションがわからないときは、root でやればいいかな
実行中の画面
ttyS0/ttyUSB0 の動作チェック
動作チェックは、echo screen で行うのが確実
screen /dev/ttyS0 screen /dev/ttyUSB0
このとき、ボーレートを指定しないでおいておけば、ボーレートのチェックが出来る。screen でボーレートを明示するとそのときにデバイスのボーレートが変更されてしまうのでチェックにならない。
デバイスのボーレートを確認するには
stty -F /dev/ttyUSB0 -a
を使って、ボーレートやパリティなどを確認する。