##はじめに
RaspberryPi3を組み込み向けに使用したかったため、新規に購入した。
GUIは使用せず、シリアルコンソールを使用してSSH接続までのセットアップを実施した。
・必要最低限のハードウェアを購入(本体、SDカード、ケース、電源、USB-TTL変換)
・初回起動時よりシリアルコンソールを使用
・環境:Windows10、ノートPC
RaspberryPi3ではBlueToothが追加されたことで、初期状態では起動後、クロックに応じてUARTのボーレートが変わってしまうとのこと。
このため、初回起動時よりシリアルコンソールで接続するためにはSDカード上の設定ファイルを一部編集する必要がある。
【参考サイト】
- [Raspberry Pi 3をシリアルコンソールだけで初回起動するまで]
(http://akkagi.info/20161004_web/)
※多くの部分は上記ページをほぼそのまま参考にさせていただいています。 - [Raspberry Pi ステルスSSIDへの接続方法]
(https://qiita.com/minatomirai21/items/6397ba560626f09fe42b) - [viエディタの使い方]
(https://prev.net-newbie.com/linux/commands/vi.html)
##使用したハードウェア
以下を購入した。
- [RSコンポーネントRaspberry Pi 3 B +マザーボード]
(https://www.amazon.co.jp/gp/product/B07BFH96M3/) - [Transcend microSD カード 32GB UHS-I Class10 Nintendo Switch/3DS 動作確認済 TS32GUSD300S-AE【Amazon.co.jp限定】]
(https://www.amazon.co.jp/gp/product/B07DVGCQP1/) - [Miuzei 最新 Raspberry Pi 3B+ ケース ラスベリー パイ 3 Model B+ 5V 2.5A 電源アダプター+冷却ファン+ヒートシンク ラズパイ 3 2 Model Bとも対応(Raspberry Pi 3 Model B+ 本体含まりません) (ケース電源付き)]
(https://www.amazon.co.jp/gp/product/B07H2WKYBF/) - Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル
なお、最後のUSB-TTL変換は輸送に時間がかかりすぐに届かなかったため、以下手持ち品を使用した。
[FT234X 超小型USBシリアル変換モジュール]
(http://akizukidenshi.com/catalog/g/gM-08461/)
RaspberryPiはロジックのレベルが3.3Vのため、USB-TTL変換は3.3Vの製品を使用する必要がある。上記製品は3.3V(5Vトレラント)であることを確認した。
##SDカードへのOS書き込み
OSのイメージを公式ページからダウンロードする。
今回GUIは不要なため、最小構成を選択する。
[Raspbian Stretch Lite]
(https://downloads.raspberrypi.org/raspbian_lite_latest)
ダウンロードしたファイルはイメージファイルのため、イメージファイル書き込み用のツールを使用してSDカードに書き込みする。
今回は以下を使用した。
[Win32 Disk Imager]
(https://sourceforge.net/projects/win32diskimager/files/Archive/Win32DiskImager-1.0.0-binary.zip/download)
インストーラ版もあるが、上記はZIP版。
※展開時に展開先にファイルが全て展開されるので、フォルダの中で実施したほうが良い。
SDカードは新品であれば次のステップに進んでよいが、一度イメージファイルを書き込んでいたりすると、ドライブが2つに分かれていたりする。
このままでは正常にイメージをかけないため、Windowsの「コンピュータの管理」からボリュームを一旦削除し、一つのボリュームとしてフォーマットする。
Wind32 Disk Imagerを開き、ダウンロードした.imgファイルを指定。
書き込み先はSDカードの割り当てられたドライブを指定。
「Write」を押下すれば書き込みが始まる。
##設定ファイルの編集
SDカードにイメージファイルを書き込み後、SDカードのrootディレクトリは認識されないが、bootディレクトリはFAT32のため認識される。
そこで、bootディレクトリ内の以下ファイルをWindows上でgPad等で編集する。
#行末に以下を追記
dtoverlay=pi3-miniuart-bt
#以下に書き換え
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
##RaspberryPiの起動
RaspberryPiを起動していく。
- RaspberryPiにSDカードを差し込み
- USB-TTL変換を接続
RaspberryPi側:6pin:GND, 8pin:TXD, 10pin:RXD
USB-TTL変換側:GNDにGND、TXDにRXD、RXDにTXDを接続 - TeraTermでシリアル通信を開始
(ボーレート:115200bps, データ長:8bit, ストップビット:1bit,パリティ:なし) - TeraTermのローカルエコーをオフ(Setup->Terminal->LocalEcho)
- 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側で以下を設定。
192.168.0.7 raspi
以下でsshにより接続する。
ssh pi@raspi
以上により、RaspberryPiに電源ケーブルを接続するのみで、SSHでのログインできるようになる。