3
3

More than 5 years have passed since last update.

Raspberry Pi 3 シリアルコンソールでの初回起動からSSH接続まで

Posted at

はじめに

RaspberryPi3を組み込み向けに使用したかったため、新規に購入した。
GUIは使用せず、シリアルコンソールを使用してSSH接続までのセットアップを実施した。
・必要最低限のハードウェアを購入(本体、SDカード、ケース、電源、USB-TTL変換)
・初回起動時よりシリアルコンソールを使用
・環境:Windows10、ノートPC

RaspberryPi3ではBlueToothが追加されたことで、初期状態では起動後、クロックに応じてUARTのボーレートが変わってしまうとのこと。
このため、初回起動時よりシリアルコンソールで接続するためにはSDカード上の設定ファイルを一部編集する必要がある。

【参考サイト】
1. Raspberry Pi 3をシリアルコンソールだけで初回起動するまで
 ※多くの部分は上記ページをほぼそのまま参考にさせていただいています。
2. Raspberry Pi ステルスSSIDへの接続方法
3. viエディタの使い方

使用したハードウェア

以下を購入した。
1. RSコンポーネントRaspberry Pi 3 B +マザーボード
2. Transcend microSD カード 32GB UHS-I Class10 Nintendo Switch/3DS 動作確認済 TS32GUSD300S-AE【Amazon.co.jp限定】
3. Miuzei 最新 Raspberry Pi 3B+ ケース ラスベリー パイ 3 Model B+ 5V 2.5A 電源アダプター+冷却ファン+ヒートシンク ラズパイ 3 2 Model Bとも対応(Raspberry Pi 3 Model B+ 本体含まりません) (ケース電源付き)
4. Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル

なお、最後のUSB-TTL変換は輸送に時間がかかりすぐに届かなかったため、以下手持ち品を使用した。
FT234X 超小型USBシリアル変換モジュール
RaspberryPiはロジックのレベルが3.3Vのため、USB-TTL変換は3.3Vの製品を使用する必要がある。上記製品は3.3V(5Vトレラント)であることを確認した。

SDカードへのOS書き込み

OSのイメージを公式ページからダウンロードする。
今回GUIは不要なため、最小構成を選択する。
Raspbian Stretch Lite

ダウンロードしたファイルはイメージファイルのため、イメージファイル書き込み用のツールを使用してSDカードに書き込みする。
今回は以下を使用した。
Win32 Disk Imager
インストーラ版もあるが、上記はZIP版。
※展開時に展開先にファイルが全て展開されるので、フォルダの中で実施したほうが良い。

SDカードは新品であれば次のステップに進んでよいが、一度イメージファイルを書き込んでいたりすると、ドライブが2つに分かれていたりする。
このままでは正常にイメージをかけないため、Windowsの「コンピュータの管理」からボリュームを一旦削除し、一つのボリュームとしてフォーマットする。

Wind32 Disk Imagerを開き、ダウンロードした.imgファイルを指定。
書き込み先はSDカードの割り当てられたドライブを指定。
「Write」を押下すれば書き込みが始まる。

設定ファイルの編集

SDカードにイメージファイルを書き込み後、SDカードのrootディレクトリは認識されないが、bootディレクトリはFAT32のため認識される。
そこで、bootディレクトリ内の以下ファイルをWindows上でgPad等で編集する。

/boot/config.txt
#行末に以下を追記
dtoverlay=pi3-miniuart-bt
/boot/cmdline.txt
#以下に書き換え
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

RaspberryPiの起動

RaspberryPiを起動していく。
1. RaspberryPiにSDカードを差し込み
2. USB-TTL変換を接続
  RaspberryPi側:6pin:GND, 8pin:TXD, 10pin:RXD
  USB-TTL変換側:GNDにGND、TXDにRXD、RXDにTXDを接続
3. TeraTermでシリアル通信を開始
 (ボーレート:115200bps, データ長:8bit, ストップビット:1bit,パリティ:なし)
4. TeraTermのローカルエコーをオフ(Setup->Terminal->LocalEcho)
5. USB Micro-B(スマホ等で一番流通しているコネクタ)経由で電源を供給
以上でTeraTerm上にLinuxの起動画面が表示される。
なお、起動画面の途中で以下エラーが表示されるが問題ない。

[FAILED] Failed to start Configure Bluetooth Modems connected by UART.

ユーザ名とパスワードを聞かれるため以下を入力

raspberrypi login: pi
Password:raspberry

Wi-Fi、およびSSHの設定

シリアルケーブルを毎回接続するのは手間なため、Wi-Fiをセットアップし、SSHでの接続を可能にする。

まずSSHを有効にする。
また、立ち上げ時にWi-FiのCountryが設定されていないと怒られるため、CountryをJPに設定する。

sudo raspi-config
5 Interfacing Options
P2 SSH
<YES>
<OK>
4 Localisation Options
I4 Change Wi-fi Country
JP Japan
<OK>
<Finish>
<YES>

次にWi-FIの認証の設定を行う。

sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
#psk="PASSPHRASE" #削除
scan_ssid=1 #追記

sudo reboot

デフォルトではDHCPによりIPが取得されるが、IPが都度変わると不便なため、ルータ側で「DHCP固定割当設定」により指定のMACアドレスに対して特定のIPを割り振るように設定した。
使用ルータはAterm WR8300N。IPは192.168.0.7を割り当てた。

ホスト名でのSSH接続

SSHクライアントにはMobaXtermを使用。
この時点で、MobaXterm上より以下でログイン可能。

ssh pi@192.168.0.7

ホスト名を使用して接続したかったため、RaspberryPi側で以下を設定。

sudo vi /etc/hostname
#以下を追記
raspi.local

sudo vi /etc/hosts
#最終行を以下に編集
127.0.1.1     raspi

sshを行うWindows PC側で以下を設定。

\Windows\System32\drivers\etc\hosts
192.168.0.7 raspi

以下でsshにより接続する。

ssh pi@raspi

以上により、RaspberryPiに電源ケーブルを接続するのみで、SSHでのログインできるようになる。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3