Memorandums?

This blog is written about technical-discoveries and daily-events.

Raspberry pi 導入

目的

RaspberryPiをディスプレイ・キーボード無しで導入し、使用します。
RaspberryPiをネット環境が無くても使えるように、PCと直接接続するだけで使用できるようにします。
RaspberryPiのデスクトップ画面(GUI)をPCから操作できるようにします。
RaspberryPiにて、PCをルーターとしてネットワーク接続ができるようにします。
※2015/07/30加筆訂正有

条件

  • Host-PC: Windows8.1
  • RaspberryPi: RaspberryPi2 ModelB
  • RaspberryPi-OS: 2015-05-05-raspbian-wheezy

必要なもの

  • ルーター(無線LAN・有線LAN)
  • 有線ストレートLANケーブル
  • Host PC
  • Raspberry pi 2
  • microSD(8GB以上が好ましい)
  • microSD-SD変換器(PCにmicroSDが入らない場合)
  • 5V1A供給ACアダプタ(端子はmicroUSB)

注意

RaspberryPi用として一切ディスプレイやキーボードを使用しません。
初期設定から全てホストPCから行います。
RaspberryPi2のRJ-45コネクタには、クロス-ストレート変換器が内臓されているようで、クロスLANケーブルは必要ありません。
※動作は保証しません

OSの書き込み

公式サイトからRaspbianOSのzipファイルをダウンロードします。
PCで解凍します。
次に、SDカードのフォーマットをします。
[Windows]+E でコンピュータを開き、SDカードを右クリック、フォーマットを選択します。
FAT32でフォーマットしてください。(データは全て削除されます)
Win32DiskImagerをダウンロードし、起動します。
ImageFileにはダウンロードしたRaspbianのイメージファイルを、ドライブにはSDカードを指定します。
Writeし、書き込みます。
書き込めたらRaspberryPiに差し込みます。

RaspberryPi起動

ネットワーク接続されたルーターにLANケーブルを差し、RaspberryPiのRJ-45コネクタと接続します。
microUSBを接続し、電源を入れます。
ホストPC側は無線LANが利用できるようにします。
[Windows]+R で検索画面を開き、[cmd]と入力し、コマンドプロンプトを起動します。
[ipconfig]と入力し、イーサネットの欄に出てきたIPアドレスを調べます。
例えば、192.168.0.3だった場合、192.168.0.2~192.168.0.15くらいまでの間におそらくRaspberryPiのIPアドレスがあるはずです。
(192.168.0.1はルーター自体のIPアドレスの可能性が高い)
それを調べます。
NetEnumなどのソフトウェアを使用してもいいですが、手打ち作業でもできます。
[ping 192.168.0.2]
と打ちます。"接続されていない"といった旨のメッセージが数秒おきに出てこれば、それは違います。
[ping 192.168.0.3]...
と続けていき、IPアドレスを調べます。
IPアドレスがわかったら、そこにSSHでログインします。
TeraTermをインストールしてください。
TeraTermで、IPアドレスに192.168.0.[調べたIPアドレス]と入力します。
SSHのセキュリティ確認画面が出てこれば成功です。
ユーザー名には[pi],パスワードには[raspberry]を入力します。

RaspberryPi初期設定

SSHに[raspi-config]と入力し、設定画面に行きます。
設定内容については、Googleで[raspberry pi raspi-config]などと検索して調べてみてください。
(今回それほど重要ではない)

DHCPに設定 固定IPアドレス付与

SSHにて、
[sudo vi /etc/network/interfaces]
と入力し、viの画面が出てきたら、
"
auto lo
iface lo inet loopback

auto eth0
allow-hotplug wlan0
iface eth0 inet manual

以下続く...
"
などと書かれていると思うので、

  1. "iface eth0 inet manual"を[iface eth0 inet dhcp static]に書き換える
  2. その文の下に次の文を加える
    address 192.168.0.[他とかぶらない番号]
    netmask 255.255.255.0
    dns-nameservers 192.168.0.1(←ルーターIPアドレス) 8.8.8.8

次に、わざわざIPアドレスを入力せずとも[raspberrypi.local]などと入力するだけでSSHログインできるように
[sudo apt-get install avahi-daemon]
と入力します。PC側には同様の理由でBonjourをインストールしておいてください。
(iTunesをインストールすると一緒にインストールされる)

できたら、RaspberryPiをシャットダウンします
[sudo halt]

RaspberryPi-PC直接接続

PC側の設定をします。
ネットワークと共有センターを開き、アダプター設定の変更を開きます。

Wifiを右クリックプロパティに行き、共有のタブをクリックし、一番上のチェックボックスにチェックを入れます。

イーサネットを右クリックプロパティに行き、IPv4を選択し、プロパティを開きます。
"次のIPアドレスを使う"を選択し、IPアドレスにはかぶらない任意のIPアドレスを指定し、
サブネットマスクには、255.255.255.0を指定します。(たぶん自動で入力される)

できたらOKでウィンドウを閉じます。

アダプター設定の変更の画面で、Wifiイーサネットを両方選択し、右クリックでブリッジ接続にします。
(RaspberryPiでネットワークを使用できるようにするため)

先ほど、ルーターとつないでいたLANケーブルを外し、PCとRaspberryPi間をそのLANケーブルで接続します。
そして、電源を入れます。
cmdで、IPアドレス(raspberrypi.local) (さきほどRaspberryPiでinterfacesファイルに書いた任意のIPアドレス)と接続を確認します。
[ping raspberrypi(ホスト名).local]
接続が確認できたら、TeratermSSH接続します。
これで、PC側が無線LANでネットワーク接続できているのであれば、RaspberryPi側のネットワークも接続されています。
以上でほとんど完了しました。

リモートデスクトップ(VNC)

RaspberryPiのデスクトップ画面をPCから操作できるようにします。
RaspberryPi側では、
[sudo apt-get update]
[sudo apt-get upgrade]
[sudo apt-get tightvncserver]
とし、インストールします。
[tightvncserver]
と入力し、起動させ、適当なパスワードを何回か打ちます。
PC側では、VNC-Viewer for Windowsをインストールし、exeを起動します。
IPアドレスには、
[192.168.0.[RaspberryPiのIPアドレス]:5901]
と書き、パスワードは先ほど決めたものを入力します。
すると、画面を見ることができるようになります。



感想

本当に導入には苦戦しました。導入だけで40時間くらい費やしてしまいました。。
ネット上には、RaspberryPi2の情報が少なく、異なる部分があったり、
当方、ネットワークの知識が薄く、なかなか理解できなかったりした部分があったためです。

今回特に苦戦した場面は、RaspberryPiの電源を切れず、やむなくUSBをぶち抜き、SDカードのメモリを破壊してしまうことです。
正しい手順でやればそのようなことはないのですが、
失敗すると、PCからアクセスできなくなり、シャットダウンシグナルが送れないためにぶち抜かなくてはいけない場面が発生することがあります。
2回初期化しましたが、その後は反省し、シャットダウンボタンをつくりました。
RaspberryPiにスクリプトを組み、起動時自動スクリプトにし、
タクトスイッチのみの回路をGPIOと接続し、PCなどなにもなくてもシャットダウンできるようにしました。
様々なサイトではGPIOの真ん中あたりのピンを使っており、他に回路を作るときに邪魔になりそうですが、
今回は、GPIO21とGNDに回路を作ったため、邪魔にもなりそうになく、満足しています。
これで失敗を恐れることがなくなり(笑)、直接接続に向けて奮闘したところ、なんとかできた、といった感じです。


RaspberryPi2では、デフォルトの/etc/network/interfacesはeth0がmanualと設定されているため、それをDHCPにする作業が必要(?)のようです。
それができれば、PCとRaspiの接続はもちろん、Windows側でネットワーク共有をするだけでRaspberryPiのネットワーク接続もできてしまいます。

RaspberryPiがもし壊れたりしても責任はとれませんが、不明な点があればコメントにてどうぞ。(誤植・アドバイスもお願いします)