サンタクロースはあらゆる人の深層心理を読み解くメンタリスト。どんなニーズでも読み取って、ある人にはアクセサリー、ある人には最新ゲーム、織田裕二には世界陸上を、そして、セキュリティエンジニアにはハッカーを描いたアメリカの人気ドラマMR.ROBOT(正月にイッキ見しました。。)を、届けてくれる、最高にできたおじいさんです。
そんなサンタさんが僕にRaspberry Pi2 model B(最新のラズベリーパイです!)を届けてくれましたので、お正月休みを利用して早速開封して初期設定をしていきますので、ついでにメモ。
事前準備
必要機材を揃える
ラズパイは真冬にもかかわらず基盤むき出しの、いわゆるマッパなので、いろいろと必要機材を足して上げる必要があります。
とりあえず以下のものがあれば一通り問題なく進められるかと。
- HDMI接続のディスプレイ
HDMI接続できる機器なら、TVでもプロジェクターでも何でもOKです。 - microSDHCカード
ラズパイとの相性があるらしいので、選び方は重要です。海外のサイトなども見ましたが、Transcendの上記カード16GBが一番実績ありました。というか、僕が問題なく使えたので証人です。 - 無線LAN USBアダプタ
あんなちっこいラズパイさんに、ぶっといLANケーブルをさすなんて虐待です!無線LANでスッキリつなげるようにしてあげましょう。
無線LANアダプタはなるべく省電力なものを使わないとラズパイさんの使う電気が不足して動作が不安になっちゃいますので、省電力で利用実績のあるPLANEXさんのものを選びました。 - 給電用のmicro USBケーブルとコンセントアダプタ
これはスマホやガジェットに付いてくるケーブルで十分ですね。パソコンのUSBポートからの電力供給では電流が足りないので、1A以上供給できるコンセント-USB変換アダプタが必要です。これもiPhoneやスマホ付属のコンセントアダプタで十分ですね。 - 基本的にキーボードだけでも操作できるようにできていますが、USBマウスもあるとGUIでのインストールや設定も楽に操作できそうです。
OS(Raspbian)をmicro SDカードに焼く
公式サイトからNOOBSという簡単OSインストールツールをダウンロードしてきます。この子が仲介してRaspbianを簡単にインストールすることができるので、初心者は迷わずこれを使えと公式サイトにありますね。
Download NOOBS for Raspberry Pi
あとはこれをダウンロード、解凍して、MS-DOS(FAT)形式でフォーマットされたmicroSDHCカードにコピペしてあげます。
(解凍したNOOBSフォルダの中身をコピーですので注意してくださいね。)
Raspbianインストールと初期設定
事前準備が整ったら、いよいよRaspbianのインストールをしていきます。
インストール (ネットワーク無し環境で)
まずはOS Raspbianをインストールして初期設定をしていきます。
今回無線LAN USBアダプタを購入しましたが、有線LANケーブルが家にありませんので、無線LANの接続設定が完了するまではネットワーク接続無しの状態でインストールを進めていくことになります。
インストール手順
- まずは、ラズパイ本体にキーボード、無線LAN USBアダプタ、NOOBSをコピーしたmicroSDHCカード、HDMI接続ディスプレイを接続し、“最後に”電源のmicroUSBケーブルを接続します。
- NOOBSが起動し、OSインストールを促されますので、Rasbianを選択して、「install」ボタンを押してOSインストールを開始します。
- しばらくたつと、
OS(es) installed
という表示でOSインストールが完了しますので、OK
を押すと、自動的に再起動がはじまります。
Rasbberry Pi Configurationの初期設定
- 再起動後は一気にGUIのデスクトップ画面が起動します。この画面で
Menu > Preferences > Rasbberry Pi Configuration
を起動し、初期設定メニューを表示してください。MenuはキーボードのWindowsマークを押すと表示されますので、マウスが無い方は試してみてください。
- Rasbberry Pi Configurationで以下のように設定を行っていきます。
System
タブの設定
- Filesystem
Expand Filesystem
を押して、SDHCカードの全ての領域をラズパイが使用できるようにします。ただ、NOOBSを使用している場合は初期状態でこの設定が行われている状態になりますので、ボタンはグレーアウトしています。 - Password
ラズパイはIDとパスワードの初期設定がすべて共通ですので、セキュリティのためにもパスワードは独自のものに変更したほうが良いです。 - Boot
電源投入後はGUI画面でなく、コマンドライン(黒い画面)で操作するCLIが選択されるようにTo CLI
に変更します。
- Filesystem
Localisation
タブの設定
- Locale
US(アメリカ)のen(英語)で文字コードはUTF-8を使用するように設定します。エンジニアたるもの英語設定でLinuxを扱えるようにならなければ!という意気込みを込めています。自信はありません。 - Timezone
AsiaのTokyoを選択します。 - Keyboard Layout
使っていたのがDellのWindows用USBキーボードでしたので、たぶんこれだ!という勘でJapanのJapanese(OADG 109A)を選択しています。下のType hereというところで試し打ちできますので、記号など怪しいなと思う文字を実際に打ってみてください。
- Locale
- 最後に右下のOKボタンを押すと、再起動(reboot)をするように促されますので、再度OKを選択し、設定変更を実行します。
- CLI(黒い画面)で再度起動し、ログインのためのユーザーIDとパスワードを確認される画面が起動してきます。ラズベリーのアイコンがなぜ4つ並んでいるのかは分かりませんが、設定変更したパスワードを使ってログインしてみてください。
- これで一通りの基本設定は完了になります。
GUIとCLIのインターフェース切り替え
CLIの黒い画面で起動するように設定しましたが、GUI画面が使いたい時には、startx
コマンドでGUIが起動できます。
反対に、GUI画面からCLIに戻りたい場合は、GUIのMenu > Shutdown > Exit to command line
と選択していきます。
無線LAN設定
ラズパイ本体で操作する最後の設定は無線LANをつなぐことです。ラズパイがネットワークに繋がってしまえば、あとはMacなど別の端末からsshでラズパイに接続して操作することができるようになりますので、最後のひと踏ん張りです。
まず大前提である無線LAN USBアダプタがきちんとRaspbina OSに認識されているかを確認します。
1 2 3 4 5 |
$ lsusb Bus 001 Device 004: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS] Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
僕が今回使用する上述のPLANEX Wireless Adapter
が表示されていますので、問題なくアダプタが認識はされているようです。
次に、wpa_supplicant.conf
ファイルに、自宅のWiFiのSSIDとパスワードを追記します。パスワードが平文で直打ちだとセキュリティ上なんかあれなので、以下のwpa_passphrase
コマンドを使って暗号化した状態で設定ファイルにWiFiパスワードを記載します。
(下記のYOURSSID、YOURPASSPHRASEの部分はもちろんあなたのお宅のWiFiのSSIDとパスワードに書き換えてくださいね。)
1 |
$ sudo sh -c 'wpa_passphrase YOUR_SSID YOUR_PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf' |
すると以下のようにwpa_supplicant.conf
にnetwork={}
の部分が追記されます。ただ、#psk=YOUR_PASSPHRASE
のところに平文のパスワードがコメントアウトで書かれていて、これでは暗号化した意味が無いので、この行は削除してください。
1 2 3 4 5 6 7 |
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="SSID"; #psk=YOUR_PASSPHRASE <- この行を削除 psk=konna_kanzino_as7aas7d6fa987s6fa9sd6fasd7f6a9sfsa } |
あとはsudo reboot
でOS再起動し、ネットワークの設定変更を反映すると、WiFiに接続していることが確認できるはずです。wlan0のinetにローカルIPアドレスが振られていれば完了です!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
pi@raspi01:~ $ ifconfig eth0 Link encap:Ethernet HWaddr us:da:yo:55:13:e5 inet6 addr: uson::oado:c26c:c9ba:7847/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr aa:ba:ka:da:54:a5 inet addr:192.168.11.40 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::b963:a915:a354:dae8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3538 errors:0 dropped:26 overruns:0 frame:0 TX packets:1103 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:788328 (769.8 KiB) TX bytes:155691 (152.0 KiB) |
ssh設定
普通にサーバーにログインする場合と同じようにMac側からsshログインできます。これでようやくMacなどの端末からアクセスできるようになりますね。USB接続で使った有線キーボードとMacのキーボードの打感の違いΣ(゚Д゚)を噛みしめてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ ssh pi@192.168.11.40 The authenticity of host '192.168.11.40 (192.168.11.40)' can't be established. RSA key fingerprint is 98:eb:fb:96:0c:fc:1c:f2:5b:c9:4d:97:77:48:12:7a. Are you sure you want to continue connecting (yes/no)? yes pi@192.168.11.40's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 21:32:08 2015 pi@raspi01:~ $ |
毎回パスワードをうつのが面倒くさいので、ssh-copy-idを使って、手元端末の公開鍵をラズパイに登録すると、次回からパスワード入力を省略できるようになるので便利です!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ brew install ssh-copy-id $ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@192.168.11.40 /usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys pi@192.168.11.40's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'pi@192.168.11.40'" and check to make sure that only the key(s) you wanted were added. $ ssh pi@192.168.11.40 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 21:44:08 2015 from 192.168.11.9 pi@raspi01:~ $ |
さらに、ログインのたびにラズパイのIPアドレスを打ち込むのも面倒なので、手元端末の~/.ssh/config
ファイルにラズパイのログイン情報を登録します。
1 2 3 4 5 |
# Raspberry Pi Host pi HostName 192.168.11.40 port 22 User pi |
そうすると、ssh pi
と打ち込むだけで簡単にラズパイにログインできるようになりますので、とってもオススメですよ!
1 2 3 4 5 6 7 8 9 10 |
$ ssh pi The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 21:48:21 2015 from 192.168.11.9 pi@raspi01:~ $ |
最後に、無線LANの設定によってssh接続の反応が時々悪くなる問題の対応として、無線LANのパワーマネジメント機能をOFFにする設定を行います。
(sshを普通に使っていて、しばらく何も入力をしないで放置すると、次回の入力時に入力が10秒ぐらい待たされてイライラしてしまうアレのことです。)
1 |
sudo vim /etc/modprobe.d/8192cu.conf |
最初は8192cu.conf
ファイルがありませんので、新規作成になります。
1 2 |
# power management off options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1 |
ファイルを作成したら再起動しましょう。これで快適なssh接続を行えるようになります!
1 |
sudo reboot |
パッケージ類のアップデート
ひとまずOSインストール、初期設定、ssh接続ができましたので、最後にOSのアップデートをしてラズパイの初期設定をしめくくりましょう。
apt-getコマンドを順にたたいてRasbianを最新の状態にして、再起動してあげます。
1 2 3 4 5 |
$ sudo apt-get update $ sudo apt-get upgrade $ sudo rpi-update $ sudo reboot |
ちなみに、sudo rpi-update
というRaspberry Piのfirmwareのアップデートコマンドも合わせて実行すると説明されているブログがいくつもあったので、その通り実行したところ、Raspbian OSを再起動するとブート時に以下のエラーが発生して起動できなくなってしまいました。原因は海外サイトを見ても、SDカード起因説や電源供給起因説など諸説ありますが、はっきりした結論は出ていないようでした。sudo rpi-update
を実行される場合は自前にバックアップを取るなど、注意して実行したほうが良さそうです。
1 2 |
[608344.356884] mmcblk0: error -110 transferring data, sector 4484523, nr 5, cmd response 0x900, card status 0x200b00 [608344.356919] end_request: I/O error, dev mmcblk0, sector 4484523 |
ディスプレイ無しでラズベリーパイを起動、Macからssh接続する
ssh接続もできるようになりましたので、あとはラズパイ本体からたくさん生えているコードを、電源以外すべて引き抜いて運用できるようにします。
まずは、sudo halt
コマンドをsshから入力し、Raspbian OSを停止させます。この状態で電源をコンセントから抜くことができますので、HDMIケーブル、キーボードのUSBコードを引き抜きます。
これでラズパイ本体にはmicroSDHCカード、無線LAN USBアダプタ、電源コードのみの接続になりますので、非常にスッキリした状態になります。ラズパイくんも喜んでいますね\(^o^)/
あとは、再度電源をコンセントに接続します。ディスプレイがありませんので、ラズパイ本体の様子をみて起動状態を把握するしかありませんが、最初はオレンジ色と黄色のランプが両方共に点滅している間はOSが立ち上がっている状態です。
だいたい10〜20秒ぐらい経過するとオレンジ色のランプのみの点滅・点灯になります。
基本的にこの状態でssh接続可能になっていますので、Macなどの端末からssh接続を試みて下さい。
ということで、これにてラズベリーパイ焼き上がりです!
最後に
こんなに小さいのにパワフルに稼働してくれるRaspberry Pi 2 model Bがやってきていろいろとやりたいことが膨らんでいます!
IT業界で流行の機械学習にも興味がありますので、Raspberry Pi 2と機械学習を合わせたガジェット的なものを作っていきたいと思いますので、乞うご期待下さい!