前回(Speaker pHATをMopidyでiPhoneから操作してmp3を再生する携帯ミュージックボックス化(前編))の続きです。
hostapdでRaspberry Pi Zero Wをアクセスポイントにする
アクセスポイントと言ってもインターネットには繋げないので、実質的にiPhoneと繋ぐためです。
インターネット × << Raspberry Pi Zero W <<ーー>> iPhone
mopidyのAPPがありませんのでブラウザ(safari)での接続になります。Androidにはあるようです。確認していません。
尚、この作業はRaspberry Pi Zero WとWi-FiにてSSHで繋いで作業している場合、一旦は繋がらなくなりますので、最初からRaspberry Pi Zero Wにモニターとキーボードを接続してインストールと設定をしてください。
hostapdのインストール
apt-getでのインストールはv2.3です。確認していませんが上手く動作しないようです。そのため後から最新版に差し替える作業をします。
1 2 |
sudo apt-get update sudo apt-get install hostapd |
インストールできました。
設定ファイルの編集
サンプルの設定ファイルconfを、/etc/hostapd/へコピーします。
1 2 3 |
cd /etc/hostapd/ sudo cp /usr/share/doc/hostapd/examples/hostapd.conf.gz ./ sudo gzip -d hostapd.conf.gz |
hostapd.confがコピーできました。
/etc/hostapd/hostapd.confを編集します。
1 |
sudo nano /etc/hostapd/hostapd.conf |
編集する箇所は以下の部分です。他はそのままデフォルトで構いません。このconfファイルは同じような記述で長く分かりにくいと思います。上から順番に見付けてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
interface=wlan0 driver=nl80211 ssid=sp-mopidy hw_mode=g channel=2 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
「ssid=sp-mopidy」は任意で変えてください。
「wpa_passphrase=12345678」は8桁で任意の英数です。
「channel=2」も自宅のチャンネルと被る場合は任意で変えてください。
修正したファイルをhostapdのデフォルトの設定としたいため、/etc/default/hostapdに追記します。
sudo nano /etc/default/hostapd
DAEMON_CONFを探してください。
1 2 |
#DAEMON_CONF="" DAEMON_CONF="/etc/hostapd/hostapd.conf" |
これで設定は終わりです。
v2.3のhostapdを最新版に差し替え
hostapdの公式ページから最新のソースファイルをダウンロードとコンパイル(make)をします。
ユーザールートへ移動し、最新版(2016-10-02)をダウンロードし解凍します。
1 2 3 |
cd wget https://w1.fi/releases/hostapd-2.6.tar.gz tar zxvf hostapd-2.6.tar.gz |
必要なパッケージをインストール
1 |
sudo apt-get install libnl-genl-3-dev libssl-dev |
コンパイルします。
1 2 3 4 |
cd hostapd-2.6/hostapd cp defconfig .config echo CONFIG_LIBNL32=y >> .config make |
コンパイルして出来上がったhostapdファイルをv2.3のファイルと差し替えます。
1 2 |
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd_v2.3 sudo cp hostapd /usr/sbin/ |
Wi-Fiのwlan0をオンオフしてステータスを確認
コマンドは気をつけてください。Raspbianの最新版では、ifdown wlan0は使えませんでした。ifdown: unknown interface wlan0 というエラーが出ます。
1 2 |
sudo ifconfig wlan0 down sudo ifconfig wlan0 up |
hostapdを起動してステータス確認します。
1 2 |
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf sudo systemctl status hostapd |
hostapd.service – LSB: Advanced IEEE 802.11 management daemon
Loaded: loaded (/etc/init.d/hostapd; generated; vendor preset: enabled)
Active: active (running) since
activeになっていればOKです。
wpa_supplicant.confの無効と固定IP
最後にhostapd(アクセルポイント)のみで動作するようにするためWi-Fiの設定を無効にします。
1 |
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf |
シャープでコメントアウトします。
1 2 3 4 5 6 7 |
#ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev #update_config=1 #country=JP #network={ # ssid="******" # psk="******" #} |
固定IP
dhcp機能でサーバにするわけではないため必要無いかも知れません(?)が、一応固定IPを振ります。
1 |
sudo nano /etc/dhcpcd.conf |
以下を追記
1 2 3 4 |
allow-hotplug wlan0 iface wlan0 inet static address 192.168.X.X netmask 255.255.255.0 |
最後に
これでiPhoneでコントロールできる携帯型ミュージックボックスの完成です。
ただ、シャットダウンがケーブルをひっこくぬくしかありません・・・。iPhoneからSSHで接続は出来るので、シャットダウンコマンドを送れるアプリでも入れてみてください。
これは別途、また考えます・・・。
また、.flacファイルも再生出来るのですけど、ファイル閲覧時のリスト化の読み込みに時間がかかるので、素直に.mp3ファイルの方がストレスありません。
番外
最新のRaspbianでは、以前までネットワークの設定に使用していた/etc/network/interfacesは使用しなくなりました。下記はnanoで開くとデフォルトで記載があります。
1 |
sudo nano /etc/network/interfaces |
1 2 3 4 5 |
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d |
どうやら、dhcpcd.confに併記するようになりました。