みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Raspberry Piに別パソコンからネットワーク不要でアクセス~シリアルコンソールを使う

Raspberry Pi OS LiteはGUIがなく、コマンドシェル(デフォルトはbash)でコマンドを実行して操作します。

どうやってシェルにアクセスするかというと、大きく分けて3つの方法があります。

f:id:kimura_khs:20210227171953p:plain

  1. 画面とキーボードをつないでキーボードで直接操作する
  2. ネットワーク越しに別のパソコンからアクセスする
  3. 別のパソコンからシリアルコンソールに接続する

1はGUI版と同様にRaspberry Piに画面🖥とキーボード⌨️を接続すると、単体で操作できます。 黒い画面に文字が出てくるだけの味気ない💔画面ですが、別のパソコン要らずで使えます。

2は過去の記事で紹介しました。WiFiとSSHを有効にすると、別のパソコンからWiFi経由で操作できます。もちろん、LANケーブルをつないで有線でもOKです。

www.mikan-tech.net

そして3つめですが、Raspberry Piのピンヘッダとパソコンを直結することで、パソコンからシリアルコンソールでシェルにアクセスできます。

WiFiやLANなどネットワークが利用できない場合でも使えます。ただし、USB-UART変換ケーブルが必要です。安いものは1000円くらいで買えます。

設定を間違えてRaspberry Piにネットワーク経由で全くアクセスできなくなった場合などに便利です☺️

シリアルコンソールとは?

画面のないサーバー機器を外部パソコンから制御する仕組みの1つとして、シリアルコンソールが昔から使われています。別のパソコンを入力・表示装置として使い、実際のコマンド実行はサーバ機器で行います。

SSHと違ってネットワーク越しにコマンドを送るのではなく、専用のケーブルを使います。

サーバー機器にはRS-232Cというコネクタがついているものがあり、RS-232Cケーブルでパソコンと接続します。 すると、パソコンからサーバ機器のシェルにシリアルコンソールでアクセスできるようになります。

USB-RS232C変換ケーブルは大きな家電量販店でも売っており、サーバーのメンテナンスの人などが買っていきます。

Raspberry PiではUARTがRS-232Cの代わりになります。実はUARTはRS-232Cと電圧やコネクタなどは違うものの、通信手順は同じなのです。

USB-UART変換ケーブルも売っており、USB経由でパソコンに接続できます。これは家電量販店では見たことはありませんが、電子部品屋さんやAmazonなどで簡単に手に入ります。

例えば、次のようなものです。

Raspberry Piにシリアルコンソールでつないでみよう

さっそくRaspberry Piのシリアルコンソールにつないでみましょう✊

初期状態ではシリアルコンソールが無効になっているので、まずは有効にする設定を行います。

シリアルコンソールの有効化

Raspberry Piの起動マイクロSDカードをパソコンに接続し、エクスプローラーで開きます。

f:id:kimura_khs:20210227221917p:plain

config.txtというファイルがあるはずです。 これをメモ帳やVisual Studio Codeなどのエディタで開き、最後の行にenable_uart=onを追記します。

f:id:kimura_khs:20210227180630p:plain

追記したら保存してして完了です。マイクロSDカードを取り出してRaspberry Piに挿しておきます。

Raspberry Piにつないでみよう

USB-UART変換ケーブルをRaspberry Piのピンヘッダに接続します。

f:id:kimura_khs:20200922113215p:plain
画像出典: raspberrypi.org

Raspberry Piのピンヘッダは上図のように機能が割り当てられています。UARTを使うので、次のピンに接続します。

RasPiピン番号 RasPi 機能 USB-UART 説明
6 Ground GND グランド (0V基準電圧)
8 GPIO 14 (TX) Rx UART (RasPi→パソコン)
10 GPIO 15 (RX) Tx UART (パソコン→RasPi)

UARTは2つの機器を1対1でつなぐ通信方式で、A→B、B→Aの片方向ごとに1本ずつ線があり、2本の線で通信します。 一方の機器の送信端子(TX)をもう一方の受信端子(RX)につなぎます。なので、このような接続になります。

パソコンとRaspberry Piでグランド(基準電圧0V)をそろえる必要があるのでこれもつなぎます。 電源(3.3V/5V)ピンは接続しないでください🙅。(USB-UART変換ケーブルの電源はパソコンからUSBでとれます)

接続すると、次のようになりました。

f:id:kimura_khs:20210227174719j:plain

このUSB-UART変換ケーブルをパソコンに挿します。WindowsにCOMポートとして認識されればOKです。

ターミナルソフトからのアクセス

パソコンからシリアルコンソールにアクセスするには、ターミナルソフトが必要です。 TeraTermPuttyなどが有名でしょうか。ここではTeraTermを使ってみます。

ja.osdn.net

これをダウンロードして起動します。

起動するとCOMポートを選ぶ画面が出ると思います。先ほど接続したUSB-UART変換ケーブルのCOMポートを選択してください。

続いて設定を行います。

f:id:kimura_khs:20210227180735p:plain

「設定」→「シリアルポート」を上記画面のように設定します。ポート番号はお使いのパソコンの環境に合わせてください。

ボー・レートは115200bps、データ8bit、パリティなし(none)、ストップ1bit、フロー制御無し(none)とします。

f:id:kimura_khs:20210227180744p:plain

「設定」→「端末」の設定を上記画面のように設定します。Raspberry PiはLinuxなので改行コードはLFです。

お待たせしました。ようやくこれで設定が終わりです。これでRaspberry Piを起動すると…

f:id:kimura_khs:20210227180756p:plain

ここに起動メッセージやログイン画面が出てきます!ふつうにログインもできました😃

これでうっかりRaspberry Piのネットワーク設定を間違ってWiFiがつながらなくなっても安心ですね🥰