Current filter: »wifi« (Click tag to exclude it or click a conjunction to switch them.)
May 03, 2022
古いRaspberry PiをUSB無線LANアダプターとRaspberry Pi OS busterでLANに接続する
うちには無線機能がない古いRaspberry Piが幾つか、使わないままになっている。
以前のエントリーで、これらにUSB無線アダプターを付けて、piCoreで使えるようにしようという話を書いた。
Raspberry Pi + USB WiFiアダプターで piCore 起動時に自動的に無線LANに接続させる
http://blown-lei.net/endive/blosxom.cgi/pc/20211109a.htm
その後、考えた。
piCoreに拘らなくてもいいのではないか。
そういうわけで、今回はRaspberry Pi OSで、あらかじめIPアドレス固定だ。
ただ、ネット上の他のサイトを読んでいたら、今回うちでやった手法は古いやり方であるらしい。とりあえず動いてるからいいのかな、という感じだ。
今年の4月にRaspberry Pi OSは以前よりもセキュリティが厳しくなって、初期設定のpiユーザーがなくなった。
An update to Raspberry Pi OS Bullseye
https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/
いろいろやり方が変わって面倒なので、使っているのは最新のBullseyeではなくてBusterだ。
以下、忘れるので備忘録。処置を列記。
まずraspberrypi.comで、「Raspberry Pi OS Lite (Legacy)」と書いてある処からBuster Liteをダウンロードする。うちではモニターを使うのは想定していないのでLiteを使う。
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy
マイクロSDに焼く。
sshが使えるようにbootパーティションにsshファイルを作って、Raspberry Pi(B+と初期型の2)に刺す。
LANケーブル、USB無線アダプターも刺して、電源に繋いで起動。
IPを確認しsshでログイン(ユーザー:pi、パス:raspberry)。
sudo raspi-config で設定した項目は以下の通り。他は触らない。下手に触ると上手くいかなくなるようだ。うちだけか?、、。
1 System Options / Hostname 5 Localisation Options / L2 Timezone 6 Advanced Options / A1 Expand Filesystem
書き忘れていたが、どこかで sudo apt-get update、sudo apt-get upgrade している。
lsusb でUSB無線アダプターをラズパイがどう認識しているかを確認。
下記のように認識している内容が表示される。
pi@raspberrypi:~ $ lsusb Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter 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. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
1番目の行に「Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter」と詳細が表示されている。どうやら使えそう。
次に、無線LANルーター認証の設定ファイルを記述する。
まずPSKの生成。下記コマンド使用。
SSID(ネットワーク名)とPassphrase(パス/暗号化キー)は、ローカルの無線LANネットワークで決まっている筈である。
wpa_passphrase SSID Passphrase network={ ssid="Your_SSID" #psk="Your_Passphrase" psk=bca18993a64219d23b7b4cf1214d999d812b5... *snip* }
こんな設定の文面が表示される。
pskとは事前共有鍵(Pre-Shared Key)というもので、暗号鍵を事前に設定しておくということらしい。
これを「wpa_supplicant.conf」に追記記載する。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="Your_SSID" #psk="Your_Passphrase" psk=bca18993a64219d23b7b4cf1214d999d812b5... *snip* key_mgmt=WPA-PSK proto=RSN pairwise=CCMP group=CCMP }
更にkey_mgmt、proto、pairwise、groupも追加。これらは認証方式と暗号方式によって記載内容が変わる。
うちの無線LANルーターで設定を見たら「WPA2-PSKとAES(AES)」と書いてある。
これは、認証方式がWPA2-PSK、暗号方式がAES、という意味らしい。
記載をこれに合わせる。
次に下記ファイルに固定するIPアドレスなど設定を記載。
sudo vi /etc/network/interfaces auto wlan0 allow-hotplug wlan0 #iface wlan0 inet manual iface wlan0 inet static address 192.168.1.xxx netmask 255.255.255.0 gateway 192.168.1.1 # wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
sudo reboot で再起動、設定したIPアドレスで無線LANにつながるはず。
しかし有線LANのほうはつながらなくなる。
USB無線アダプターを外して有線LANをつないでも、つながらない。考えてみたら上記設定は無線しかしていない。
有線も使いたかったら、wpa-confの行をコメント化してwpa-roamで設定する方法もあるようだが、よく分かっていない。
Nov 09, 2021
Raspberry Pi + USB WiFiアダプターで piCore 起動時に自動的に無線LANに接続させる
今回はLinuxの話になる。
前回のエントリーは、Raspberry Pi2をAP化、オーディオプレーヤー化しようとしたところ、なんだかよく分からないことになったという話だったんだけど、未だにどうなってるのか分からない。
とりあえずAP化の詳細は置いといて、初歩的なとこから、家庭内LANに無線でつなぐとこから始めよう、と思ったら、意外に嵌ったので備忘録化しておく。
まず使ったpiCoreは、piCore13.0.3 /armv7。つまりRaspberry Pi B2用の最新版。
うちで余っているRas Piは、B+、B2が多く、無線を使うならUSB WiFiアダプターを使うのが前提となる。入手しやすいのは最近の製品となるので、新しいOSじゃないと対応できないんじゃないかと思ったので、piCore7に拘るのは止めたということだ。
今回、それでもUSB WiFiアダプターはLinuxで使えないことが少なくないことを初めて知った。機材自体をpiCoreで認識できなかったり、Linux対応と書いてあってもドライバーをCDからインストールしないといけないのとかあって、ちょっと手間が掛かりすぎる。
何種類か試したけど、今のところ使えているのは、前回エントリーのBUFFALO WLI-UC-GNM、TP-LinkのTL-WN725N、エレコムのWDC-150SU2MBKだ。
Aigital AC600、Rich AC1200M、BUFFALO WI-U2-433DMSは、現在のところ使えていない。
環境構築のインストールに使ったコマンドは以下のとおり。
hostapd、dnsmasqはまだ使わないけど、今後の使用を考えて入れてある。関連があるtczも同時にインストールされる。
tce-load -wi ntp.tcz tce-load -wi wifi.tcz firmware-brcmwifi.tcz firmware-ralinkwifi.tcz firmware-rpi-wifi.tcz firmware-rtlwifi.tcz tce-load -wi wireless-5.10.16-piCore-v7.tcz wireless_tools.tcz tce-load -wi usbutils.tcz usbutils-doc.tcz libusb-dev.tcz libusb.tcz usb-ids.tcz tce-load -wi hostapd.tcz dnsmasq-doc.tcz dnsmasq.tcz
あれこれネット上で迷ったが灯台下暗しで、最終的に参考にしたのはtceコマンドで見ることができるwifi.tczの説明書き。
Comments: A console based tiny wifi scan access point tool. Select from menu or type sudo wifi.sh Creates wifi.db in HOME directory. Can auto connect to first db entry with use of -a flag, e.g., /usr/local/bin/wifi.sh -a 2>&1 > /tmp/wifi.log Add above to bootlocal or bootsync for quick auto connect. When mobile, use menu for select list of APs. wpa_supplicant driver is defined by /etc/sysconfig/wifi-wpadrv default is wext. Add it to backup if changed. Available drivers wext,nl80211
加えて「/usr/local/bin/wifi.sh」に書かれているwifi.shのヘルプ。
これはコマンド「sudo wifi.sh -?」でも見ることができる。
Usage: Default select AP from menu and request IP via DHCP. -a Auto connect to first wifi.db entry via DHCP. -p Select AP from menu and prompt for IP configuration type. -w Wait indefinitely until lease is obtained -? Displays this help message.
これらを参考にして実際に行った手順を、以下に記録しておく。
まず「/opt/bootlocal.sh」に無線LAN有効化のコマンドを書き込む。これで電源を入れたときに、無線LANが有効になる。
tc@box:~$ vi /opt/bootlocal.sh ifconfig wlan0 up
設定ファイルを書き換えたので保存のコマンド「filetool.sh -b」を打って保存。
sudo reboot で、再起動。
USB WiFi アダプター(今回はTP-Link TL-WN725N)を刺し、ハード認識確認のコマンドを打つ。
tc@box:~$ lsusb Protocol spec without prior Class and Subclass spec at line 23179 Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub tc@box:~$ tc@box:~$ iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 unassociated ESSID:"" Nickname:"" Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 tc@box:~$ tc@box:~$ ifconfig eth0 Link encap:Ethernet HWaddr B8:27:EB:39:F8:15 *snip* lo Link encap:Local Loopback *snip* wlan0 Link encap:Ethernet HWaddr 7C:C2:C6:1B:53:D2 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) tc@box:~$
こんな感じ。機材は認識されているけど、wifi (wlan0)は機能していない。
wifi.tczの説明書きに沿って設定していく。
sudo wifi.sh を打って、WiFiでローカルのLANに接続する。以下、流れを記載。
tc@box:~$ sudo wifi.sh Select Wifi Network ESSID Enc Qual Channel Type 1. ssssssssssss on 0 2 WPA 2. oooooooooooo on 0 5 WPA 3. AAAAAAAAAAAA on 0 12 WPA Enter selection ( 1 - 3 ) or (q)uit: 3 Enter password for AAAAAAAAAAAA (8 to 63 characters): zzzzzzzzzzzz Sending credentials to requested access point AAAAAAAAAAAA.. deleting routers adding dns 192.168.1.1 tc@box:~$ tc@box:~$ ifconfig eth0 Link encap:Ethernet HWaddr B8:27:EB:39:F8:15 *snip* lo Link encap:Local Loopback *snip* wlan0 Link encap:Ethernet HWaddr 7C:C2:C6:1B:53:D2 inet addr:192.168.1.42 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:19 errors:0 dropped:82 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:89869 (87.7 KiB) TX bytes:3824 (3.7 KiB) tc@box:~$
こんな感じでLANのアクセスポイントにWiFiで接続できた。
アクセスポイントをセレクトし(上の例だとAAAAAAAAAAAA)、パスワードを入力(上の例だとzzzzzzzzzzzz)、「ifconfig」でIPアドレスを確認すると、wlan0に「192.168.1.42」が振られている。
こうして1回接続することで、接続設定ファイル「wifi.db」が、ホームディレクトリに作られる。このファイルにはアクセスポイントとパスワード、暗号化について記述されている。これを「filetool.sh -b」を打って保存。
wifi.tczの説明書きには、
/usr/local/bin/wifi.sh -a 2>&1 > /tmp/wifi.log
Add above to bootlocal or bootsync for quick auto connect.
とあるのだけど、、、
このコマンドをそのまま使うと、理由は分からないが上手くいかなかった。LANに接続できないままコマンドが指示を出し続け、ログが積み重なるような状況に至る。
そういうわけで、うちではbootlocal.shに下記のようにコマンドを書き込んだ。
tc@box:~$ vi /opt/bootlocal.sh /usr/local/bin/wifi.sh -a
保存のコマンド「filetool.sh -b」を打って、sudo reboot で、再起動。
これで、Ras Pi電源オン、piCore起動と同時に、wifi.dbに記載されたアクセスポイントに自動的に無線でつながる。
これで、OS起動と同時に自動的に無線LANにつながるpiCore13ができた。といっても、アクセスポイントは予め設定されていて変更するには再設定する必要があるので、いつでも何処でも使えるというのではないけど。あと、USB WiFiアダプターを替えたら設定し直ししないといけないようだ。
ともあれ、これでうちで余っているRaspberry Piを無線でつないで、オーディオ以外でも活用することができるかもしれない。
Oct 31, 2021
カーステレオにRas Pi2+piCore7+MPD+i2s DAC (追記 10月31日、11月03日)
早々に追記。
このエントリーに書かれていることは、再現性がない。
何がどうなっているのやら、、、
もはや自分でもどうやって作ったのかわからないので、バックアップをGoogleに上げておく。
うちのHDDが飛んだりしたら紛失してしまうことになるので。
どうなってるのか見たいという人がおられたら、好きなようにしてくださればいいと思う。
https://drive.google.com/file/d/13eVisGZTRs3syI9z7cQ-2pC7SebC2f0Z/view?usp=sharing
うちのカーステレオ用音楽プレーヤーとして使っているBlackberry Bold 9000が最近あやうい。
というのは、内蔵電池が膨れてきている。
そのせいで本体の蓋が閉まらない。それでも使えて音も出るけど、じきに使えなくなるだろう。
交換用の電池は一応ネット上で売っているけど、何時売られなくなるか分からないし、過去には使ったら本体を壊した電池もあった。別の意味で危ういのだ。博打である。
当時、本体が壊れたので、普通の音楽プレーヤーで代替になれる製品を探したんだけど、試聴できた範囲ではいいのがなかった。音が良くないのと、操作性が良くないのと。
音が良いのになると高価になる。Bold 9000の中古が8千円で手に入るのに、数万以上で使いにくいプレーヤーを買う選択枝はなかった。
9000は物理キーから触覚で操作できるので、カーステレオ用として非常に使い易い。
必要となれば、ボタン1つで鳴っている音楽の曲名なども液晶画面に表示出来る。曲のランダム再生も、本体の電源を入れて諸々の操作で5秒以内で音楽が流れ出す。物理キーとトラックボール、いちいち目で見て確認しなくても出来てしまう。
しかし今や、9000は中古も売ってない。
あと、入手してもOSのバージョンアップが出来ないかもしれない。昔はなんとかしてやっつけたが、やり方を正確には覚えていないのだ(うちのサイトに備忘録があるんだけど、殆ど役に立たなかったんだよね、、)。
使い易くするにはバージョンアップしないといけないんだけど、これが出来ないかもしれないとなれば、、、
そういうわけで、代替機を作ることにした。
引き出しの奥で眠っているRaspberry Pi 2と、i2s DAC、piCore7 + MPD 0.19.9、追加投資はバッテリーぐらいで、なんとかしようというのだ。
少々梃子摺って、問題もないではないが、なんとかなった。
11月3日、書き忘れていたのに気付いたので追記。Raspberry Pi 2には無線機能がないので、USB HiFi アダプターにバッファローのWLI-UC-GNMを使っている。10年前の機材だ。
https://kakaku.com/item/K0000115107/
コンセプトはこんな感じで。
1.車のRCA入力端子につなぐ
2.電源オン・オフはコード(USBケーブル)の接続で行う
3.操作はWiFiでスマートフォンから行う(piCoreをAPモードで動かす)
4.USBメモリに収めた音源をランダム再生する

うちの車は、運転席左後ろの収納ボックス内にカーステレオのRCA入力端子が付いている。
9000は、専用のケーブルを自作して、イヤホン端子からRCA端子につないでいた。
ふつうのケーブルだと太すぎて、9000本体を収納ボックスから出せないのだ。出せなかったら操作できない。収納ボックスの蓋を開きっぱなしにしていたら運転の邪魔になる。そんなわけで、極細のRCA-イヤホン端子のケーブルが必要になったということだ。
Ras Piはスマホから操作するので、収納ボックス内に置いてかまわない。i2s DACと普通のRCAケーブルでつなげばいいということになる。
piCoreは電源コード抜去で電源を落としても大丈夫なOSなので、今回はなんとしてでも使うことにした。
車から降りるときにプレーヤーをシャットダウンする必要があるんだけど、raspbianベースのOS(例えばVolumioなど)だと、OSにログインしてシャットダウンの操作をしなければならない。手順を踏んでシャットダウンしないとOSが壊れるからだ。
その場で電源を落とせるほうが使い易い。piCoreはこういった用途に適している。
音声再生の操作はスマホからWiFiでアクセスして行う。
piCoreを所謂APモードで起動するのだが、過去に何回か手を付けたけど、分からなくて途中で投げてばかりだった。ネット上にはpiCoreでやってるケースは見つけられなかった。Raspbianベースで同様のことをやってる作例はあるのだけど、それでも随分参考になった。
操作性は、9000と比べたら低下している。
WiFiでRas Piとつなげて(これはスマホに自動設定できるけど)、MPDクライアントを起動し、音楽フォルダを選択してプレイリストに登録して再生、ランダム設定、、、
画面を見ながらじゃないとできないことがあれこれとある。たぶん操作に慣れても30秒はかかるのではないか。
あとアートワークを表示しない。これはMPD 0.19の仕様上、仕方がないのだけど。
うだうだ書いてきたけど、実際に行った建付けは右往左往だったけど、出来た結果を整頓して分かりやすく備忘録にしておこう。
参考にさせていただいたサイトは下記。多謝。他にも参考にしたけど忘れた。
https://itmedia.co.jp/news/articles/2008/14/news042.html
https://qiita.com/JhonnyBravo/items/5df2d9b2fcb142b6a67c
https://katona.hatenadiary.org/entry/20071101/p2
http://flac.aki.gs/bony/?page_id=1085
https://wiki.archlinux.jp/index.php/Music_Player_Daemon
http://kitatokyo2013.blogspot.com/2014/02/picoreplayerip.html
http://soramimi.jp/raspberrypi/mpd/
https://qiita.com/hoto17296/items/2e638fa28597b18505cd
https://gadget-live.net/raspberry-pi-self-made-router/
https://raspida.com/wifi4raspbian
https://herb.h.kobe-u.ac.jp/raspiinfo/raspiAP.html
https://armadillo.atmark-techno.com/blog/615/1830
piCore7はここからダウンロードした。
http://tinycorelinux.net/7.x/armv7/releases/RPi2/
piCore7を使う理由は、MPDのインストールが楽だから。
うちで余っているRas PiはB+と初期型の2なので、B+だったらarmv6、初期型2だったらarmv7となる。
3B+も1台予備があるんだけど、piCore7は対応していない。新しいバージョンのpiCoreだとMPDをソースからインストールしないといけないので、けっこうな手間なのだ。
ダウンロードしたイメージをマイクロSDカードに焼いて、i2s DACの設定を書き込み、Ras Piに刺して家庭内有線LANにつないで起動。パーティションを拡張。
ここら詳細は過去のエントリーを参照のこと。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180103a.html
piCore7にmpdをインストールする方法
今回、完成後のonboot.lstは下記。
mc.tcz openssh.tcz wifi.tcz firmware-rtlwifi.tcz firmware-ralinkwifi.tcz usbutils.tcz net-usb-4.1.13-piCore_v7+.tcz net-usb-4.1.20-piCore_v7+.tcz hostapd.tcz dnsmasq-doc.tcz dnsmasq.tcz rfkill.tcz libmpdclient.tcz libmpdclient-dev.tcz mpd.tcz alsa.tcz alsa-config.tcz alsa-dev.tcz
このリストにあるtczを、tceでインストールしていけば、関連のライブラリ等も含めて同等のものが出来る筈だ。
mc.tczとopenssh.tczは最初からインストールされている。それ以降のtczをインストールしていけばいい。
MPDをインストールしたらalsa関連も一緒にされるものと思い込んでいたら、されなかったので最後に追加でインストールしている。実際にi2s出力で必要かどうかは分からないが、一応入れている。
APモード関連
まずAPモードの設定から。
起動時にAPとなるRas PiのIPアドレスを固定するには、/opt/bootsync.shに「wlan0.sh」の設定をしておく必要がある。
下記、記載。
/home/tc/wlan0.sh &
/home/tc/wlan0.sh に、wlan0の設定を記述する。
下記の記載で、RasPi-APが「192.168.2.1」になる。
pkill udhcpc ifconfig wlan0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255 up route add default gw 192.168.2.1 echo nameserver 192.168.2.1 > /home/tc/resolv.conf
/home/tc/resolv.conf に下記記載。
(このファイルを削除したら、有線LANにつながらなくなる。どういう挙動なのかよく分からないが、、、)
nameserver 192.168.2.1
USB無線LANアダプターを刺して、認識しているかどうかを確認。
tc@box:~$ lsusb Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070] Bus 001 Device 005: ID 0bda:0109 Realtek Semiconductor Corp. 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. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub tc@box:~$
ハードの認識はしている。しかし設定をしていない段階では認識していても動いていない。
/opt/bootlocal.sh にiwconfigでスイッチを入れるように設定。
iwconfig wlan0 power on
bootlocal.sh には、hostapd起動の設定も記載。
今回は、tcディレクトリに置いた設定ファイルをhostapdで読み込むようにする。
hostapd /home/tc/hostapd.conf -B
tcディレクトリに置いた設定ファイル、/home/tc/hostapd.confには、下記を記載。
interface=wlan0 ssid=RasPi-AP hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=abcdefghijkl wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
細々したことはよく分からないんだけど、無線LAN(wlan0)を「ssid=RasPi-AP」で動かす設定。
wpa_passphraseは、スマートフォンからRasPi-APネットワークにログインするためのパスワードだ。
dnsmasqでDHCPの設定。
/home/tc/dnsmasq.conf に下記記載している。
interface=wlan0 dhcp-range=192.168.2.2,192.168.2.99,255.255.255.0,24h
udhcpcのdefault.scriptが何処にあるのか探したら、/usr/share/udhcpc/default.scriptが見つかった。中をみたら「RESOLV_CONF="/etc/resolv.conf"」と。
今回はtcディレクトリにresolv.confを置いているので、それを設定してやらないといけないのかな。
/home/tc/udhcpc.script を設定。「RESOLV_CONF="/etc/resolv.conf"」の記述を「RESOLV_CONF="/home/tc/resolv.conf"」に書き換えて設置、、、
実はこの辺り、、、なんでこんなことしたのか記憶がない。何を参考にしたのかもよく分からない。
しかし、/home/tc/udhcpc.scriptを外したらうまく動かなくなる。無線は動いてログインできるんだけど、有線LANがつながらなくなる(まあ、有線LANはカーステレオ使用には無用なんだけど、使える方がメンテしやすい)。なので、何かしているんだとは思うんだけど、、、
よく分からないところもあるが、これでRas PiのAPモードが動く。
APモードなんだけど、同時に有線LANの方も稼働しているので、LANケーブルをつなげばそっちからの設定変更やMPDクライアントでのアクセスも可能だ。
しかし、dnsmasq、udhcpc周りには問題があって(設定がおかしいからだと思うが、、、)、APからクライアントにアドレスが配布されない。クライアント側のスマートフォンで固定IPにすれば運用上の支障はないので、当面このままで使うつもり。
MPDの設定
MPDは、Ras Pi起動と同時に自動起動させる。
これがなぜか、今までのうちでのやり方で上手くいかなかった。ネット上にはrootでは起動しないと書いてあったり(そうなの?!、、、)。
なので、/home/tc/.profile の末尾にコマンドを記載することで起動させるようにした。
/usr/local/bin/mpd /home/tc/.mpdconf
mpd.confは/home/tc/.mpdconfで設定。下記の通り。
music_directory "/mnt/music" # playlist_directory "/mnt/music/mp/mpd/playlists" playlist_directory "/home/tc/.mpd/playlists" log_file "/home/tc/.mpd/log" pid_file "/home/tc/.mpd/pid" state_file "/home/tc/.mpd/state" sticker_file "/home/tc/.mpd/sticker.sql" db_file "/usr/local/share/mpd/database" auto_update "yes" #auto_update_depth "3" audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional mixer_type "software" # optional ## mixer_device "default" # optional ## mixer_control "PCM" # optional ## mixer_index "0" # optional } samplerate_converter "Fastest Sinc Interpolator" audio_buffer_size "8192" buffer_before_play "20%" audio_output_format "192000:24:2" filesystem_charset "UTF-8" id3v1_encoding "UTF-8"
カーオーディオの使用でライブラリを保存する操作は基本的にはしないので、MPD起動と同時にライブラリのアップデートを行うように設定。
auto_update "yes"
データベースファイルをMPD起動と同時に作るので、filetool.sh -bに記載されていない場所に設定した(これは工程作業の都合で使用上には関係ないけど)。
db_file "/usr/local/share/mpd/database"
/opt/bootlocal.sh に下記記載し、OS起動時に/mnt/musicやデータベースファイルを置くディレクトリなどを作る。
音源となるUSBメモリ/マイクロSD+USBアダプターをOS起動時に認識、マウントポイント「mp」にマウントさせる。
mkdir /usr/local/share/mpd chmod -R 777 /usr/local/share/mpd mkdir /mnt/music mkdir /mnt/music/mp mkdir /mnt/music/ram touch /mnt/music/ram/dummy.cue chmod -R 777 /mnt/music mount -w /dev/sda1 /mnt/music/mp
以上で、MPD関連の設定は完了。
スマートフォンの設定
インストールと設定を終えたRas Piは、電源を入れて起動したらAPモードで動いている。MPDも自動的に起動し音源データを読み込みライブラリを形成し、クライアントからの指示があれば音声再生が可能な状態になっている。
MPDクライアントを動かすスマートフォン(当方はAndroid 11)を設定する。
WiFiからアクセスポイントRasPi-APを選択。
前述したとおり、Ras Piの方から自動的にIPアドレスを振ってくれない。
Ras PiのDHCPサーバーが問題なく動いていればスマートフォンに自動的にアドレスを振ってくれるはずなんだけど、これが機能していないのだ。
できないものは仕方がないので、スマートフォンのほうでIPアドレスを設定。IPアドレス固定で設定する。
APモードのRas Piが「192.168.2.1」でネットマスクはnetmask 255.255.255.0 なので「192.168.2.xxx(xxxは2から254の間の任意の数でいける筈)」でスマートフォンを設定。
インターネットに繋がりませんと警告?が出るけど、繋げなくてもいいということで設定する。
これで接続、MPDクライアントから操作ができるようになる。
うちではM.A.L.P.を使っているけど、クライアントソフトによって設定や使い方は違うと思うので、これ以降は省略。
そんなこんなで、取り敢えずRaspberry Piベースでカーオーディオ用のポータブルMPDプレーヤーが出来上がった。
音の方は、試しに車のシガーソケットからUSB電源をとって試聴したところ充分過ぎる音が出たので(シガーソケットでこの音か?と驚いた)、問題があるとか何とかは置いといて速やかに日常使用に移行させようという感じ。
接続が問題かな、RCAケーブルとか電源ケーブルをどうするかとか。
当初はバッテリー駆動するつもりだったが、シガーソケットから電源をとれるようにすることも検討している。

DHCPの問題は、今後あせらずに対処していこうと思う。