前回の記事でRaspberry Pi本体と周辺機器がそろったので、次はRaspberry PiにOSをインストールして、各種設定を進めて行きます。
SDカードにOSを焼く
参考サイトの手順の通りなんだけど、メモなので順番に書いて行きます。
私の環境
Mac OS 10.9(Marvericks)
OSイメージのダウンロード
下記URLよりOSイメージをダウンロードします。
Downloads | Raspberry Pi
http://www.raspberrypi.org/downloads
OSは「Raspbian」です。
とりあえず初心者は「Raspbian」を使っておけばいいらしいです。
「NOOBS (offline and network install)」はウィザードみたいな感じでOSを選択してインストールできるらしいんだけど、インストールするOSが決まっているなら、普通に「Raspbian」をダウンロードしてSDカードに焼けばいいらしい。
ダウンロードには少し時間がかかった。
(多分10分くらい。)
ダウンロードしたzipを解凍すると「2014-01-07-wheezy-raspbian.img」になる。
SDカードにOSを焼く
SDカードに「焼く」って表現が正しいかはわからないけど、単純にコピペしただけじゃOSが起動しないっぽいから、「焼く」なんだと思う。
SDカードにOSを焼くのは専用のツールがあるみたい。
便利ねー。
下記URLから「RPi-sd card builder」(執筆時のバージョンは「v1.2」)をダウンロード。
SD card setup – Raspberry Pi – Mac | All the (*)Ware
http://alltheware.wordpress.com/2012/12/11/easiest-way-sd-card-setup/
解凍すると「RPi-sd card builder v1.2.app」になる。
ちなみに、ファイルのホストサーバー(MEGA)がSafariだと動かないっぽい。
実際、私の環境(Mac OS 10.9 + Safari 7)では、ダウンロードファイルが壊れていたので、Firefoxでダウンロードし直した。
OSのインストール
- 「RPi-sd card builder v1.2.app」を起動
- ファイル選択画面になって「Choose Image File (.img)」と表示されるので、先ほどダウンロード&解凍した「2014-01-07-wheezy-raspbian.img」を選択する
- 「SD CARD CONNECTED?」という画面が表示されるので、SDカードをMacに挿入して「Continue」をクリック
- SDカードを選択する画面になるので、OSを焼くSDカードにチェックを入れて「OK」をクリック
- パスワード入力を求められるので、Macのユーザーのパスワードを入力して「OK」をクリック
- 「SC CARD EJECTED?」という画面が表示されるので、「Continue」をクリック
- 2分半ほど待つ。この間、特に何も画面上の動きは無いので、ただ待つだけ。
- 「COMPLETE」という画面が表示されたら、完了。
- MacからSDカードを抜いて、Raspberry Piに刺す。
OSのインストールと初期設定
Raspberry PiにSDカード、USB無線LAN、USBハブ、USBキーボード、USBマウスを刺して、microUSB電源を刺して、電源を入れる。
(電源ボタンは無いので、電力が供給されると自動的に電源が入る。)
以下、初期設定の内容。
- 1. Expand Filesystem
- SDカードの保存領域を全部使うようにするための設定らしい。ここで設定しないと2GB分しか使うことができないらしい。特に理由がなければ「Enter」を実行。
- 2. Change User Password
- 「root」以外に「pi」というユーザーが作られるので、そのユーザーのパスワード。初期設定は「raspberry」。
- 私は変更しなかった。
- 4. Internationalisation Options
- 地域設定や言語設定。日本語で使いたいので変更する。
- 「I1 Change Locale」を選択して「Enter」
- 「en_GB.UTF-8 UTF-8」のチェックを外す
- シフトボタンでチェックのオンオフができる
- 「ja_JP.UTF-8 UTF-8」にチェックを入れて「Enter」
- 「Configuring locales」の画面では「ja_JP.UTF-8」を選択して「Enter」
- 「en_GB.UTF-8 UTF-8」のチェックを外す
- 「I2 Change Timezone」を選択して「Enter」
- 「Asia」を選択して「Enter」
- 「Tokyo」を選択して「Enter」
- 「I3 Change Keyboard Layout」を選択して「Enter」
- 「Generic 105-key (Intl) PC」を選択して「Enter」
- 「Other」を選択して「Enter」
- 「Japanese」を選択して「Enter」
- 「Japanese」を選択して「Enter」
- 「The default for the keyboard layout」(始めから選択されている)を選択して「Enter」
- 「No compose key」(始めから選択されている)を選択して「Enter」
- 「Configuring keyboard-configuration」の画面では「No」(始めから選択されている)を選択して「Enter」
- 「Finish」を選択して「Enter」
- 「Would you like to reboot now?」の画面では「Yes」を選択して「Enter」
ここで一旦再起動。
無線LANの設定
- 「ユーザ名: pi」「パスワード: raspberry」でログイン
- 「startx」でX Windowを起動
- デスクトップの「Wifi Config」アイコンをダブルクリック
- 無線LANをよしなに設定
ステルスモードのアクセスポイントに接続しようとして結構手間取って、結局できなかったので、アクセスポイントのステルスモードを止めた。ステルスモードのアクセスポイントに簡単に接続する方法を誰か教えてくださいm(_ _)m
apt-get update、apt-get upgrade
デスクトップの「LXTerminal」アイコンをダブルクリックして、ターミナルを開いて、下記コマンドを実行。
1 2 |
$ sudo apt-get update $ sudo apt-get upgrade |
avahi-daemonの設定
「xxx.local」というホスト名でMacにアクセスできたり、自動的にネットワーク上のPCが参照できたりする「Bonjour」に対応させる。
まずはavahi-daemonのインストール。
1 |
$ sudo apt-get install avahi-daemon |
次にホスト名を付ける。
1 2 |
$ sudo vi /etc/hostname tagawa-raspberrypi # ホスト名はよしなに |
/etc/hostsも編集する。
1 2 |
$ sudo vi /etc/hosts 127.0.1.1 tagawa-raspberrypi # /etc/hostnameと同じ名称に変更 |
とりあえずSSHのavahiサービスを作る。
udisks.serviceというサービスが始めからあるので、それをコピーして作ることにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ sudo cp /etc/avahi/services/udisks.service /etc/avahi/services/ssh.service $ sudo vi /etc/avahi/services/ssh.service <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <!-- This file is part of udisks --> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_ssh._tcp</type> <port>22</port> </service> </service-group> |
avahi-daemonを再起動。
1 |
$ sudo /etc/init.d/avahi-daemon restart |
ホスト名を変更すると「sudo: ホスト raspberrypi の名前解決ができません」って言われるけど、一旦無視して作業を進める。
ここで再起動するので、多分、名前解決の件は再起動後に直ってると思う。
1 |
$ sudo reboot |
再起動したら、MacからSSH接続できるか確認する。
1 |
$ ssh pi@tagawa-raspberrypi.local |
接続できたら、モニター、USBキーボード、USBマウスはしばらくいらないので取り外す。
以降の作業はMacから行う。
参考
Avahi – Wikipedia
http://ja.wikipedia.org/wiki/Avahi
Bonjour – Wikipedia
http://ja.wikipedia.org/wiki/Bonjour
Raspberry Pi(Raspbian)にmDNSを設定する – ぱせらんメモ
http://d.hatena.ne.jp/pasela/20131023/mdns
VNCサーバーの設定
私はLinuxコマンド力が弱いので、VNCでX Windowが使えるようにしておく。
1 |
$ sudo apt-get install tightvncserver |
tightvncserverを起動する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ tightvncserver You will require a password to access your desktops. Password: # パスワードを入力 Warning: password truncated to the length of 8. Verify: # パスワードを入力 Would you like to enter a view-only password (y/n)? n # view-onlyを使いたい場合は「y」 New 'X' desktop is tagawa-raspberrypi:1 Creating default startup script /home/pi/.vnc/xstartup Starting applications specified in /home/pi/.vnc/xstartup Log file is /home/pi/.vnc/tagawa-raspberrypi:1.log |
このままだと「tightvncserver」は自動実行されないので、自動実行スクリプトを作成する。
スクリプトは参考サイトからコピペさせていただきました。(解像度の部分だけ一部修正)
(http://elinux.org/RPi_VNC_Server#Run_at_boot のほうのスクリプトだと、rootユーザーのVNCサーバーを起動しようとしているっぽくて、うまく動かなかった。)
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 27 28 29 30 31 32 33 34 35 36 37 38 |
$ sudo vi /etc/init.d/vncboot ### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO #! /bin/sh # /etc/init.d/vncboot USER=pi HOME=/home/pi export USER HOME case "$1" in start) echo "Starting VNC Server" #Insert your favoured settings for a VNC session su $USER -c '/usr/bin/vncserver :1 -geometry 800x600 -depth 24' ;; stop) echo "Stopping VNC Server" su $USER -c '/usr/bin/vncserver -kill :1' ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0 |
実行権限を付与。
1 |
sudo chmod 755 /etc/init.d/vncboot |
自動実行するように設定。
1 |
$ sudo update-rc.d vncboot defaults |
再起動。
1 |
$ sudo reboot |
再起動後にVNCサーバーの起動を確認。
1 2 |
$ ps -ef | grep tightvnc | grep -v grep pi 2215 1 0 00:45 ? 00:00:01 Xtightvnc :1 -desktop X -auth /home/pi/.Xauthority -geometry 800x600 -depth 24 -rfbwait 120000 -rfbauth /home/pi/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb |
avahiのサービスを作成。
(先に作ったSSHのサービスをコピーして作る。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ sudo cp /etc/avahi/services/ssh.service /etc/avahi/services/vnc.service $ sudo vi /etc/avahi/services/vnc.service <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <!-- This file is part of udisks --> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_vnc._tcp</type> <port>5901</port> </service> </service-group> |
avahi-daemonを再起動。
1 |
$ sudo /etc/init.d/avahi-daemon restart |
MacからのVNC接続は「Finder -> メニュー -> 移動 -> サーバへ接続」でサーバー接続ウィンドウを開いて、「vnc://tagawa-raspberrypi.local:5901」を入力して「接続」ボタンをクリックすると、接続される。
接続後の画面はこんな感じ。
参考
Raspberry Piで遊ぼう [No.5:VNC接続をしよう]:アシマネのドタバタ奮闘日記:So-netブログ
http://assimane.blog.so-net.ne.jp/2013-03-27
RPi VNC Server – eLinux.org
http://elinux.org/RPi_VNC_Server
USBサウンドカードの設定
USBサウンドカードを接続して、「aplay」コマンドを実行して認識されているかを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ aplay -l **** ハードウェアデバイス PLAYBACK のリスト **** カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA] サブデバイス: 7/8 サブデバイス #0: subdevice #0 サブデバイス #1: subdevice #1 サブデバイス #2: subdevice #2 サブデバイス #3: subdevice #3 サブデバイス #4: subdevice #4 サブデバイス #5: subdevice #5 サブデバイス #6: subdevice #6 サブデバイス #7: subdevice #7 カード 1: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio] サブデバイス: 1/1 サブデバイス #0: subdevice #0 |
「alsamixer」コマンドも実行してみる。
(参考サイトに掲載されているまま実行しているだけなので、「alsamixer」コマンドで何ができるのかよくわかっていません…。)
1 |
$ alsamixer |
こんな画面は初めて見たので、ちょっと新鮮。
続いて、音声出力の設定を変更して、起動時にはUSBサウンドカードが優先されるようにする。
1 2 3 |
$ sudo vi /etc/modprobe.d/alsa-base.conf #options snd-usb-audio index=-2 # 上記行をコメントアウト |
AirPlayの設定
参考サイトの通りなんですが、メモなので順番に書いていきます。
まず、必要なライブラリをインストール。
1 |
$ sudo apt-get install -y libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl |
perl-net-sdpをクローンしてくる。
1 2 3 4 5 6 |
$ git clone https://github.com/njh/perl-net-sdp.git Cloning into 'perl-net-sdp'... remote: Reusing existing pack: 193, done. remote: Total 193 (delta 0), reused 0 (delta 0) Receiving objects: 100% (193/193), 40.48 KiB, done. Resolving deltas: 100% (83/83), done. |
perl-net-sdpをビルド。
1 2 3 4 5 6 7 8 9 |
$ cd perl-net-sdp $ perl Build.PL WARNING: the following files are missing in your kit: Makefile.PL META.yml Please inform the author. Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'Net-SDP' version '0.07' |
WARNINGって言われてるけど、気にしないでおく。
引き続きビルドの実行とインストール。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ sudo ./Build Building Net-SDP $ sudo ./Build test t/00use.t ....... ok t/10generate.t .. ok t/10parse.t ..... ok t/20repeat.t .... ok t/30asstring.t .. ok All tests successful. Files=5, Tests=69, 4 wallclock secs ( 0.82 usr 0.04 sys + 3.11 cusr 0.12 csys = 4.09 CPU) Result: PASS $ sudo ./Build install Building Net-SDP Installing /usr/local/man/man1/sdp2rat.1p Installing /usr/local/share/perl/5.14.2/Net/SDP.pm Installing /usr/local/share/perl/5.14.2/Net/SDP/Media.pm Installing /usr/local/share/perl/5.14.2/Net/SDP/Time.pm Installing /usr/local/man/man3/Net::SDP.3pm Installing /usr/local/man/man3/Net::SDP::Media.3pm Installing /usr/local/man/man3/Net::SDP::Time.3pm Installing /usr/local/bin/sdp2rat |
インストールできたっぽい。
perl-net-sdpを削除する。
1 2 |
$ cd ../ $ sudo rm -rf perl-net-sdp |
shairportをクローンしてくる。
(どうやらこのshairportっていうのがAirPlayの機能で、上記まではそれを動作させるための準備だったっぽい。)
1 2 3 4 5 6 7 |
$ git clone https://github.com/hendrikw82/shairport.git Cloning into 'shairport'... remote: Counting objects: 697, done. remote: Compressing objects: 100% (313/313), done. remote: Total 697 (delta 381), reused 697 (delta 381) Receiving objects: 100% (697/697), 207.36 KiB | 102 KiB/s, done. Resolving deltas: 100% (381/381), done. |
shairportをインストール。
※2015年3月13日: 間違っていたので修正
1 2 3 4 5 6 7 8 9 10 11 |
$ cd shairport $ make && sudo make install cc -O2 -Wall -c alac.c -o alac.o cc -O2 -Wall -DHAIRTUNES_STANDALONE hairtunes.c alac.o -o hairtunes -lm -lpthread -lssl -lcrypto -lao cc -O2 -Wall -c socketlib.c -o socketlib.o cc -O2 -Wall -c shairport.c -o shairport.o cc -O2 -Wall -c hairtunes.c -o hairtunes.o cc -O2 -Wall socketlib.o shairport.o alac.o hairtunes.o -o shairport -lm -lpthread -lssl -lcrypto -lao install -D -m 0755 hairtunes /usr/local/bin/hairtunes install -D -m 0755 shairport.pl /usr/local/bin/shairport.pl install -D -m 0755 shairport /usr/local/bin/shairport |
shairportを起動する。
1 |
$ shairport.pl -a AirPi |
AirPiっていうスピーカーが認識されて、iTunes等から選択できるようになる。
音声出力先が増えてる!
iTunesにも音声出力先が増えてる!!
このままだと「shairport」は自動実行されないので、自動起動されるようにする。
1 2 3 |
$ sudo cp shairport.init.sample /etc/init.d/shairport $ sudo chmod 755 shairport $ sudo update-rc.d shairport defaults |
スピーカ名を修正。
1 2 3 4 |
$ sudo vi /etc/init.d/shairport #DAEMON_ARGS="-w $PIDFILE" DAEMON_ARGS="-w $PIDFILE -a AirPi" # 上記のように修正 |
Raspberry Piを再起動した後に、AirPiが認識できていればOK。
1 |
$ sudo reboot |
インストールに利用したshairportは削除しておく。
1 2 |
$ cd $ rm -rf shairport |
以上、Raspberry PiをAirPlay端末にするまでの手順のメモでした。
ここまで書いておいてなんですけど、AirPlayをしたいだけならAirMac Express買ったほうが早いです。
私個人としてはLinuxとRaspberry Piの勉強になったのと、Raspberry Pi自体を持て余していたので、これはこれで良かったんですけども。
Apple AirMac Express ベースステーション MC414J/A
参考サイト
- Raspberry Piを「AirPlay化」して音楽をストリーミングする方法 : ライフハッカー[日本版]
- Raspberry Pi初心者のためのOS別セットアップガイド : ライフハッカー[日本版]
- これから Raspberry Pi をいじる方向けの資料 20130818版
コメントを残す