Raspberry Pi Zero Wをセットアップしてみたよ。

前回の続き。
ピンヘッダがない方のRaspberry Pi Zero Wにピンヘッダをはんだ付けして、MicroSDカードにOSをインストールしセットアップしていきます。

PCのOSはUbuntuを使います。


・・・・・はんだ付け・・・・・

ピンヘッダを2つ並べましたが1列40ピンあるので真ん中で折れば1つで問題ありません。

ちなみに使ったのは上のものですが値段が購入時の5倍に上がっていました。

何かに乗せてからはんだ付けしやすくなります。

1列目はうまくつけられました。2列目をつけるときはブレッドボードを使いました。ものすごいやりやすい。最初から使えばよかった…

完成です。左側がはんだ付けした方で右側が最初からついている方です。これでもうどっちがどっちかわかりづらくなりました。


・・・・・OSをインストール・・・・・

OSは公式からRaspbianをダウンロードします。

普通にPCと同じように使えるデスクトップ版とコンソールオンリーのLite版がありますが基本的にSSHで行うのでLite版を選びました。でもPi Zeroでデスクトップ版がどこまで使えるのか…

ダウンロードが終わったらZipファイルからimgファイルを取り出します。

ブータブルUSBの作成を起動し、その他…右下のCDイメージをディスクイメージに変えます。こうしないとimgファイルが選択できません。

書き込み時間は5〜6分です。


・・・・・セットアップ前のひと手間・・・・・

Raspberry Pi Zeroは外部出力端子がMini HDMIです。しかしMini HDMIケーブルは持っていません。セットアップでしか使わないのでわざわざ買うのも…なので今回はセットアップからSSH接続でいきたいと思います。

ずっと前は何もしなくてもセットアップ時にSSH接続ができたのですが、セキュリティー上の問題で一手間加えないといけなくなりました。

OSをインストール後、Terminalで

sudo touch /media/User Name/boot/ssh

を実行するだけです。User Nameには自分のユーザー名を入力します。Zero WではUSBのイーサネットアダプタを使いますのでこれで終りです。もう一つのZero WHの方では初期起動時から既にWi-Fiに接続しているようにします。この方法はつぎの記事で。

終わったら一応アンマウントしてから抜きます。

イーサネットアダプタを接続して起動します。もちろんLANケーブルを繋いで。

起動してインターネットに接続するまで5分位かかりました。

TerminalでZero Pi WのiPアドレスを探すのもいいですがここはかんたんにスマホアプリで。Fingで。アイコン・デバイス名つきでわかりやすく教えてくれます。

で、現時点でiPアドレスは「192.168.0.4」ということがわかりました。Terminalで、

ssh pi@192.168.0.4

残念ながらこの後電源が切れました…そしたら0.4にデバイスが入ってきて…0.8になりました。

ssh pi@192.168.0.8

を実行します。

初期パスワードは「raspberry」です。

無事接続できました。


・・・・・セットアップ・・・・・

有線接続のほうが多分早く終わるのでWi-Fi接続は最後に行います。

ログイン後のメッセージにもあるようにpiユーザーのパスワードを変更します。流石にこのままは危険です。

ログインしたあと、

passwd

を実行します。最初にも現在のパスワード(raspberry)、2回目、3回目は自分で決めたパスワードを入力します。この辺はiOSを脱獄したときと同じですね。

次はアップデート。Terminalで

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get dist-upgrade

これでまずインストール済みのパッケージをアップデートします。10分位かかりました。

終わったらZero Wのアップデートをします。

sudo rpi-update

これは5分位です。ほぼ毎日更新がありますが、毎日やる必要はないと思います。

終わったら一度再起動します。

sudo reboot

最初みたいなイレギュラーがなければ同じIPアドレスで接続します。

今度はラズパイとしての設定をしていきます。

Terminalで

sudo raspi-config

を実行します。すると、

英語ではありますがわかりやすいUIになります。

1 Change User Password Change password for the current user
(ユーザーパスワードを変更する 現在のユーザーのパスワードを変更する)
2 Network Options Configure network settings
(ネットワークオプション ネットワーク設定を構成する)
3 Boot Options Configure options for start-up
(ブートオプション 起動オプションの設定)
4 Localisation Options Set up language and regional settings to match your location
(ローカリゼーションオプション 言語と地域の設定を自分の場所に合わせて設定する)
5 Interfacing Options Configure connections to peripherals
(インターフェイスオプション 周辺機器への接続を設定する)
6 Overclock Configure overclocking for your Pi
(オーバークロック設定 Piのオーバークロック)
7 Advanced Options Configure advanced settings
(高度なオプション 詳細設定を構成する)
8 Update Update this tool to the latest version
(更新 このツールを最新バージョンに更新する)
9 About raspi-config Information about this configuration tool
(raspi-configについて この設定ツールに関する情報)

1でpiユーザーのパスワードの変更はできますが脆弱なパスワードでも設定できてしまうので却下。2はあとで。

3は起動時にデスクトップを使うかコンソールを使うかなどを決められます。

B1 Desktop / CLI Choose whether to boot into a desktop environment or the command line
(デスクトップ / CLI デスクトップ環境で起動するかコマンドラインで起動するか)
B2 Wait for Network at Boot Choose whether to wait for network connection during boot
(起動時にネットワーク待ちブート時にネットワーク接続を待つかどうかを選択する)
B3 Splash Screen  Choose graphical splash screen or text boot
(スプラッシュ画面グラフィカルなスプラッシュ画面またはテキストブートを選択します。)

B2でネットワーク接続待ちに設定するとシリアル接続も受け付けなくなりそうなのでデフォで。B3は起動中の画面の設定ですが見えないので特に設定しません。で、B1。

B1 Console Text console, requiring user to login
(コンソール ユーザーにログインを要求するテキストコンソール)
B2 Console Autologin Text console, automatically logged in as 'pi' user
(コンソール 自動ログイン テキストコンソール、自動的に 'pi'ユーザーとしてログイン)
B3 Desktop Desktop GUI, requiring user to login
(デスクトップ デスクトップGUI、ユーザーのログインが必要)
B4 Desktop Autologin Desktop GUI, automatically logged in as 'pi' user
(デスクトップ オートロイン デスクトップGUI、自動的に 'pi'ユーザーとしてログイン)

インストールしたのがLite版なのでB1かB2ですね。

B1はログインが必要。B2は自動ログイン。SSH接続が基本なのでどっちでもいいですね。デーモンによる自動起動のプログラムもどちらでもちゃんと起動しました。でも一応B1を選択。

ちなみにB3、B4を選択すると、

Do 'sudo apt-get install lightdm' to allow configuration of boot to desktop
(ブートをデスクトップに設定できるようにするには 'sudo apt-get install lightdm'を実行してください)

どうやらほんとにデスクトップ表示に必要なパッケージがインストールされていない模様。Officeもインストールされていません。

戻って4の言語・地域設定。これで日本語にできます。

I1 Change LocaleSet up language and regional settings to match your location
(あなたの場所に合わせて言語と地域の設定を変更する)
I2 Change TimezoneSet up timezone to match your location
(自分の位置に合わせてタイムゾーンを設定する)
I3 Change Keyboard Layout Set the keyboard layout to match your keyboard
(キーボードレイアウトの変更キーボードのレイアウトをキーボードに合わせて設定します)
I4 Change Wi-fi Country Set the legal channels used in your country
(Wi-Fiの国を変更するあなたの国で使用されている法的チャンネルを設定する)

I1の言語設定から

矢印キーで下の方の"jp_JP.UTF8 UTF-8"をスペースキーで選択します。

次にシステム全体で使用する言語を選択します。"jp_JP.UTF-8"を選択します。しばらくすると初期の設定画面に戻ります。

もう一度4を選択、I2のタイムゾーン設定。

Asiaで、

Tokyoで日本のUTC+09:00になります。

またまた初期画面になりますが4を選択、I3のキーボードレイアウト設定ではなくI4のWi-Fiの地域設定。キーボードレイアウトは…SSHだと関係ないので。

これも下の方の”JP Japan"を選択。

次は5のインターフェイスの設定。カメラモジュールとかSSHとか。

P1 Camera Enable/Disable connection to the Raspberry Pi Camera
(カメラ ラズベリーパイカメラへの接続を有効/無効にする)
P2 SSH Enable/Disable remote command line access to your Pi using SSH
(SSH SSHを使用してPiへのリモートコマンドラインアクセスを有効/無効にする)
P3 VNC Enable/Disable graphical remote access to your Pi using RealVNC
(VNC RealVNCを使用してPiへのグラフィカルなリモートアクセスを有効/無効にする)
P4 SPI Enable/Disable automatic loading of SPI kernel module
(SPI SPIカーネルモジュールの自動ロードを有効/無効にする)
P5 I2C Enable/Disable automatic loading of I2C kernel module
(I2C I2Cカーネルモジュールの自動ロードを有効/無効にする)
P6 Serial Enable/Disable shell and kernel messages on the serial connection
(シリアル シリアル接続上のシェルおよびカーネルメッセージの有効化/無効化)
P7 1-Wire Enable/Disable one-wire interface
(1線式 1線式インタフェースの有効/無効)
P8 Remote GPIO Enable/Disable remote access to GPIO pins
(リモートGPIO GPIOピンへのリモートアクセスを有効/無効にする)

有効にするのはP2(一応)、P4、P6、P7、P8です。

ちなみにデスクトップ環境がないこのOSでVNCを有効にすると大量のパッケージをインストールすることになります。

最初に戻って6のオーバークロック設定をやりたいところですが…無理っぽいです。飛ばして7の高度な設定。

A1 Expand Filesystem Ensures that All of the SD card storage is Available to the OS
(ファイルシステムを展開すると、すべてのSDカードストレージがOSで使用可能になります。)
A2 Overscan You may need to configure overscan if black bars Are present on display
(オーバースキャンディスプレイに黒いバーがある場合は、オーバースキャンを設定する必要があります)
A3 Memory Split Change the Amount of memory made Available to the GPU
(メモリ分割GPUで使用可能なメモリ量を変更する)
A4 Audio Force Audio out through HDMI or 3.5mm jack
(オーディオHDMIまたは3.5mmジャックを介してオーディオ出力)
A5 Resolution Set A specific screen resolution
(解像度設定特定の画面解像度)
A6 Pixel Doubling Enable/Disable 2x2 pixel mapping
(ピクセル2倍化2x2ピクセルマッピングを有効/無効にする)
A7 GL Driver Enable/Disable experimental desktop GL driver
(GLドライバ実験的なデスクトップのGLドライバを有効/無効にする)

A1は確実ですね。imgはパーティションごと展開するので今はSDカードの一部しか使えない状態です。それをSDカードの容量いっぱいに広げる設定です。

そのほかはほとんどデスクトップ環境向けの設定ですね。オーディオ出力はZero Wに何もつけなければHDMIしかないです。

あとはアップデートとAbout raspi-configですがアップデートは最初にしたのでやりません。About raspi-configは”raspi-configについて”なので見ません。

Finishで終わらせます。多分再起動するか聞かれるのでYesを選択します。

もう一度SSHでログインして、Wi-Fi設定をします。raspi-configではなく直接ファイルを弄ります。

まずWi-Fiモジュールの設定(?)をします。

sudo nano /etc/network/interfaces

でinterfacesファイルを編集します。

画像のように一番下の行に

allow-hotplug wlan0
iface wlan0 inet manual
     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

を追記します。

Ctrl+Xで保存して終了します。

sudo systemctl enable wpa_supplicant.service && sudo reboot

を実行してサービスの有効化と再起動します。

もう一度SSHでログインします。

今のWi-FiのセキュリティはWPA-PSKが主流だと思うのでこれが前提で設定していきます。

wpa_passphrase "SSID" "Password"

を実行します。もちろん"SSID"にWi-Fiの名前を入れて"Password"にはWi-Fiのパスワードを入力します。すると

network={
               ssid="abc"
               #psk="123456789"
               psk=86d3135f415dedb7f61e188a5a0d62b30e0065b8f8b81a786623212d3775eeb5
}

パスワードが暗号化された結果が出力されます。これはSSIDがabcでパスワードが123456789だった場合です。

これをコピーしておきます。

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

を実行してwpa_supplicant.confを編集します。

一番下にペーストして生コードの#psk~の行を削除します。

Ctrl+Xで保存して終了します。

これでとりあえずWi-Fiに接続する準備ができました。設定を反映させます。

sudo ifdwon wlan0
sudo ifup wlan0

エラーメッセージがでなければ完了です。ちょっとまってから

ifconfig

を実行してみます。

wlan0の欄のinet(赤くマスキングしたところ)に正常なIPアドレスが表示されていたら成功です。イーサネットアダプタを外してWi-Fi経由でSSH接続します。今度は

ssh pi@”表示されたIPアドレス”

で接続します。

このままだと再起動したときや久しぶりに接続したときにIPアドレスが変わってしまうことがありまたIPアドレスを探すことになります。なのでIPアドレスを固定します。

sudo nano /etc/dhcpcd.conf

を実行しdhcpcd.confを編集します。

以下を入力しています。

interface eth0
static ip_address=192.168.0.xxx/24
static routers=192.168.0.1
static domain_name_servers=1.1.1.1, 1.0.0.1

interface wlan0 
ssid SSID
static ip_address=xxx.xxx.xxx.xxx/24
static routers=xxx.xxx.xxx.xxx
static domain_name_servers=1.1.1.1, 1.0.0.1

ssidはSSIDを入力します。ssidの欄がない場合すべての接続先で同じ設定が適用されます。

static ip_addressは固定したいIPアドレスを入力します。イーサネットとWi-Fiで同じにするとうまく動作しないことがあります。後ろの"/24"は「サブネットマスクは255.255.255.0だよ」ってことです。もし違う場合は消してください。

static routersはルーターのIPアドレスです。

static domain_name_serversはDNSサーバーです。2つ以上ある場合はアドレスの最後にカンマ(,)とスペースを入れてください。ルーターと同じIPアドレスでも大丈夫です。(1.1.1.1, 1.0.0.1は例であり推奨設定です。)

イーサネットを固定しない場合はinterface eth0以下はいりません。

※イーサネットの設定には設定例を入力しています。

Ctrl+Xで保存して終了します。

設定を適用させます。

sudo ifdown wlan0 && sleep 5 && sudo ifup wlan0

IPアドレスが変わったので切断されます。設定したIPアドレスで再接続してください。

無事再接続できたら

ping www.google.com -c 5

を実行しインターネットに接続できているか確認します。

接続できていればこのようになります。最初は接続できないこともありますので時間をおいてもう一度試してみてください。

とりあえずこれで初期設定は終わりですね。

Raspberry Pi 3と比べると少し重いと言うかもたつきを感じることがあります。しかし普通のPCでやるようなことはしません。プログラムもセンサーを使ったり信号を送ったり、インターネットから多くても数kバイトくらいのメッセージを受け取ったり送ったりするくらいなので問題ないですね。Raspberry Pi 3より消費電力がずっと少ないので1AのUSBで給電してサーボモーターを5Vに直接つなげてもステータスLEDが点滅することはありません。負荷が強いと流石に点滅しますが…

※4/29追記:IPアドレスを固定する手順で"SSID"になっていたところをSSIDに変更しました。

・・・・・

今回はこれで以上です。

次回は今回よりは短めですね。

0コメント

  • 1000 / 1000