背景
uart接続でRaspberry Piにログインするときの操作を毎度忘れて調べ直しているので記事にまとめます。使ったもの
- Raspberry Pi + Raspberry Pi OS
- USB-UART変換
下記のような装置でUSBとUARTを変換してRaspberry Piに繋ぎます。
(この記事ではUSBminiB接続式のUSB-UART変換基板を利用していますが、miniBだとケーブルが無くて不都合な場合があるのでそれの購入リンクは共有しません。)
DTECH USB TTL シリアル 変換 ケーブル
CH340 USBシリアル変換モジュール Type-C
FT-232RQ USBシリアル変換モジュール - ジャンパワイヤ
USB-UART変換ケーブルによってはRaspberry Piへの接続にジャンパワイヤが必要なので、メスメスやオスメスのワイヤを使います。 - ログイン元のPC
今回はUbuntu20.04のPCとWindows10のPCで動作確認しました。
Raspberry Pi側の設定
bootfsパーティションのconfigファイルに下記の行を足すとuartログイン可能になります。/boot/config
enable_uart=1
Raspberry Piへの接続
GPIOの外側の角から3番目からGND、TX、RXなので、それらをUSB-UARTのGND、RX、TXに繋ぎます。UARTはRX(受信)<->TS(送信)で繋ぎます。
ログインに使うシリアル通信プログラム
uart接続して矢印操作をしたりviなどでファイルを開くと\r信号が送られてきてカーソル位置を変えようとするのですが、\rなどの解釈に対応していないシリアル通信プログラムだと表示が崩れて解読が困難になります。自分が確認した中で良さそうだったプログラムと操作方法を紹介します。
他に良さそうなプログラムがあれば、教えていただけると嬉しいです。
Linuxの場合: screen
シリアル通信関係の記事で目にすることが多いscreenを使うと、\rを期待通りに解釈してくれて矢印操作やviでのファイル編集を難なくこなせます。今まで存在は知っていたものの、開いた後の閉じ方操作が分からなくて避けていました。
忘れたときのために基本の操作方法をここに残します。
インストール
sudo apt install -y screen
接続
Raspberry Piのuartは115200bpsで最初は開かれているので、それで開きます。
9600bpsで開いて何回か通信すると、Raspberry Pi側が通信速度を変えてくれるのか通信可能になりますが、出力が多いと動作がガタつくので115200bpsがお勧めです。
screen /dev/ttyUSB0 115200
終了
Ctrl-a の後 k -> y
一時離脱
Ctrl-a の後 z
離脱した画面に復帰
screen -r
参考:
RPi Serial Connection
Windowsの場合: TeraTerm
TeraTermとはssh接続したりシリアル接続したりできるWindows向けのプログラムです。下記のサイトからインストーラーをダウンロードできます。
この記事ではteraterm-4.106.exeを利用しました。
https://osdn.net/projects/ttssh2/releases/
シリアル接続は開く際に通信速度が選べないので、まずはポートだけ指定して開きます。
開いたら 設定 -> シリアルポート を選んで設定画面を開きます。
スピードを115200にして「現在の接続を再接続」を押すと、115200bpsでポートを開けます。
ログイン
USB-UARTをRaspberry Piに接続した状態でシリアル通信プログラムを開き、エンターを何回か押すと下記のようにログイン画面が出てきます。OSに設定したユーザーにログインしてください。
raspberrypi login:
ログイン後に画面の大きさを合せる
ログイン後の標準の表示領域は24x80で、シリアル通信プログラムを広くしていてもその区画内で描画が折り返されます。resizeというコマンドでシリアル通信プログラムで開いている画面の大きさに表示を合わせられます。
resizeは標準では入っていないのでaptでインストールして使います。
sudo apt install -y xterm
インストールできたらresizeコマンドを実行すると描画領域が表示している大きさに合います。
resize
参考:
Raspbian terminal does not support console-resize
resize
ログイン後の画面に色を付ける
ログイン後の標準画面ではほとんど色付けされてない画面が表示されます。下記のコマンドを実行するとssh接続やモニタを繋げてログインした時のように色づきます。
export TERM=xterm-256color; source ~/.bashrc
参考:
[メモ] RaspberryPi へ シリアル接続時の画面サイズとか変更(USB-UARTケーブルでPCから)
おわり
\rが処理されるシリアル接続プログラムでrapsberry piのuartログイン画面を開き、コマンドで表示画面の大きさに描画領域を合わせと色付けができました。sshログインしたときと遜色ない表示を有線接続でも実現できて嬉しいです。
参考
RPi Serial ConnectionRaspbian terminal does not support console-resize
resize
[メモ] RaspberryPi へ シリアル接続時の画面サイズとか変更(USB-UARTケーブルでPCから)
0 件のコメント :
コメントを投稿