
前回の日記のRaspberyPi VolumioにHomeで使っているDACをI2S接続し音だししたところ、
余計なものが増えたせいかノイズまみれでまともに鳴らせず完全に挫折しました。
最初はDACが壊れたかと思ってかなりあせりましたが、
RuneAudio0.03betaでは綺麗になったので安心しまた。
そこで今回はRuneAudioを使って端末から直接接続できるようにしました。
RuneはArchiLinuxが母体なので、Volumioとはやり方が違って少し手間取りました。
Runeのイメージは
ここからダウンロードできます。
イメージの書き込みは他のサイトでたくさん紹介されいますので割愛します。
起動はLANケーブル、USB無線アダプタを挿入して電源ON
起動したらコマンド [ssh root@runeaudio.local]で接続PassWordは[rune]です。
音源はSDカードの余った領域にパーティションを作って入れました。
mount /dev/mmcblk0p3 /mnt/MPD/LocalStorage
必要なものはドライバーのmake環境とhostapd,dhcpです。
まずhostapdのインストール
#
pacman -S hostapd
続いてdhcpをインストール
#
pacman -S dhcp
最後にmake環境構築
#
pacman -S --needed base-devel
※unzipがない場合は
#
pacman -S unzip
hostapdの設定
#
nano /etc/hostapd/hostapd.conf
interface=wlan0
#driver=nl80211
driver=rtl871xdrv
ssid=runeaudioap
hw_mode=g
channel=3
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=************
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
macaddr_acl=0
#macaddr_acl=1
#accept_mac_file=/etc/hostpad/accept_macaddress.conf
ieee80211n=1
wmm_enabled=1
#ht_capab=[HT40+][GF][SHORT-GI-40][TX-STBC][RX-STBC1]
logger_syslog_level=3
Ctrl+xで終了、保管します。
dhcpの設定
#
nano /etc/dhcpd.conf
option domain-name-servers 8.8.8.8, 8.8.4.4;
option subnet-mask 255.255.255.0;
option routers 10.0.0.1;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.150;
}
Ctrl+xで終了、保管します。
AP関連をまとめて起動するスクリプトを使うなら個別起動設定は不要です。
以下の点線部は飛ばします。
-------------------------------------------------------------------------------
起動時の設定
#
nano /etc/systemd/system/dhcpd4@.service
[Unit]
Description=IPv4 DHCP server on %I
Wants=network.target
After=network.target
[Service]
Type=forking
PIDFile=/run/dhcpd4.pid
ExecStart=/usr/bin/dhcpd -4 -q -pf /run/dhcpd4.pid %I
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
#
nano /usr/lib/systemd/system/netctl@.service
[Unit]
Description=Networking for netctl profile %I
Documentation=man:netctl.profile(5)
Before=network.target netctl.service
Wants=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/network/network start %I
ExecStop=/usr/lib/network/network stop %I
KillMode=none
-------------------------------------------------------------------------------
USB無線のアダプターのドライバーがないのでインストールします。
今回はArchのgitのドライバーがあるので借用します。
ディレクトリ移動
#
cd /usr/src
git からcloneで
#
git clone https://github.com/XiaoxiaoPu/hostapd-8192cu/raw/master/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
ダウンロードしたファイルの解凍
#
unzip RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
解凍したディレクトリへ移動
#
cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/wpa_supplicant_hostapd/
ファイルの解凍
#
tar zxvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
解凍したディレクトリへ移動
#
cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd/
いよいよmakeします。
#
make
CC main.c
CC config_file.c
CC ../src/ap/hostapd.c
|
|
|
CC ../src/common/wpa_ctrl.c
LD hostapd_cli
少し時間が掛かりますがコンパイルできたら必要ファイルをコピーします。
#
cp /usr/sbin/hostapd /usr/sbin/hostapd.origin
#
cp hostapd /usr/sbin/hostapd
設定ファイルを読み込んでhostapdを起動します。
#
hostapd /etc/hostapd/hostapd.conf
AP関連をまとめて起動するスクリプトを使うなら個別起動設定は不要です。
以下の点線部は飛ばします。
-------------------------------------------------------------------------------
起動時の設定ファイルを指定してsystemctlで起動できるように設定します。
#
nano /etc/default/hostapd
空のファイルに
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Ctrl+xで終了、保管します。
wlan0のマニュアル起動
#
ip link set up dev wlan0
#
ip addr add 10.0.0.1/24 dev wlan0
自動で起動するにはもう一手間必要です。
固定するインターフェイスとアドレスの指定
#
nano /etc/conf.d/net-conf-wlan0
address=10.0.0.1
netmask=24
broadcast=10.0.0.0
gateway=192.168.1.1
Ctrl+xで終了、保管。
起動用スクリプトの作成
#
nano /usr/local/bin/net-up.sh
#!/bin/bash
ip link set dev "$1" up
ip addr add ${address}/${netmask} broadcast ${broadcast} dev "$1"
[[ -z ${gateway} ]] || {
ip route add default via ${gateway}
}
終了用スクリプトの作成
#
nano /usr/local/bin/net-down.sh
#!/bin/bash
ip addr flush dev "$1"
ip route flush dev "$1"
ip link set dev "$1" down
作成したスクリプトに実行権限を付与します。
#
chmod +x /usr/local/bin/net-{up,down}.sh
systemdファイルの作成
#
nano /etc/systemd/system/network@.service
[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/net-conf-%i
ExecStart=/usr/local/bin/net-up.sh %i
ExecStop=/usr/local/bin/net-down.sh %i
[Install]
WantedBy=multi-user.target
Ctrl+xで終了、保管
マニュアル起動は
# s
ystemctl start network@wlan0
hostapdの起動
#
systemctl start hostapd
dhcpの起動
#
systemctl start dhcpd4@wlan0.service
インストールしたアプリを自動起動させるには
#
systemctl enable network@wlan0
#
systemctl enable hostapd
#
systemctl enable dhcpd4@wlan0.service
-------------------------------------------------------------------------------
AP関連をsystemctlを使ってまとめて起動することもできます。
#
nano /etc/systemd/system/AP.service
[Unit]
Description=AP
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set dev wlan0 up
ExecStart=/sbin/ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev wlan0
ExecStart=/usr/bin/hostapd -B /etc/hostapd/hostapd.conf
#ExecStart=/usr/bin/dhcpd -4 -q -pf /run/dhcpd4.pid %I
ExecStart=/usr/sbin/dhcpd -4 -q wlan0
ExecStop=/sbin/ip addr flush dev wlan0
ExecStop=/sbin/ip link set dev wlan0 down
[Install]
WantedBy=multi-user.target
#
systemctl enable AP.service
実際に端末から接続してみると
しかしまた別の問題が・・・
2バイト文字化け!
車載用I2S DACも入手もまだだし先は長くなりそうです。
文字化け原因と対応
原因は余った領域をFAT32でフォーマットしてファイルコピーしましたが、
fstabでmount時iocharset=utf8をoptionで明示するのを忘れたためです。
ということでfstabにoptionにiocharset=utf8を追記しました、
LocalStorageでの表示です。(FATは相性が悪そうなので、xfsに切り替えました)
LocalStorageでも2バイト表示問題ありません。

Posted at 2014/11/08 22:58:36 | |
トラックバック(0) |
オーディオ | パソコン/インターネット