May 09, 2024
Raspberry Pi 3B+をRoon Bridgeにする
今年に入って、いつ頃からか正確には分からないのだけど、piCorePlayerが不調になった。
Deezer音源のMQAを、Daphileから変換せずにDAC(SMSL M500)に送って鳴らすために使っていたんだけど、それが出来なくなった。そして、LMSをDaphileからMac miniに移行しても、動かないままだ。
原因ははっきりしない。
代替をどうするか、Volumio 3、Album Player for Linux(これって、Ras Pi用はpiCorePlayerベースなんだね)を試したが、結局うまくいかなかった。
そういうわけで、roon bridge、mpdとupmpdcliを、最新のpiCoreにインストールすることにした。
piCoreは、piCorePlayerのベースになっているOSだ。うちでは昔から汎用していて、今はサブシステムのRas Pi2、Roon Bridgeに使っている。
まず、piCoreをダウンロード。3B+を使うことにするので、下記から落とす。バージョンは14.1。
http://tinycorelinux.net/14.x/aarch64/
http://tinycorelinux.net/14.x/aarch64/releases/RPi/piCore64-14.1.0.zip
imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141b3pと追記、config.txtを編集しイヤホンジャックを止めて、i2sを一応生かして、ラズパイに刺して電源を入れる。
無事、起動した。
sshでログインし、filetool.sh -bでsshの鍵を保存する。
以下、パーティションを拡張。2Gも足しとけばよかろう。
tc@pC141b3p:~$ sudo fdisk -u /dev/mmcblk0 The number of cylinders for this disk is set to 121008. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/mmcblk0: 3781 MB, 3965190144 bytes, 7744512 sectors 121008 cylinders, 4 heads, 16 sectors/track Units: sectors of 1 * 512 = 512 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/mmcblk0p1 128,0,1 1023,3,16 8192 139263 131072 64.0M c Win95 FAT32 (LBA) /dev/mmcblk0p2 1023,3,16 1023,3,16 139264 172031 32768 16.0M 83 Linux Command (m for help): d Partition number (1-4): 2 Command (m for help): n Partition type p primary partition (1-4) e extended p Partition number (1-4): 2 First sector (16-7744511, default 16): 139264 Last sector or +size{,K,M,G,T} (139264-7744511, default 7744511): +2G Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy tc@pC141b3p:~$ sudo reboot tc@pC141b3p:~$ Connection to 192.168.1.27 closed by remote host. Connection to 192.168.1.27 closed. ab@fedora-pb650g1:~$ ab@fedora-pb650g1:~$ ssh tc@192.168.1.27 tc@192.168.1.27's password: ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net tc@pC141b3p:~$ sudo resize2fs /dev/mmcblk0p2 resize2fs 1.46.5 (30-Dec-2021) Filesystem at /dev/mmcblk0p2 is mounted on /mnt/mmcblk0p2; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/mmcblk0p2 is now 524288 (4k) blocks long. tc@pC141b3p:~$
以上で、パーティション拡張終了。
次にntpclient.tczをインストールしようとしたら、リポジトリに置いていない。
http://tinycorelinux.net/14.x/aarch64/tcz/
どういうことかと思ってdateコマンドを打ってみた。
tc@pC141b3p:~$ date Mon May 6 12:56:11 UTC 2024
どうやらUTCで正確に動いているような。ntpは要らないのかな。
さて、Roon Bridge化する。
https://help.roonlabs.com/portal/en/kb/articles/linux-install
インストーラー使用を推奨ということなんだけどpiCore、Tiny Coreは特殊なのでマニュアルインストールを選択。
libasound2が必要ということだが、説明を読むと、alsaの1.0.27以上が必要と読み替えていいらしい。これはリポジトリにある。
ということでインストール。
関連するソフトも同時に大量にインストールされる。
スクリプトを動かすのにbashが要るので、これもインストールする。ついでになんとなくcurlも入れる。
tc@pC141bp:~$ tce-load -wi alsa.tcz alsa-utils.tcz alsa-plugins.tcz tc@pC141bp:~$ tce-load -wi bash-dev.tcz bash.tcz curl.tcz
Roonのサイトには、下記3つのRoon Bridgeが用意されている。
Roon Bridge (x64)
Roon Bridge (armv7hf)
Roon Bridge (armv8)
Raspberry Pi 3b+にはarmv8用を使う。piCoreのホームディレクトリにダウンロードし、展開する。
tc@pC141b3p:~$ wget https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2 Connecting to download.roonlabs.net (172.67.14.113:443) saving to 'RoonBridge_linuxarmv8.tar.bz2' RoonBridge_linuxarmv 100% |*******************************************************| 17.1M 0:00:00 ETA 'RoonBridge_linuxarmv8.tar.bz2' saved tc@pC141b3p:~$ tar jxvf RoonBridge_linuxarmv8.tar.bz2 #---- snip tc@pC141b3p:~$ ls RoonBridge/ RoonBridge_linuxarmv8.tar.bz2 tc@pC141b3p:~$ ls RoonBridge Bridge/ RoonMono/ VERSION check.sh start.sh tc@pC141b3p:~$
チェックスクリプトで使えるかどうか確認する。
tc@pC141b3p:~$ sudo RoonBridge/check.sh Checking to see if RoonBridge can run on this machine Checking for Binary Compatibility [ OK ] Checking for ALSA Libraries [ OK ] STATUS: SUCCESS tc@pC141b3p:~$
使えそうだ。
tc@pC141b3p:~$ rm RoonBridge_linuxarmv8.tar.bz2 rm: remove 'RoonBridge_linuxarmv8.tar.bz2'? y tc@pC141b3p:~$ tc@pC141b3p:~$ sudo vi /opt/bootlocal.sh
ダウンロードしたtar.bz2ファイルはここで削除する。
piCore起動時にRoonBridgeが起動するように、bootlocal.shを編集。下記、追記。
/home/tc/RoonBridge/start.sh start tc@pC141b3p:~$ filetool.sh -b Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done. tc@pC141b3p:~$
filetool.sh -bで、状況を保存。
RoonBridgeが50MBぐらいあるので、数10秒かかる。しかし、他の置き場がないかといっても難しい。というのは、Roonのアップデートがかかる筈なので、filetool.sh -bで保存できない場所に置いたら後で困るから。
結局、ホームディレクトリがいいだろうということになる。
tc@pC141b3p:~$ sudo reboot tc@pC141b3p:~$ Connection to 192.168.1.27 closed by remote host. Connection to 192.168.1.27 closed. ab@fedora-pb650g1:~$ ab@fedora-pb650g1:~$ ssh tc@192.168.1.27 tc@192.168.1.27's password: ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net tc@pC141b3p:~$ tc@pC141b3p:~$ pstree init-+-bootlocal.sh---start.sh---mono-sgen-+-2*[mono-sgen] | `-processreaper |-sh |-sshd---sshd---sshd---sh---pstree |-udevd---2*[udevd] `-udhcpc tc@pC141b3p:~$
pstreeで、mono-sgenと表示されるのがRoonだ。ちゃんと起動している。
しかし、音が出ない。
tc@pC141b3p:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: AUDIO [SMSL USB AUDIO], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 tc@pC141b3p:~$
DACは認識しているようだ。
なにがいけないのだろう。alsa-plugins-dev.tcz、alsa-utils-locale.tczもインストールしてみたが、音は出ない。USBケーブルを変えてみたりしたが、関係ない。
サブシステムのRas pi2からは、Roonで音が出ている。3b+との違いは、i2sかUSBか、ということだ。
でも、そんなところが関係するかね、、、
DACを替えてみる。M500からADI-2 DACに。
音、出るじゃん。
M500も、apu2からのUSB出力を受けたら音が出るのだ。なぜか、Ras Pi3b+からだと音が出ない。
pegasusはどうだろう。
tc@pC141b3p:~$ aplay -l aplay: device_list:277: no soundcards found... tc@pC141b3p:~$
USB端子を挿しても、認識していない。
スイッチをオン・オフしてみる、、、認識した。音も出る。
tc@pC141b3p:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Audio [USB HiRes Audio], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 tc@pC141b3p:~$
DACの名前が出ていない。まあ、中華DACだもんね。
M500もスイッチをオン・オフしてみる。
piCoreが落ちた。
再起動だ。
音が出た。USBってのはいろいろと微妙だね。
しかし、取り敢えずこれで、3b+をRoon Bridgeにすることに成功した。MQAサンプラーCDからリッピングしたMQAを再生できる。
RoonはDeezerには対応していないので、次は、これにmpdを組み込んで、UPnPレンダラーにする。そうすればLMSサーバーからDeezerのMQAを送信できる。
それが、いつ頃になるかは、分からないが。
あれ、もしかしたらvolumioもスイッチのオン・オフで使えたのかもしれない。まあ、いいや、piCore運用の方向でいこう。
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.