最新情報/正誤表

本書発行後に各ソフトのバージョンアップが行われ、設定手順等に大幅な相違が生じた場合や、本書に説明の誤りや誤解を招く表現、重大な誤植があった場合や、本サイトにてお知らせします。

Raspberry Pi 3 の対応について

2016年2月29日、Raspberry Piの新機種「Raspberry Pi 3」が登場しました。
新しいRaspberry Pi 3ではWi-FiやBluetoothが搭載され、CPUの性能も大幅にグレードアップしています。


Raspberry Pi 2 → 3 の主な変更点

  • CPU:Cortex-A7 ARMv7 32bit → Cortex-A53 ARMv8 64bit
  • クロック周波数:900MHz → 1.2GHz
  • Wi-Fi:なし → 802.11 b/g/n
  • Bluetooth:なし → Bluetooth 4.1、LE
一方で形状やコネクタの位置に変更はなく、今までのケースや周辺機器はそのまま使用することができます。GPIOポートのヘッダーピンも同じため、本書の説明通り進めることができます。


Raspbian Jessieの対応について

2015年9月末にRaspberry Piの新しいOS「Raspbian Jessie」が公開されました。今までの「Raspbian Wheezy」からのメジャーアップデートとなり、Kernelをはじめ様々なソフトの新しいバージョンが収録されています。本書はRaspbian Wheezyでの手順を解説しているため、Raspbian Jessieを使用すると、本書の説明の通りに進めなくなる箇所があります。Raspbian Jessieを使用するうえでの変更内容や問題点などはこちらで説明していきます。

古いバージョンのNOOBS/Raspbianを入手したい場合は、以下のミラーサイトからダウンロードできます。
・NOOBS http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/
・Raspbian http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/

本ページでは NOOBS 1.8(Raspbian Jessie 2016-02-26)を前提に説明します。


1-3 P.24 「必要な機器を準備しよう」

Raspberry Pi 3では性能が大幅に向上したかわりに、2.5A以上の電源が推薦されています。しかし実際のところ、常に2.5A流れるわけではないようです。
試しに筆者の環境にて、CPUの全コアに100%の負荷をかけたところ、1Aを越えることはありませんでした(USBポート、GPIOポートは未接続の状態)。Wi-Fiでの通信やGPUでの画像処理、接続したUSB機器などによって流れる電流は増える可能性はありますが、2.5A以上に対応したものが用意できない場合は、2A対応のものでも大丈夫だと思われます。
※ただしmicro USBケーブルは必ずACアダプタの能力に合ったものにしてください


2-2 P.36 「Raspberry Pi の配線をしよう」

Raspberry Pi 3 ではメモリカードのロック機構がなくなりました。microSDメモリを取り付けるときは、スロットの奥まで押し込みむだけです。取り外すときも押さずに、そのまま引き抜きます。


2-3 P.39 「Raspberry Pi の初期設定をしよう」

NOOBS 1.8からセットアップ画面でWi-Fiのボタンが表示されるようになりましたが、NOOBS 1.8の時点では機能していません。今後のバージョンアップで改善されると思われますが、Raspberry Pi 3でWi-Fiを使用したい場合でも、セットアップ時はLANケーブルを接続してください。


2-3 P.41 「Raspberry Piの初期設定をしよう」

Raspbian WheezyではOSを起動すると、Raspberry Piの設定ユーティリティの「Raspi-config」が自動的に起動しましたが、新しいRaspbian Jessieでは、OSを起動するといきなりデスクトップが表示されます。従来のRaspi-configに加え、GUI版の設定ユーティリティ「Raspberry Pi Configration」が使用できるようになりました。
本書ではCUI版のRaspi-configや、コンソール上でコマンドを入力した使用方法を中心に解説していますので、あえて従来のRaspbian Wheezyと同じように操作できるように設定します。GUI版の設定ユーティリティでも同じ事ができますので、デスクトップを中心に使用されたい方は、そちらを使用してもかまいません。

左上のMenuからPreferences→Raspberry Pi Configrationを選択します。

SystemタブのBootを「To CLI」に変更、「Login as user 'pi'」のチェックを外して、OKを押します。すると再起動するか聞いてきますので、Yesを押して再起動します。

再起動が完了すると、従来のログインプロンプト画面が表示されます。Login:の箇所では pi と入力、Password:の箇所では初期パスワードの raspberry と入力してログインします。(P.42の通り)ログインしたら以下のコマンドを入力して、Raspi-configを起動します。

$ sudo raspi-config

以降の説明はP.41の通りです。


2-3 P.41 「Raspberry Piの初期設定をしよう」

Raspi-configで設定メニューが追加されています。

Boot Options
起動後にデスクトップ(GUI)を開くか、コンソール(CUI)を開くかの設定
Wait for Network at Boot
Raspberry Piの起動時にネットワークへの接続が完了するのを待つ設定
Internationalisation Options → Change Wi-fi Country
Wi-fiを使用する国の設定(Wi-fiの設定は5-1 P.118で解説します)
Advanced Options → GL Driver
ハードウェアアクセラレートされたDesktop GL driverを有効にします


2-3 P.46 「Raspberry Piの初期設定をしよう」

キーボードの設定を行って刻印と違う文字が入力される場合、USBキーボードを抜き差ししてみてください。改善しないときはRaspberry Piを再起動してみてください。


2-4 P.52 「ログインと終了について知ろう」

sudo halt コマンドを実行しても画面が表示されたままになっています。その状態で電源を切ってもかまいませんが、-p オプションを付けることで、shutdownコマンドと同じように終了させることができます。
Raspberry Pi 3ではシャットダウン後にACT LED(緑色)が点灯したままになっています。点滅しなくなったら電源を切ってください。

$ sudo halt -p


3-2 P.61 「ネットワークを設定しよう」

hostname -Iコマンドを実行した際、11.22.33.44 という形式のIPアドレス(IPv4)の隣に、IPv6アドレスも表示されます。同様にifconfigコマンドでもIPv6アドレスが「inet6 addr」という箇所に表示されます。

例)
192.168.0.xxx 1234:5678:9012:3456:1111:2222:3333:4444


3-2 P.64 「ネットワークを設定しよう」

Raspbian Jessieになってから、一般のユーザー(pi)ではpingコマンドが実行できなくなりました。sudoを付けて実行してください。

$ sudo ping www.yahoo.co.jp


3-5 P.72 「Raspberry Piを日本語化しよう」

jfbtermが正常に終了しない不具合があります。今後のバージョンアップで改善される可能性もあります。


3-5 P.81 「デスクトップ環境を使ってみよう」

(NOOBS 1.8、Raspbian Jessie 2016-02-26では正常にTextEditorが起動します)
Raspbian JessieではLibreOfficeがインストールされているため、テキストファイルを開こうとするとLibreOffice Writer起動してしまいます。
TextEditorを起動するようにするには右クリックしたメニューから「アプリケーションで開く」を選択し、アクセサリの中のTextEditorを選択してください。「選択したアプリケーションをこのファイルタイプのデフォルトのアクションとする」をチェックしておくと、次回以降、TextEditorが起動するようになります。


4-2 P.96 「サウンドを再生しよう」

サンプルファイルのパスが変わっています。 以降のページでは /usr/share/pyshared/ は /usr/lib/python3/dist-packages/ に置き換えてください。

例)
/usr/share/pyshared/pygame/examples/data/house_lo.wav
 ↓
/usr/lib/python3/dist-packages/pygame/examples/data/house_lo.wav


4-3 P.101 「音声合成でRaspberry Piを喋らせよう」

ファイルの構成が変わりました。以下のサンプルプログラム jtalk2.sh で試してみてください。本書に記載のコマンド jtalk.sh は適宜 jtalk2.sh に読み替えてください。

サンプルプログラム jtalk2.sh
#!/bin/bash HV=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice tempfile=`tempfile` option="-m $HV \ -s 16000 \ -p 100 \ -a 0.03 \ -u 0.0 \ -jm 1.0 \ -jf 1.0 \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -ow $tempfile" if [ -z "$1" ] ; then open_jtalk $option else if [ -f "$1" ] ; then open_jtalk $option $1 else echo "$1" | open_jtalk $option fi fi aplay -q $tempfile rm $tempfile


4-3 P.104 「音声合成でRaspberry Piを喋らせよう」

本書ではMMDAgentの Ver.1.3.1 をダウンロードするように説明していますが、新しいサンプルプログラム(jtalk2.sh)の方で動作する Ver.1.4 もしくは Ver.1.6 をダウンロードします。どちらでも同じです。

ダウンロードしたファイルを解凍したらコピーします。
$ sudo cp -R MMDAgent_Example-1.4/Voice/mei /usr/share/hts-voice/.
コピーしたファイルを確認します。
$ ls -l /usr/share/hts-voice/mei/
-rw-r--r-- 1 root root 862503 10月 2 10:51 mei_angry.htsvoice
-rw-r--r-- 1 root root 862503 10月 2 10:51 mei_bashful.htsvoice
-rw-r--r-- 1 root root 862503 10月 2 10:51 mei_happy.htsvoice
-rw-r--r-- 1 root root 862503 10月 2 10:51 mei_normal.htsvoice
-rw-r--r-- 1 root root 862503 10月 2 10:51 mei_sad.htsvoice
サンプルプログラム(jtalk2.sh)の HV= の部分を、今回コピーした mei_happy.htsvoice を使用するように変更します。
HV=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
 ↓
HV=/usr/share/hts-voice/mei/mei_happy.htsvoice
再生例)
$ ./jtalk2.sh "今日はいい天気ですね"


4-4 P.108 「DLNAサーバーを構築しよう」

MiniDLNAのDLNAサーバーにアクセスすると、再生はできますがファイル名やフォルダ名が文字化けしています。今後のバージョンアップで改善される可能性もあります。


5-1 P.120 「無線 LAN を利用しよう」(CUI編)

Raspberry Pi 3ではWi-Fiモジュールが搭載されています。はじめにRaspi-configでWi-Fiを使用する国の設定を行います。

$ sudo raspi-config

Internationalisation Options → Change Wi-fi Country を選択
「JP Japan」を選択します。
以上で国の設定は完了です。Raspi-configを終了します。再起動するかどうか聞いてきますので、再起動します。 この後は本書の説明通りです。


5-1 P.121 「無線 LAN を利用しよう」(GUI編)

Raspberry Pi 3ではWi-Fiモジュールが搭載されています。はじめにWi-Fiを使用する国の設定を行います。
左上のMenuからPreferences(設定)→Raspberry Pi Configration(Raspberry Piの設定)を起動し、 Localisation(ローカライゼーション)タブを開きます。

Set WiFi Countryを開き「JP Japan」を選択します。
OKを押してRaspberry Pi Configrationを終了します。すると再起動するかどうか聞いてきますので、再起動します。 この後は本書の説明通りです。


5-3 P.132 「Webカメラを利用しよう」

もしメニューに「サウンドとビデオ」や「guvcview」が見当たらない場合は、Menu→設定→Main Menu Editorを開き、サウンドとビデオにある適当なものをチェックしてみてください。その後現れます。今後のバージョンアップで改善される可能性もあります。


5-4 P.139. 「Webカメラを利用しよう」

ffmpeg のかわりに libav-tools をインストールします。

$ sudo apt-get install libav-tools


6-3 P.166 「WiringPi を活用しよう」

Raspbian Jessie 2015-11-21版(NOOBS 1.5)以降では、WiringPiがあらかじめインストールされています。WiringPiのソースプログラムの取得、コンパイル、インストールは不要ですので飛ばして先に進んでください。


6-6 P.179 「基板上の LED を制御してみよう」

Raspberry Pi 3ではWi-Fiのアンテナが搭載されたため、LEDの位置がGPIOポートのヘッダピン寄りからMicro USBコネクタ寄りに移動しました。また、NOOBS 1.8(Raspbian Jessie 2016-02-26)では、直接制御できるLEDは led0 だけになっています。
LEDの制御方法は度々変わっているため、将来OSのバージョンアップで変更になる可能性もあります。


7-2 P.228 「GPIOをWebIOPiで制御しよう」

Raspbian Jessieではサービスの管理方法が変わったため、WebIOPiの起動に必要なファイルを別途用意する必要があります。まずはじめに、webiopi.serviceというファイルを作成して /etc/systemd/system/ にコピーします。

ファイル webiopi.service
[Unit] Description=webiopi Server After=syslog.target After=network.target [Service] Type=simple PIDFile=/var/run/webiopi.pid ExecStart=/usr/bin/webiopi -c /etc/webiopi/config [Install] WantedBy=multi-user.target
ファイルを作成したら、コピーします。
$ sudo cp webiopi.service /etc/systemd/system/
システム起動時に自動的にWebIOPiを起動させる方法 が変わります
sudo update-rc.d webiopi defaults
 ↓
sudo systemctl enable webiopi
システム起動時に自動的にWebIOPiを起動しないようにする方法
sudo update-rc.d webiopi remove
 ↓
sudo systemctl disable webiopi


7-2 P.228 「GPIOをWebIOPiで制御しよう」

WebIOPi Ver.0.71はRaspberry Pi 3には対応していません。Raspberry Pi 3で動作させる方法は、P.229に記載のRaspberry Pi 2に対応させる方法と同じです。


7-4 P.241 「スマートフォンでI2Cを制御しよう」

Apacheのコンテンツを置く場所が /var/www/ から /var/www/html/ に変更になりました。ファイルは /var/www/html/ にコピーしてください。


8-2 P.256〜257 「電源シャットダウン ボタンを作ろう」

P.257のRaspberry Pi内部のプルダウン抵抗を有効にする方法が間違っていました。 WiringPiを使用してプルダウン抵抗を有効する方法をご説明します。

内部のプルダウン抵抗を有効にする方法
$ gpio -g mode GPIOポート番号 down

down を up にするとプルアップされます。また、off にすると無効になります。
サンプルプログラムの訂正箇所は、以下の赤い部分になります。

shutdown-button.sh
#!/bin/sh GPIO=22 #使用するGPIOポート PUSHTIME=5 #シャットダウンを実行する秒数 ## GPIOをinモードにする gpio -g mode $GPIO in gpio -g mode $GPIO down ## ACT LED制御のサブルーチン set_led_mode () { echo $1 > /sys/class/leds/led0/trigger } set_led_value () { echo $1 > /sys/class/leds/led0/brightness } ## 5秒間押されるまで待つ cnt=0 while [ $cnt -lt $PUSHTIME ] ; do if [ `gpio -g read $GPIO` -eq "1" ] ; then cnt=`expr $cnt + 1` [ $cnt -eq 1 ] && set_led_mode heartbeat else [ $cnt -gt 0 ] && set_led_mode mmc0 cnt=0 fi sleep 1 done ## ACT LEDでシャットダウンの合図をする set_led_mode none set_led_value 1 sleep 2 set_led_value 0 set_led_mode mmc0 ## シャットダウンの実行 shutdown -h now


<TIPS> HDMIで音が出ない場合の対処方法

HDMI接続のディスプレイで映像は出るのに音が出ない、という場合は、出力のモードがうまく判定できなかった可能性があります。/boot/config.txt ファイルを編集してみてください。hdmi_driver=2にするとHDMIモードに固定されます。

/boot/config.txt ファイルを編集
#hdmi_driver=2
 ↓
hdmi_driver=2


<TIPS> Raspberry PiにIPアドレス無しでアクセスする方法

Raspberry PiのIPアドレスを調べなくても、Raspberry Piに設定したホスト名でアクセスする方法もあります。初期設定ではホスト名は raspberrypi になっているので、後ろに.localを付けて raspberrypi.local でアクセスできます。もし同じLAN内で複数のRaspberry Piを使用している場合は、Raspi-configのAdvanced Options→Hostname でホスト名を変更すれば、別々のRaspberry Piにアクセスが可能です。

sshでのリモートログインの例
ssh pi@raspberrypi.local


<TIPS> メディアセンターOSMC専用にセットアップする方法

Raspberry Pi 2および3では、単独で動作するメディアセンターOSMCが使用できます。OSMCを使用する場合、現在使用しているSDカードとは別の新しいSDカードにインストールを行います。

手順
1.新しいメモリカードを用意しNOOBSのファイルをコピーします。(P.30参照)
2.NOOBSのセットアップ画面で OSMC_Pi2 をインストールします
 (インターネットへの接続が必要です)
3.インストールが完了したらRaspberry Piを再起動します
 (途中で画面が乱れますがそのまま待機してください)
4.OSMCが起動したら以下のセットアップ手順で進めます。
セットアップ手順
Welcome: English(ここではJapaneseを選択しません)
Timezone: Asia → Tokyo
Hostname: 任意 → Accept
SSH: 任意 → Accept
License: Continue
Look+Feel: Classic
Sign-Up: No Thanks
Exit
Check for Updates?: YES

以降は本書(P.112)の説明と同じ手順で設定できます。
※AirPlayについてはiOS8からは接続できますが、iOS9に非対応のようです