Help us understand the problem. What is going on with this article?

Raspberry Pi セットアップ(書き込み~SSH設定まで)

More than 1 year has passed since last update.

Raspberry Pi セットアップ(書き込み~SSH設定まで)


注意

(2018/12追記)
本記事の記述は、一部古くなっており、非推奨の事項があります。
新規にRaspberry Pi をヘッドレス(モニタ無しで)セットアップする場合、

PiBakery

の利用をオススメします。

OSイメージのダウンロードや、ネットワーク初期設定、任意のスクリプト実行など、
イメージのカスタマイズが簡単に行えます。

image.png

(追記終わり)


はじめに

この記事は、JAWS-UG関西のイベントJAWS-UG関西IoT専門支部 ✕ SORACOM-UG関西「JAWS DAYS 2017 IoTハンズオン再演 ~可視化祭~」のハンズオン用資料として作成しています。

また、こちらの記事を下敷きとしています。

本ハンズオンでは、Raspberry pi(以降、ラズパイ)を設定し、使えるようになるまでの手順をまとめます。

各自のRaspberry Piのバージョン、PC端末の機能に違いがあるため、
本手順では、下記の色のラベルを各手順に記載します。
自分の該当する色のラベルを確認して進めてください。

・全環境共通
■■■ ALL ■■■
・Raspberry Piのバージョン
■■■ Raspberry Pi 2 ■■■  ■■■ Raspberry Pi 3 ■■■
・PCのネットワーク
■■■ 有線LANアリ ■■■  ■■■ 無線LANのみ ■■■

初期セットアップ 
■■■ ALL ■■■

ラズパイの初期セットアップを行うには、下記の方法があります。
①HDMIが接続可能なモニタと・USBマウス/キーボードを繋ぐ
②PCとシリアルケーブルで繋いでコンソール接続する
③PCと有線LAN、DHCP+SSHで繋ぐ。
本ハンズオンでは、③の手法(PCとラズパイを直結)でセットアップを行います。

※1.シリアルケーブルを持っている方は、②の方法で実施してもOKです。
※2.PCに有線LANのネットワークカードが無い場合は、③の方法が実施できません。
その場合は、メンターが②の方法で、無線LANのセットアップのみ設定します。

必要な機材の準備 
■■■ ALL ■■■

まずは必要なものを準備します。以下のものをご用意ください。

  1. PC(Windows/Mac※)
  2. RaspberryPi 2 Model B
  3. micro SDカード(8GB以上推奨)
  4. micro SDカードリーダー
  5. Wi-Fiドングル
  6. USBシリアル変換ケーブル
  7. micro USBケーブル
  8. USB ACアダプタ
  9. LANケーブル

[Step 1.] OSイメージのダウンロード 
■■■ ALL ■■■

本ハンズオンでは、OSイメージはダウンロード済みであることが前提となります。
もし、ダウンロードできていない場合は、下記手順にて準備します。

本家のダウンロードサイトから必要なOSイメージをダウンロードします。

多数のイメージが公開されていますが、今回は、Rasbianを選択します。
「RASPBIAN JESSIE WITH PIXEL 2017-04-10」
を用います。
ダウンロードしたイメージがZIPの場合は、ツールで解凍しておいてください。

※Linuxでも可能ですが、以降ではWindowsとMac向けにのみ記載します。

[Step 2.] OSイメージをSDカードに書き込む 
■■■ ALL ■■■

micro SDカードリーダーをPCに接続し、SDカードを差し込みます。SDカードリーダーとSDカードが認識されているかを確認ください。認識されていない場合は、micro SDカードリーダーの説明書を参考にドライバーのインストールや初期設定を行ってください。

次に、OSイメージをSDカードに書き込みます。
OSイメージをSDカードへ書き込む方法はいくつかありますが、ここではWindows/Macについてそれぞれ例を挙げておきます。

Windowsの場合

  1. Win32 Disk Imagerをダウンロードし、インストールします。
  2. アプリを起動すると以下の画面が出ますので、"Image File"に先ほどダウンロードしたOSイメージを、"Device"にはSDカードが刺さっているドライブを指定します。Deviceは間違わないようにご注意ください!

w32image.jpg
3. Writeボタンを押して書き込みを開始します。書き込みにある程度時間がかかりますので、完了するまで待ちます。

Macの場合

1.ApplePi Bakerをダウンロードし、インストールします。
2. アプリを起動すると以下の画面が出ます。SDカードが認識されていると、"Pi-Crust"に表示されますので、選択します。選択先は間違わないようにご注意ください!
スクリーンショット 2016-03-15 23.58.15.png

3. "Pi-Ingredients"の"..."ボタンを押して、先ほどダウンロードしたOSイメージを選択します。"Pi-Crust"で選択しないとボタンが有効にならないので注意ください。
4. Restore Backupボタンを押して書き込みを開始します。書き込みにある程度時間がかかりますので、完了するまで待ちます。

※SDカードがうまく認識しないときは

SDカードフォーマッターを使ってフォーマットしてみるといいかもしれません。

SSHを有効化する 
■■■ ALL ■■■

2016年11月頃以降のRaspbianイメージから、セキュリティを考慮してデフォルトではSSHが無効になっています。ボリュームの/直下にsshという名前の空ファイルを作成すると起動時にSSHが有効になります。

(公式のアナウンス)

The boot partition on a Pi should be accessible from any machine with an SD card reader, on Windows, Mac, or Linux. If you want to enable SSH, all you need to do is to put a file called ssh in the /boot/ directory. The contents of the file don’t matter: it can contain any text you like, or even nothing at all. When the Pi boots, it looks for this file; if it finds it, it enables SSH and then deletes the file.

Macの場合は、SDカードをマウントして、ターミナルで下記コマンドを実行すればOKです。
bash
$ touch /Volumes/boot/ssh

Windowsではエクスプローラーから、拡張子無しの 「ssh」 ファイルを作成すればOKです。

[Step 3.] RaspberryPiを起動する 
■■■ ALL ■■■

  • OSインストール済みのmicro SDカードを差し込みます
    Slack for iOS Upload3.png

  • ACアダプタに接続されたmicro USBケーブルを差し込みます
    Slack for iOS Upload2.png

  • 緑色のLEDが点滅していることを確認します
    7993b43a-9270-ac18-0e0e-540034a2e403.jpg

[Step 4-①.]Raspberry Piへの初期接続 

[Step 4-①.]パターン① USBシリアル変換ケーブルの設定
■■■ 無線LANのみ ■■■

Raspberry Pi 3の場合の追加設定 
■■■ Raspberry Pi 3 ■■■

RaspberryPi 3はWi-Fi内蔵で便利になりましたが、デフォルトではUSBシリアル変換ケーブルが使用できません。
でも、ちょっと一手間を加えると従来通りUSBシリアル変換ケーブルが使用できるようになります。

[1] 設定を変更する
* PCにmicro SDカードをマウント(読み込み)します
* config.txtをテキストエディタで開きます。不用意に他のファイルを開くとRaspberryPiが起動しなくなるおそれがあるので注意しましょう
boot 2016-07-24 12-33-43.png
* config.txtの最後尾に以下を追記して保存します

dtoverlay=pi3-miniuart-bt

スクリーンショット 2016-07-24 17.21.33.png

共通手順
■■■ ALL ■■■

まずはUSBシリアル変換ケーブルの設定を行います。

注意! ラズパイを起動させている場合、一度電源をOFFにしてから結線してください!

使用するUSBシリアル変換ケーブルに対応するドライバーをインストールしてください。

製品名 Winドライバ Macドライバ
PL2303HX内蔵USBシリアル変換ケーブル PL2303 Windows Driver Download PL2303 Mac OS X Driver Download
FTDI USBシリアル変換アダプター Virtual COM Port Drivers Virtual COM Port Drivers

<参考>PL2303(HXがついてない)は、Windows8や10のドライバーがないので注意ください。Windows8や10で使用される場合はPL2303HXDとHXDがついているものを購入ください。Macについては、PL2303も使用できます。
(追記1)PL2303HXDですが、Windows8、10をサポートしているはずなのですが、うまく動かないようなので、FTDIのものを選ぶのをお勧めします。
(追記2)PL2303HXDですが、Windows8、10での対処法についての情報を以下にまとめました。
Windows8/10でPL2303HDXのドライバーが動作しない場合の対応方法について

つぎに、ケーブルをラズパイのGPIOに接続します。
GPIOとは以下のようにピンが並んでいる部分のことです。
2016-03-16 00-39-15.642.jpg
左上から、右、次の列の左、右、、、の順で1、2、3、、、と番号がついています。
つまり、
(1) (2)
(3) (4)
(5) (6)
...

となっています。
接続に必要なのは次の3本です。

GPIOピン番号 名称 接続先
6 Ground GND
8 TXD(UART) RX
10 RXD(UART) TX

※PL2303HX内蔵USBシリアル変換ケーブルの場合の線の色

ケーブルによっては4本線が出ているかもしれませんが、残りの1本(5Vの電源線、赤い線の場合が多い)は使用しません。
あと、RXとTXがひっくり返って接続されている(一般的にクロスといいます)のにも注意ください。

[Step 5-①.] Rasbianの起動とログイン

さぁ、次はラズパイを起動してみましょう。
まず、OSイメージを書き込んだSDカードをラズパイに差します。その後、mirco USBケーブルをUSB ACアダプタを差し、ラズベリーパイに接続すれば起動が開始されます。

次に、シリアルからのログインです。

Windowsの場合

いくつか方法がありますが、ここではTeraTermを使用した例で説明します。
1. TeraTermをインストールします。
2. デバイスマネージャーを開き、"ポート(COMとLPT)"の項目を確認します。USBシリアル変換ケーブルが認識されていると、この項目に表示されます。そこにあるシリアルポート(COMXXという形式、XXは数字)を覚えておきます。
3. TeraTermを起動します。何も設定されてない場合は、"新しい接続"のダイアログが表示されます。もし、設定される場合は、メニューの"ファイル(F)"から"新しい接続(N)..."を選択すると同じダイアログが表示されます。
new_con.jpg  
4. "シリアル"を選択し、"ポート(R)"で先ほどデバイスマネージャーで確認したシリアルポートを選択して、OKボタンを押します。
5. 次に、通信速度の設定をします。メニューの"設定(S)"から”シリアルポート(E)..."を選択しすると、"シリアルポート設定"のダイアログが表示されます。この中の、ボー・レートを115200に設定して、OKボタンを押します。
brate.jpg
6. 起動ログもしくは、ログインプロンプトが表示されれば成功です。

Macの場合

  1. ターミナルを起動します。
  2. "ls /dev/tty.*"と入力します。 USBシリアル変換ケーブルが認識されていると、/dev/tty.usbXXXというファイルが見つかると思います。(XXXはケーブルによって異なります)
  3. "screen /dev/tty.usbXXX 115200"と入力します。
  4. 起動ログもしくは、ログインプロンプトが表示されれば成功です。

[Step 4-②.]パターン② 有線LAN+インターネット共有の設定  
■■■ 有線LANアリ ■■■ 

Raspberry Piの有線LANの設定は、デフォルトではDHCPのクライアントとして動作します。
そのため、DHCPサーバとなれる機器と有線LANで接続できれば、
初期接続が可能になります。(別途、SSHを有効にしている前提です。)

ここでは、Windowsおよびmacの標準機能である「インターネット共有(ICS)」を用いて、
PC端末自体をDHCPサーバ(兼ルータ)として設定します。

参考:
インターネット共有の設定(Windows7)
MacとRaspberry piをインターネット共有でつないでみる
Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続する

前提:
PCにネットワークアダプタ(NIC)が2つ以上必要です。
例:
 NIC1:無線LANアダプタ …インターネット側
 NIC2:有線LANアダプタ …配下ネットワーク側(今回はラズパイをこちらに繋ぐ)

共有元となるインターネット側(NIC1)は、種別を問いません。
・無線LANで接続していてもいいですし、
・別の有線LANのNICがある場合や、
・スマートフォンとUSB接続でテザリングしているアダプタでも問題ありません。

Windowsの場合

1. PC側のNIC2(有線LANアダプタ)とラズパイの有線LANアダプタをLANケーブルでつなぎます。
2. NIC1のプロパティを開き、「共有」タブを開きます。
3. 「ネットワークの他のユーザーに~」のチェックをつけます。
4. 直下の「ホームネットワークの選択」欄で、NIC2を選択します。
5. コマンドプロンプトで「ipconfig /all」を実行し、インターネット共有のIPが設定されていることを確認します。

ipconfig /all

PC端末のNIC2は固定で「192.168.137.1」になります。
ラズパイ側は「192.168.137.XXX」ですが、毎回不定です。
本手順の最後にある、ネットワーク上での識別方法を確認してください。

macの場合

こちらの記事を参考にします。
MacとRaspberry piをインターネット共有でつないでみる
公式)macOS Sierra: Mac 上のインターネット接続を共有する

以下、引用

ここではMacとRaspiを有線で接続する方法を記述したいとおもいます。
接続した時の図は下記

12177845_925364404208869_1191390079_n.jpg

※USBで電源供給、ThunderboltでEthernet接続している
では以下から順を追って説明します。

システム環境設定を開く

まず、アプリケーションから「システム環境設定」を開きましょう
下記のような画面が開くので、上から3段目「共有」をクリックします

スクリーンショット 2015-10-25 18.24.32.png

インターネット共有の設定を行う

MacとRaspiをLANケーブルで直接した状態で下記のような設定を行ってください。

スクリーンショット 2015-10-25 18.32.29.png

インターネット共有で「共有する接続経路」をWi-Fi
相手のコンピューターが使用するポートを「Thunderbolt Ethernet」
とそれぞれ設定します。
(ここの設定は個々人の環境に合わせて設定してください)

設定が適用されると、RaspiにIPアドレスが払い出されています。

RaspiのIPアドレスを調べよう

RaspiのIPアドレスを調べるため「コンソール」アプリを立ち上げましょう
「アプリケーション」の「その他」の中に「コンソール」があります
コンソールの画面が開けたら、下記の順番で操作を行い、Raspiのアドレスが観れます。大抵192.168.2.2となっているようです。

スクリーンショット 2015-10-25 18.38.02.png

[Step 5-②.] RaspberryPiにSSHで接続する 
■■■ ALL ■■■

PCからSSHで接続するには、RaspberryPiのIPアドレスが必要です。IPアドレスを調べる手順は前項を参照して下さい。
デフォルトのログインアカウントは下記の通りです。

ID pi
PW raspberry

Mac

  • 標準で入っているターミナルを起動します

    スクリーンショット 2016-08-01 20.13.24.png

  • 次のコマンドを実行します(xx.xx.xx.xxはRaspberryPiのIPアドレス)

$ ssh pi@xx.xx.xx.xx
  • 初回接続時は下記のように尋ねられるので、yesを入力します
The authenticity of host '192.168.0.7 (192.168.0.7)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
  • ...password:と表示されたらraspberryを入力します。パスワードは入力しても何も表示されません。
    下図のような表示になったらログイン成功です
    スクリーンショット 2016-08-01 20.19.44.png

Windows

今回はターミナルソフトとしてインストール不要のPuTTYを使用します。
※前項までの手順で、TeraTermをインストールしている場合は、そちらでも構いません。

PuTTYをダウンロードする

ダウンロードはこちら
デスクトップ等にダウンロードして、下図のアイコンをダブルクリックすれば起動します。
キャプチャ.PNG

PuTTYでSSH接続する

  • PuTTYを起動します
  • RaspberryPiのIPアドレスを入力して[Open]をクリックします
    b4818159-7cbd-99ef-3107-845f01eeb814.png

  • 初回接続時のみ下図が表示されるので[はい]をクリックします
    PuTTY Security Alert 2016-08-01 13.51.59.png

  • Login as:と表示されたらpi
    ...password:と表示されたらraspberry
    を入力します。パスワードは入力しても何も表示されません
    34a18d44-435b-77bd-3cc4-9e76bd738e6f.png

  • 下図のような表示になったらログイン成功です
    1ff18ed5-a68d-badc-8bcf-b58ec5b94acf.png

[Step 6.] 初期設定  
■■■ ALL ■■■

ログインIDとパスワードはデフォルトで以下になります。

ログインID:pi
パスワード:raspberry

基本、この状態でも普通に使用できます。
以下にいくつかの設定方法を記載しますので、好みに応じて設定してみてください。

設定ツールの起動

コマンドを入力して、設定ツールを立ち上げます。

$ sudo raspi-config

以下のような画面が表示されます。
raspi-config.jpg

上下キーでメニューの選択、TABキーで<Select>/<Finish>/メニューの項目の選択が行え、Enterキーで決定となります。
終了は、<Finish>を選択してEnterキーを押します。

パスワードを変更する

RaspberryPiを常時起動させておく場合は、セキュリティを考慮してpiユーザーのパスワードを変更しましょう。
上記のraspi-configで「 Change User Password」を選ぶか、
もしくは下記のコマンドを実行します。

新しいパスワードを聞かれたら同じものを2回入力します。

$ sudo passwd pi
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

最近ではRaspberry Piのみを狙うマルウェアも出現しています。
USBドングルを付けて直接グローバルIPが付与される場合、踏み台にされる危険がより高くなりますので、パスワードの変更を強く推奨します。

タイムゾーンの変更

タイムゾーンでは時間帯の指定を行います。デフォルトではUTC(協定世界時)となっており、日本標準時(JST)と9時間の差があります。
タイムゾーンを日本標準時にするには、

"5 Internationalisation Options"

を選択し、以下の画面を表示します。raspi-config-2.jpg

次に、

"I2 Change Timezone"

を選択し、"Asia" -> "Tokyo"を選択してください。

Wifi設定の変更

Wifiで使用できるチャンネルは国によって異なります。そのため、Wifiを使う予定のある人は、以下の設定を行っておいてください。

"I4 Change Wi-fi Country

を選択し、"JP Japan"を選択してください。

その他の項目については、必要に応じて設定ください。
ロケールを変更することで、エラー表示等を日本語で表示させることも可能ですが、別途フォントのインストールが必要なため今回は行いません。
どうしてもという方は、Raspberry Pi 2の文字コードを変更する(日本語の設定)等のサイトを参考にトライしてみてください。

[Step 7.] Wifi設定 
■■■ ALL ■■■

この状態でも、EthernetにケーブルをつなげればDHCPでIPを取得して接続できます。
ここでは、Wifiの設定方法について簡単に記載します。
WPA2-PSKとWEPの2通りの方法を記載しますので、接続するアクセスポイントに合わせて設定してください。

WPA2-PSKの場合

想定するWifiの条件は以下です。SSIDおよびパスフレーズは適宜読み替えてください。

項目名 想定値
セキュリティ WPA2-PSK
ステルス機能 オフ
IP割り当て DHCP
SSID sample
パスフレーズ samplepasswd

まず、Wifiアダプタが認識されているか確認します。Wifiアダプタをラズパイに差して、

$ iwconfig

と打って、以下のようにwlan0が表示されれば、Wifiアダプタは認識されています。ただし、まだ通信はできません。
image

以下のコマンドを実行します。

$ wpa_passphrase sample samplepasswd

すると以下のような文字列が出力されます。

network={
  ssid="sample"
  #psk="samplepasswd"
  psk=528c5d46ff88fa51740bca0173a86e94dd45f1b9af2043448f40f649accbc0a5
}

この情報をコピーしておきます。

次に、/etc/wpa_supplicant/wpa_supplicant.confをスーパーユーザ権限で編集して、上記でコピーした値を追加します。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

もしくは、

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

とすると以下の画面が表示されます。
image

この最後にコピーした値を追加します。

image

6行目にコメントでパスフレーズが書かれていますので、実運用ではこの行は削除した方がセキュリティ的によいです。

この後、再起動すればwifiが有効になっているはずです。

※今回のハンズオン会場での設定は、レジュメにも記載しています。 

WEPの場合

WEPはセキュリティが低いので、出来れば避けたいですが、PocketWifi等でWEPが必須の場合があるので記載しておきます。
想定するWifiの条件は以下です。SSIDおよびパスフレーズは適宜読み替えてください。

項目名 想定値
セキュリティ WEP
ステルス機能 オフ
IP割り当て DHCP
SSID sample
パスフレーズ samplepasswd

/etc/wpa_supplicant/wpa_supplicant.confをスーパーユーザ権限で編集します。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

もしくは、

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

とすると以下の画面が表示されます。
image

この最後に以下の内容を追加します。

network={
  scan_ssid=1
  key_mgmt=NONE
  ssid="sample"
  wep_tx_keyidx=0
  wep_key0="samplepasswd"
}

この後、再起動すればwifiが有効になっているはずです。

その他の情報 
■■■ ALL ■■■

自分のRaspberry Piを識別するには

1つのWifiルータ下に複数台のラズパイが存在する場合、
Raspberry Piを個体識別する必要があります。
(今回のようなハンズオン会場であったり、複数のラズパイをセンサーとして利用する場合など)

1. ラズパイのホスト名を変更しておく場合

sudo raspi-config

の画面で、

「Advanced Options」 → 「Hostname」 を選択して変更します。
image.png

'/etc/hostname' と '/etc/hosts' ファイルを直接編集することでも可能です。

SSHで、IPアドレスの代わりにホスト名で接続します。

「変更した名前 + .local」でアクセスできるようになります。

2.固有の値として、MACアドレスを使う場合

ラズパイ側で

sudo ifconfig

を実行した際に表示される情報のうち、「wlan0」の「HWaddr」の値(=MACアドレス)をメモしておきます。

image.png

Windows/mac側のコマンドプロンプト/ターミナルから、

arp -a

を実行します。

下記のような表示のうち、先ほど調べたMACアドレスに該当する行を探し、IPアドレスを確認します。
image.png

実際には、Mac(Linux)の場合は「arp-scan」を、Windowsの場合はnmapSoftPerfect Network Scannerなどのツールを用いて、ネットワーク内のアドレスを探索する必要があるでしょう。

uchidayoko
教育、オフィス、情報の3分野を中心に、ICTを駆使したトータルソリューションを提供しています
http://www.uchida.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away