12
12
2016
BeagleBone + Botic で簡単DSD Native 再生(その5)
BBB/BBG Botic環境をRoon Bridge化してみる
今回の一連のディジタルオーディオ関連の記事を読んでいる類の人であれば、”Roon” というキーワードを何度も目にしている(耳にしている)ことだろう.”Roon” について簡単に説明するのは難しいので、”Roon” について知りたければ、 Roon Labsのホームページを見るなり、”Roon” について書かれた記事を参考にして欲しい.
【注記】BoticをRoon Bridge化するために、Botic本来の環境に手を加えることになるので、BoticをMPD主体で運用する場合は、ここで紹介する Roon Bridge化はお薦めできない.今回紹介する方法でRoon Bridge化するのであればMPDの併用は諦めて、RoonBridge専用機にするのが良いだろう.GLIBCを強制的に新しいバージョンに入れ替えてしまうので、Boticで組み込まれている各種パッケージの整合性が保てなくなってしまう.
【追記】Debian JessieをBotic化した後に、mpdおよびRoonBridgeの設定を行う方法
この後で紹介するRoonBridgeのインストールは、glibcのバージョン問題などで結構面倒な作業が必要になるが、Debian JessieをBotic化した後に、mpdおよびRoonBridgeの設定を行う方法であれば、RoonBridgeのインストールは簡単になる.RoonBridge化を試みる場合は、Debian Jessieをベースにすると良いだろう.
【Debian JessieのBotic化のための参考記事】
みみず工房の“yo”さんがDebian JessieのBotic化について手順を紹介しているので、こちらの記事を参考にすると良いだろう.
・I2Sの世界(4) [ http://mimizukobo.sakura.ne.jp/articles/articles020.html#025 ]
・I2Sの世界(5) [ http://mimizukobo.sakura.ne.jp/articles/articles020.html#022 ]
Debian Jessie + Botic 環境で、mpdとRoon Bridgeの両方を稼働させた状態で比較テストをやってみたが、mpdでの再生の方が圧倒的に音が良かった.Roonでの再生はmpdでの再生に較べるとどことなく音が曇ったような感じを受ける.この場合の両者の再生環境の違いは、プレイヤー(Roon : 音源はMac mini のSSD ローカルディスク、 mpd: Cantata V1.5.2 + NFS サーバ上のファイルをmpd側にNFSマウント)環境の違いのみで音源データは同じ物だ.
Roonプロトコルは一般には公開されていないプロプライエタリなプロトコルなので確かな事は言えないが、mpdプロトコルに較べて圧倒的に重い(音データ以外にも色々な情報のやり取りが行われている)筈なので、この辺の違いが音質差となって現れているのだろう.やはり音質に徹底的に拘るのであれば、Roonは許容できないだろう.
[ 御本家 ]
・Roon Labs [ https://roonlabs.com ]
[ Phile-web の記事 ]
・ 『クラウド/ローカルをシームレスにつなぐ“総合音楽鑑賞プレーヤーソフト”「Roon」の魔法とは?』 逆木 一
・『Q&A形式で解説!今注目の音楽再生ソフト「Roon」にまつわる“16のギモン”』佐々木 喜洋
・『非対応機器が約1万円でRoon対応に変身! ラズベリーパイで“Roon Bridge”を作った』佐々木 喜洋
・『いま話題のRoonをラズパイで!ラズパイ・オーディオの「Roon Bridge化」を検証する』海上 忍
今回の記事は、BeagleBone Black/Greenの Botic V7 環境に、Roon Bridge 関連のソフトウェアを組み込んで、MPDだけではなく、Roonによる再生もできるようにしてしまおうという企画だ.
予めお断りしておくが、私には現時点で Roon について何かを述べるだけの十分な知識も経験も無いので、今回の記事では Roon の再生品質の善し悪しやその存在意義については敢えて触れないことにする.そのうち、Roon について何か書くかもしれない.
ここ数ヶ月間Roonを試してきたが、ここ暫くは私のデジタル系オーディオ再生のメインプレーヤーとして活躍してくれる事だろう.音質面は一先ず置いておいて、ユーザエクスペリエンスでこのRoonに勝る物はないだろう.MPDクライアントの出来の悪さ、不安定さには正直閉口していたので、Roonの登場は私にとっては福音だ.
音質に関してはlightMPDなどと較べると明らかに見劣りする(クラッシック愛好家で音質に拘る人達には許容できない?)が、それでもRoonの再生環境を手放す気にはならない.RoonではPCM/DSD共に曲間の切替えノイズは皆無で、MPDクライアントやAudirvanaなどの専用クライアントなどで生じるデータ形式の異なる曲の切替えノイズに悩まされることがなくなったのは何よりも快適だ.幸か不幸か私にはほんの些細な音質の違いが気になるような神経質な地獄耳を持ち合わせていないので、Roonの再生環境でそこそこ満足している.正直これ以上デジタル環境の再生音質に拘るより、昔のようにアナログの世界で楽しいオーディオライフを送りたいと気持ちが強い.
Botic環境のRoon Bridge化
Roon Bridgeがどのようなものかについては上記の記事を読んで貰うとして、今回は Botic V7環境を Roon Bridge化する際の手順について紹介する.
Roon Bridgeは、Windows環境(32/64bit)、Mac OS環境、Linux環境の何れでも稼働させることができるようだが、BoticはLinux環境なので、当然Linux用のパッケージをダウンロードしてBotic環境にそれらをインストールすることになる.残念ながらLinux用のRoon Bridgeソフトウェアはまだ開発途上(多分今後も...)で、対応しているLinuxディストリビューションは限られているようだ.
Ubuntuなどの比較的メジャーで汎用的なLinuxディストリビューションでは手間を掛けずに簡単に構築可能なようだが、残念ながら Botic のようなマイナーなディストリビューションでは、Roon Bridgeソフトウェアをインストールして稼働させるには、足りない部分を自分で環境構築しなければならない.
とりあえず今回は、トライ&エラー方式でBoticをRoon Bridge化させてみたときの手順を紹介する.
【Linux版のRoon Bridgeインストラースクリプトのダウンロード】
Downloadページ [ https://roonlabs.com/downloads.html ] 中の、”Roon Bridge” から “Linux” のリンクを辿ると “LinuxInstall“ページが表示される.ここには. Roon Server/Bridge をLinux環境下で稼働させるための条件や環境について触れられているので、先ずは一読しておく.
先ずは、Roon Bridge で必要な環境を挙げておく.
・libasound2 (1.0.29+ recommended) : ALSA(Advanced Linux Sound Architecture)のバージョンは 1.0.29以上を推奨
・glibc 2.14 (or higher) : glibcのバージョンは 2.14以上
・Recent Linux Kernel : 4.x 系の最新カーネル
Native DSD再生にはこれらの条件をクリアしていなければならないようだ.Botic V7 (rc3)での環境をちょっと調べてみた.
root@botic2:~# mkdir Roon
root@botic2:~# cd Roon
root@botic2:~/Roon# uname -a
Linux botic2 4.8.13-botic7-rc3 #1 PREEMPT Sat Dec 10 01:35:51 CET 2016 armv7l GNU/Linux
root@botic2:~/Roon# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k4.8.13-botic7-rc3.
root@botic2:~/Roon# aplay --version
aplay: version 1.0.27.2 by Jaroslav Kysela
root@botic2:~/Roon# ldd /usr/bin/aplay
linux-vdso.so.1 => (0xbefbb000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6f72000)
libasound.so.2 => /usr/lib/arm-linux-gnueabihf/libasound.so.2 (0xb6ed0000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e65000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6e5a000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6e3f000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6e1b000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d33000)
/lib/ld-linux-armhf.so.3 (0x7f5a2000)
root@botic2:~/Roon# /lib/arm-linux-gnueabihf/libc.so.6
GNU C Library (Debian EGLIBC 2.13-38+deb7u11) stable release version 2.13, by Roland McGrath et al.
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.6.3.
Compiled on a Linux 3.2.78 system on 2016-05-29.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
Support for some architectures added on, not maintained in glibc core.
BIND-8.2.3-T5B
libc ABIs: UNIQUE
For bug reporting instructions, please see:
.
kernelのバージョンは 4.8.13なので問題はないが、libasound2のバージョン情報が k4.8.13-botic7-rc3 に書き換えられていて、条件に合致するのかどうか良く判らない.glibc(libc) のバージョンが 2.13なので、このままでは駄目そうだ.とりあえず、ダメ元でこのページに書かれている内容に従って、Roon Bridgeのインストール作業を実施して行くことにしよう.
root@botic2:~/Roon# curl -O http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv7hf.sh
-bash: curl: command not found
root@botic2:~/Roon#
最初のインストーラースクリプトのダウンロードで curl がインストールされていないので転けてしまった.やれやれ...
先ずは、 curl をインストールしてからインストーラースクリプトをダウンロード.
root@botic2:~/Roon# apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libcurl3
The following NEW packages will be installed:
curl libcurl3
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 569 kB of archives.
After this operation, 733 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://security.debian.org/ wheezy/updates/main libcurl3 armhf 7.26.0-1+wheezy17 [303 kB]
Get:2 http://security.debian.org/ wheezy/updates/main curl armhf 7.26.0-1+wheezy17 [266 kB]
Fetched 569 kB in 0s (1196 kB/s)
Selecting previously unselected package libcurl3:armhf.
(Reading database ... 17177 files and directories currently installed.)
Unpacking libcurl3:armhf (from .../libcurl3_7.26.0-1+wheezy17_armhf.deb) ...
Selecting previously unselected package curl.
Unpacking curl (from .../curl_7.26.0-1+wheezy17_armhf.deb) ...
Setting up libcurl3:armhf (7.26.0-1+wheezy17) ...
Setting up curl (7.26.0-1+wheezy17) ...
root@botic2:~/Roon# curl -O http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv7hf.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16390 100 16390 0 0 21271 0 --:--:-- --:--:-- --:--:-- 37678
root@botic2:~/Roon# ls -la
total 28
drwxr-xr-x 2 root root 4096 Dec 12 23:09 .
drwx------ 4 root root 4096 Dec 12 20:47 ..
-rw-r--r-- 1 root root 16390 Dec 12 23:09 roonbridge-installer-linuxarmv7hf.sh
root@botic2:~/Roon# chmod +x roonbridge-installer-linuxarmv7hf.sh
root@botic2:~/Roon# ls -la
total 28
drwxr-xr-x 2 root root 4096 Dec 12 23:09 .
drwx------ 4 root root 4096 Dec 12 20:47 ..
-rwxr-xr-x 1 root root 16390 Dec 12 23:09 roonbridge-installer-linuxarmv7hf.sh
root@botic2:~/Roon#
インストーラスクリプト “roonbridge-installer-linuxarmv7hf.sh” を実行すると
root@botic2:~/Roon# ./roonbridge-installer-linuxarmv7hf.sh
--------------------------------------------------------------------------------------
Welcome to the RoonBridge installer
This installer sets up RoonBridge to run on linux with the following settings:
- RoonBridge will be installed in /opt/RoonBridge
- RoonBridge's data will be stored in /var/roon/RoonBridge
- RoonBridge will be configured to run as a system service
- RoonBridge will run as root
These settings are suitable for turning a dedicated or semi-dedicated device
into an appliance that runs RoonBridge
If you want customize how RoonBridge is installed, see:
http://kb.roonlabs.com/LinuxInstall
--------------------------------------------------------------------------------------
Do you want to install RoonBridge on this machine? [Y/n] y
Downloading RoonBridge_linuxarmv7hf.tar.bz2 to /tmp/tmp.AnATQ72ooo/RoonBridge_linuxarmv7hf.tar.bz2
######################################################################## 100.0%
Unpacking RoonBridge_linuxarmv7hf.tar.bz2...tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
--------------------------------------------------------------------------------------
The RoonBridge installer did not complete successfully.
If you are not sure how to proceed, please check out:
- Roon Labs Community https://community.roonlabs.com/c/support
- Roon Labs Knowledge Base https://kb.roonlabs.com/LinuxInstall
--------------------------------------------------------------------------------------
root@botic2:~/Roon#
と何やらエラーメッセージを吐いて異常終了してしまう.圧縮されたファイルを解凍できないようなので、 ”bzip2″ をインストール後に、先程のインストールスクリプトを再実行する.
root@botic2:~/Roon# apt-get install bzip2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
bzip2-doc
The following NEW packages will be installed:
bzip2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.6 kB of archives.
After this operation, 112 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ wheezy/main bzip2 armhf 1.0.6-4 [48.6 kB]
Fetched 48.6 kB in 0s (59.1 kB/s)
Selecting previously unselected package bzip2.
(Reading database ... 17211 files and directories currently installed.)
Unpacking bzip2 (from .../bzip2_1.0.6-4_armhf.deb) ...
Setting up bzip2 (1.0.6-4) ...
root@botic2:~/Roon# ./roonbridge-installer-linuxarmv7hf.sh
--------------------------------------------------------------------------------------
Welcome to the RoonBridge installer
This installer sets up RoonBridge to run on linux with the following settings:
- RoonBridge will be installed in /opt/RoonBridge
- RoonBridge's data will be stored in /var/roon/RoonBridge
- RoonBridge will be configured to run as a system service
- RoonBridge will run as root
These settings are suitable for turning a dedicated or semi-dedicated device
into an appliance that runs RoonBridge
If you want customize how RoonBridge is installed, see:
http://kb.roonlabs.com/LinuxInstall
--------------------------------------------------------------------------------------
Do you want to install RoonBridge on this machine? [Y/n] y
Downloading RoonBridge_linuxarmv7hf.tar.bz2 to /tmp/tmp.JGGBq4ykqk/RoonBridge_linuxarmv7hf.tar.bz2
######################################################################## 100.0%
Unpacking RoonBridge_linuxarmv7hf.tar.bz2...Done
Checking to see if RoonBridge can run on this machine
Checking for Binary Compatibility [ OK ]
Checking for ALSA Libraries [ OK ]
STATUS: SUCCESS
Copying Files...Done
Failed to issue method call: Unit roonbridge.service not loaded.
Installing /etc/systemd/system/roonbridge.service
Enabling service roonbridge...
ln -s '/etc/systemd/system/roonbridge.service' '/etc/systemd/system/multi-user.target.wants/roonbridge.service'
Service Enabled
Starting service roonbridge...
Service Started
--------------------------------------------------------------------------------------
All Done! RoonBridge should be running on your machine now.
--------------------------------------------------------------------------------------
root@botic2:~/Roon#
何やらインストールは上手く行ったようなメッセージが吐き出されている.Roon Bridge も既に起動されているようなので、どのようなプロセスが走っているのか確認してみる.
root@botic2:~/Roon# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 4720 3556 ? Ss Dec10 0:01 /lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S Dec10 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Dec10 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Dec10 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S Dec10 0:01 [kworker/u2:0]
root 7 0.0 0.0 0 0 ? S Dec10 0:00 [rcu_preempt]
root 8 0.0 0.0 0 0 ? S Dec10 0:00 [rcu_sched]
root 9 0.0 0.0 0 0 ? S Dec10 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S< Dec10 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S Dec10 0:00 [kdevtmpfs]
root 13 0.0 0.0 0 0 ? S< Dec10 0:00 [netns]
root 14 0.0 0.0 0 0 ? S Dec10 0:00 [oom_reaper]
root 15 0.0 0.0 0 0 ? S< Dec10 0:00 [writeback]
root 16 0.0 0.0 0 0 ? S Dec10 0:00 [kcompactd0]
root 17 0.0 0.0 0 0 ? SN Dec10 0:00 [ksmd]
root 18 0.0 0.0 0 0 ? S< Dec10 0:00 [crypto]
root 19 0.0 0.0 0 0 ? S< Dec10 0:00 [kintegrityd]
root 20 0.0 0.0 0 0 ? S< Dec10 0:00 [bioset]
root 21 0.0 0.0 0 0 ? S< Dec10 0:00 [kblockd]
root 22 0.0 0.0 0 0 ? S< Dec10 0:00 [devfreq_wq]
root 23 0.0 0.0 0 0 ? S< Dec10 0:00 [watchdogd]
root 24 0.0 0.0 0 0 ? S< Dec10 0:00 [rpciod]
root 25 0.0 0.0 0 0 ? S< Dec10 0:00 [xprtiod]
root 26 0.0 0.0 0 0 ? S Dec10 0:00 [kswapd0]
root 27 0.0 0.0 0 0 ? S< Dec10 0:00 [nfsiod]
root 49 0.0 0.0 0 0 ? S< Dec10 0:00 [kthrotld]
root 52 0.0 0.0 0 0 ? S Dec10 0:00 [irq/33-48060000]
root 54 0.0 0.0 0 0 ? S< Dec10 0:00 [bioset]
root 55 0.0 0.0 0 0 ? S Dec10 0:00 [mmcqd/0]
root 56 0.0 0.0 0 0 ? S< Dec10 0:00 [ipv6_addrconf]
root 65 0.0 0.0 0 0 ? S< Dec10 0:00 [deferwq]
root 66 0.0 0.0 0 0 ? S Dec10 0:00 [irq/159-44e0b00]
root 67 0.0 0.0 0 0 ? S Dec10 0:00 [irq/189-tps6521]
root 68 0.0 0.0 0 0 ? S Dec10 0:00 [irq/160-4819c00]
root 76 0.0 0.0 0 0 ? S< Dec10 0:00 [bioset]
root 77 0.0 0.0 0 0 ? S Dec10 0:00 [mmcqd/1]
root 80 0.0 0.0 0 0 ? S< Dec10 0:00 [bioset]
root 81 0.0 0.0 0 0 ? S Dec10 0:00 [mmcqd/1boot0]
root 84 0.0 0.0 0 0 ? S< Dec10 0:00 [bioset]
root 86 0.0 0.0 0 0 ? S Dec10 0:00 [mmcqd/1boot1]
root 107 0.0 0.0 0 0 ? S< Dec10 0:00 [kworker/0:1H]
root 116 0.0 0.0 0 0 ? S Dec10 0:00 [jbd2/mmcblk0p2-]
root 117 0.0 0.0 0 0 ? S< Dec10 0:00 [ext4-rsv-conver]
root 135 0.0 4.7 32464 24096 ? Ss Dec10 0:00 /lib/systemd/systemd-journald
root 149 0.0 0.4 9360 2264 ? Ss Dec10 0:00 /lib/systemd/systemd-udevd
root 301 0.0 0.0 0 0 ? S Dec10 0:00 [spi1]
root 302 0.0 0.0 0 0 ? S Dec10 0:00 [spi2]
root 324 0.0 0.0 0 0 ? S Dec10 0:00 [irq/182-4803800]
root 329 0.0 0.0 0 0 ? S Dec10 0:00 [irq/181-4803800]
root 341 0.0 0.0 0 0 ? S Dec10 0:00 [irq/184-4803c00]
root 344 0.0 0.0 0 0 ? S Dec10 0:00 [irq/183-4803c00]
root 368 0.0 0.0 0 0 ? S Dec10 0:00 [kworker/u2:2]
root 478 0.0 0.0 0 0 ? S Dec10 0:00 [53500000.aes-en]
root 636 0.0 0.2 1912 1396 ? Ss Dec10 0:00 /sbin/rpcbind -w
statd 686 0.0 0.3 2224 1712 ? Ss Dec10 0:00 /sbin/rpc.statd
root 937 0.0 0.2 2448 1308 ? Ss Dec10 0:00 /usr/sbin/rpc.idmapd
mpd 1043 0.0 14.8 79048 75668 ? SLsl Dec10 2:38 /usr/bin/mpd --no-daemon
root 1053 0.0 0.7 5492 3652 ? Ss Dec10 0:00 /usr/sbin/sshd -D
root 1055 0.0 0.1 1352 1016 ? Ss Dec10 0:00 /usr/sbin/acpid
mpd 1057 0.0 0.2 2800 1416 ? Ss Dec10 1:13 /usr/local/bin/ympd -u mpd
root 1060 0.0 0.3 2724 1748 ? Ss Dec10 0:00 /lib/systemd/systemd-logind
root 1062 0.0 0.4 28424 2524 ? Ssl Dec10 0:00 /usr/sbin/rsyslogd -n
103 1063 0.0 0.3 2516 1824 ? Ss Dec10 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 1104 0.0 0.2 1872 1376 ? Ss Dec10 0:00 /usr/sbin/cron
upmpdcli 1135 0.0 0.8 82992 4540 ? Ssl Dec10 3:04 /usr/bin/upmpdcli -D -c /etc/upmpdcli.conf
root 1220 0.0 0.0 0 0 ? S Dec10 0:00 [file-storage]
root 1257 0.0 0.2 1860 1336 tty1 Ss+ Dec10 0:00 /sbin/agetty --noclear tty1 38400 linux
root 1258 0.0 0.2 1680 1228 ttyS0 Ss+ Dec10 0:00 /sbin/agetty -s ttyS0 115200 38400 9600 vt102
root 1623 0.0 0.0 0 0 ? S Dec12 0:22 [kworker/0:2]
root 1761 0.2 0.7 8100 3800 ? Ss 05:55 0:02 sshd: root@pts/0
root 1763 0.0 0.4 2608 2196 pts/0 Ss 05:55 0:00 -bash
root 1849 0.0 0.0 0 0 ? S 06:07 0:00 [kworker/0:1]
root 1852 0.0 0.2 2508 1432 pts/0 R+ 06:13 0:00 ps aux
root@botic2:~/Roon#
あれー!??? "Roon Bridge" 関連のプロセスが見当たらない.何処??? 勿論、この状態では Roon Coreからも認識されない.先ずはエラーとなる原因をシステムのログ情報から探し出すこにする.
"/var/log/syslog" を確認すると、
Dec 13 06:07:03 botic2 systemd[1]: Reloading.
Dec 13 06:07:03 botic2 systemd[1]: Starting RoonBridge...
Dec 13 06:07:03 botic2 systemd[1]: Started RoonBridge.
Dec 13 06:07:03 botic2 start.sh[1839]: RoonBridge: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.16' not found (required by RoonBridge)
Dec 13 06:07:03 botic2 start.sh[1839]: /opt/RoonBridge/start.sh: 37: kill: No such process
Dec 13 06:17:01 botic2 /USR/SBIN/CRON[1854]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
やはり、glibc(libc) のバージョンが低すぎるようで異常終了している.glibc(libc) を最新版にアップデートしないといけないようだ.
【glibcのアップデート】
glibcのアップデートに関する情報を拾い集めていたら、"stack overflow" サイトに "http://stackoverflow.com/questions/19471683/lib-libc-so-6-version-glibc-2-17-not-found" なるQ&Aを見つけた.このページの最後の方に、"InvictusRex28" さんが次の様な手順で glibをアップデートすれば良いという回答をしているので、この方法でアップデートする.
echo "deb http://ftp.debian.org/debian sid main" >> /etc/apt/sources.list
apt-get update
apt-get -t sid install libc6-dev libc6-dbg
どうやら パッケージのリポジトリに "http://ftp.debian.org/debian sid main" を追加して、"libc6" をアプデートすれば良いようだ."/etc/apt/sources.list" に
"deb http://ftp.debian.org/debian sid main"
の1行を追加し、apt-get コマンドでアップデートする.
"/etc/apt/sources.list"
deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ wheezy main contrib non-free
deb http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
#deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.debian.org/debian wheezy-backports main contrib non-free
##deb-src http://ftp.debian.org/debian wheezy-backports main contrib non-free
#Kernel source (repos.rcn-ee.com) : https://github.com/RobertCNelson/linux-stable-rcn-ee
#
#git clone https://github.com/RobertCNelson/linux-stable-rcn-ee
#cd ./linux-stable-rcn-ee
#git checkout `uname -r` -b tmp
#
deb [arch=armhf] http://repos.rcn-ee.com/debian/ wheezy main
#deb-src [arch=armhf] http://repos.rcn-ee.com/debian/ wheezy main
## Botic
deb http://repo.ieero.com/ wheezy main
#deb-src http://repo.ieero.com/ wheezy main
## GLIBC
deb http://ftp.debian.org/debian sid main <=== この1行を追加
libc というLinuxの重要ライブラリの入れ替えなので、メッセージを確認しながらアップデートを行う事にする.
root@botic2:~/Roon# apt-get install libc6
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libgmp10 libhogweed4 libnettle6 libupnp6
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
dmsetup keyutils libdevmapper1.02.1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libnettle6 libtirpc1
Suggested packages:
glibc-doc libc-l10n locales krb5-doc krb5-user
Recommended packages:
krb5-locales
The following packages will be REMOVED:
bbx15-ducati-firmware-installer curl libavformat55 libcurl3 libcurl3-gnutls libgnutls26 libldap-2.4-2 libnfsidmap2 libp11-kit0 librtmp0 libupnpp0 mpd nfs-common upmpdcli wget
The following NEW packages will be installed:
keyutils libnettle6
The following packages will be upgraded:
dmsetup libc6 libdevmapper1.02.1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libtirpc1
9 upgraded, 2 newly installed, 15 to remove and 211 not upgraded.
Need to get 3521 kB of archives.
After this operation, 7367 kB disk space will be freed.
Do you want to continue [Y/n]? y
Get:1 http://ftp.debian.org/debian/ sid/main libtirpc1 armhf 0.2.5-1 [69.9 kB]
Get:2 http://ftp.debian.org/debian/ sid/main libc6 armhf 2.24-8 [2338 kB]
Get:3 http://ftp.debian.org/debian/ sid/main libkeyutils1 armhf 1.5.9-9 [11.8 kB]
Get:4 http://ftp.debian.org/debian/ sid/main libk5crypto3 armhf 1.15-1 [117 kB]
Get:5 http://ftp.debian.org/debian/ sid/main libgssapi-krb5-2 armhf 1.15-1 [133 kB]
Get:6 http://ftp.debian.org/debian/ sid/main libkrb5-3 armhf 1.15-1 [267 kB]
Get:7 http://ftp.debian.org/debian/ sid/main libkrb5support0 armhf 1.15-1 [57.8 kB]
Get:8 http://ftp.debian.org/debian/ sid/main libdevmapper1.02.1 armhf 2:1.02.136-1 [160 kB]
Get:9 http://ftp.debian.org/debian/ sid/main dmsetup armhf 2:1.02.136-1 [107 kB]
Get:10 http://ftp.debian.org/debian/ sid/main keyutils armhf 1.5.9-9 [50.4 kB]
Get:11 http://ftp.debian.org/debian/ sid/main libnettle6 armhf 3.3-1 [210 kB]
Fetched 3521 kB in 4s (748 kB/s)
W: Ignoring Provides line with DepCompareOp for package libapt-inst
W: Ignoring Provides line with DepCompareOp for package libapt-pkg
W: Ignoring Provides line with DepCompareOp for package libgpgme11-dev
W: Ignoring Provides line with DepCompareOp for package kodi-api-guilib
W: Ignoring Provides line with DepCompareOp for package kodi-api-pvr
W: Ignoring Provides line with DepCompareOp for package libparse-cpan-meta-perl
W: Ignoring Provides line with DepCompareOp for package libjpeg62
W: Ignoring Provides line with DepCompareOp for package lsb
W: Ignoring Provides line with DepCompareOp for package lsb-core
W: Ignoring Provides line with DepCompareOp for package php-psr-http-message-implementation
W: Ignoring Provides line with DepCompareOp for package php-psr-log-implementation
W: Ignoring Provides line with DepCompareOp for package php-seclib
W: Ignoring Provides line with DepCompareOp for package php-sabre-http
W: Ignoring Provides line with DepCompareOp for package php-math-biginteger
W: Ignoring Provides line with DepCompareOp for package pypy-cffi
W: Ignoring Provides line with DepCompareOp for package pypy-cffi-backend-api-max
W: Ignoring Provides line with DepCompareOp for package pypy-cffi-backend-api-min
W: Ignoring Provides line with DepCompareOp for package python-cffi-backend-api-max
W: Ignoring Provides line with DepCompareOp for package python-cffi-backend-api-min
W: Ignoring Provides line with DepCompareOp for package python3-cffi-backend-api-max
W: Ignoring Provides line with DepCompareOp for package python3-cffi-backend-api-min
W: Ignoring Provides line with DepCompareOp for package sagenb-export
W: Ignoring Provides line with DepCompareOp for package sagenb-export
Preconfiguring packages ...
(Reading database ... 17239 files and directories currently installed.)
Removing bbx15-ducati-firmware-installer ...
Removing curl ...
Removing mpd ...
[ ok ] Stopping mpd (via systemctl): mpd.service.
Removing libavformat55:armhf ...
Removing libcurl3:armhf ...
Removing upmpdcli ...
[ ok ] Stopping upmpdcli (via systemctl): upmpdcli.service.
Removing libupnpp0 ...
Removing libcurl3-gnutls:armhf ...
Removing wget ...
Removing librtmp0:armhf ...
Removing nfs-common ...
[ ok ] Stopping nfs-common (via systemctl): nfs-common.service.
Removing libnfsidmap2:armhf ...
Removing libldap-2.4-2:armhf ...
Removing libgnutls26:armhf ...
Removing libp11-kit0:armhf ...
(Reading database ... 16962 files and directories currently installed.)
Preparing to replace libtirpc1:armhf 0.2.2-5 (using .../libtirpc1_0.2.5-1_armhf.deb) ...
Unpacking replacement libtirpc1:armhf ...
Preparing to replace libc6:armhf 2.13-38+deb7u11 (using .../libc6_2.24-8_armhf.deb) ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking replacement libc6:armhf ...
Setting up libc6:armhf (2.24-8) ...
Checking for services that may need to be restarted...
Checking init scripts...
root@botic2:~/Roon#
root@botic2:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 2.2 0.6 4996 3508 ? Ss 07:25 0:01 /lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S 07:25 0:00 [kthreadd]
root 3 0.1 0.0 0 0 ? S 07:25 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/0:0]
root 5 0.0 0.0 0 0 ? S< 07:25 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/u2:0]
root 7 0.1 0.0 0 0 ? S 07:25 0:00 [rcu_preempt]
root 8 0.0 0.0 0 0 ? S 07:25 0:00 [rcu_sched]
root 9 0.0 0.0 0 0 ? S 07:25 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S< 07:25 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 07:25 0:00 [kdevtmpfs]
root 12 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/0:1]
root 13 0.0 0.0 0 0 ? S< 07:25 0:00 [netns]
root 14 0.0 0.0 0 0 ? S 07:25 0:00 [oom_reaper]
root 15 0.0 0.0 0 0 ? S< 07:25 0:00 [writeback]
root 16 0.0 0.0 0 0 ? S 07:25 0:00 [kcompactd0]
root 17 0.0 0.0 0 0 ? SN 07:25 0:00 [ksmd]
root 18 0.0 0.0 0 0 ? S< 07:25 0:00 [crypto]
root 19 0.0 0.0 0 0 ? S< 07:25 0:00 [kintegrityd]
root 20 0.0 0.0 0 0 ? S< 07:25 0:00 [bioset]
root 21 0.0 0.0 0 0 ? S< 07:25 0:00 [kblockd]
root 22 0.0 0.0 0 0 ? S< 07:25 0:00 [devfreq_wq]
root 23 0.0 0.0 0 0 ? S< 07:25 0:00 [watchdogd]
root 24 0.0 0.0 0 0 ? S< 07:25 0:00 [rpciod]
root 25 0.0 0.0 0 0 ? S< 07:25 0:00 [xprtiod]
root 26 0.0 0.0 0 0 ? S 07:25 0:00 [kswapd0]
root 27 0.0 0.0 0 0 ? S< 07:25 0:00 [nfsiod]
root 49 0.0 0.0 0 0 ? S< 07:25 0:00 [kthrotld]
root 50 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/u2:1]
root 52 0.0 0.0 0 0 ? S 07:25 0:00 [irq/33-48060000]
root 53 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/0:2]
root 54 0.0 0.0 0 0 ? S< 07:25 0:00 [bioset]
root 55 0.6 0.0 0 0 ? S 07:25 0:00 [mmcqd/0]
root 56 0.0 0.0 0 0 ? S< 07:25 0:00 [ipv6_addrconf]
root 65 0.0 0.0 0 0 ? S< 07:25 0:00 [deferwq]
root 66 0.0 0.0 0 0 ? S 07:25 0:00 [irq/159-44e0b00]
root 67 0.0 0.0 0 0 ? S 07:25 0:00 [irq/189-tps6521]
root 68 0.0 0.0 0 0 ? S< 07:25 0:00 [bioset]
root 69 0.1 0.0 0 0 ? S 07:25 0:00 [mmcqd/1]
root 70 0.0 0.0 0 0 ? S< 07:25 0:00 [bioset]
root 71 0.0 0.0 0 0 ? S 07:25 0:00 [mmcqd/1boot0]
root 72 0.0 0.0 0 0 ? S< 07:25 0:00 [bioset]
root 73 0.0 0.0 0 0 ? S 07:25 0:00 [mmcqd/1boot1]
root 74 0.0 0.0 0 0 ? S 07:25 0:00 [irq/160-4819c00]
root 107 0.0 0.0 0 0 ? S< 07:25 0:00 [kworker/0:1H]
root 116 0.0 0.0 0 0 ? S 07:25 0:00 [jbd2/mmcblk0p2-]
root 117 0.0 0.0 0 0 ? S< 07:25 0:00 [ext4-rsv-conver]
root 135 0.8 2.6 20956 13288 ? Ss 07:25 0:00 /lib/systemd/systemd-journald
root 151 0.6 0.4 9648 2236 ? Ss 07:25 0:00 /lib/systemd/systemd-udevd
root 168 0.1 0.0 0 0 ? S 07:25 0:00 [kworker/0:3]
root 283 0.0 0.0 0 0 ? S 07:25 0:00 [spi1]
root 287 0.0 0.0 0 0 ? S 07:25 0:00 [spi2]
root 314 0.0 0.0 0 0 ? S 07:25 0:00 [irq/182-4803800]
root 315 0.0 0.0 0 0 ? S 07:25 0:00 [irq/181-4803800]
root 317 0.0 0.0 0 0 ? S 07:25 0:00 [irq/184-4803c00]
root 329 0.0 0.0 0 0 ? S 07:25 0:00 [irq/183-4803c00]
root 422 0.0 0.0 0 0 ? S 07:25 0:00 [53500000.aes-en]
root 627 0.0 0.2 3492 1368 ? Ss 07:25 0:00 /sbin/rpcbind -w
root 1025 0.1 0.7 6088 3724 ? Ss 07:25 0:00 /usr/sbin/sshd -D
root 1027 0.0 0.2 1388 1088 ? Ss 07:25 0:00 /usr/sbin/acpid
root 1029 0.0 0.1 1420 944 ? Ss 07:25 0:00 /bin/sh /opt/RoonBridge/start.sh
mpd 1030 0.1 0.2 3020 1400 ? Ss 07:25 0:00 /usr/local/bin/ympd -u mpd
root 1032 0.0 0.3 2864 1816 ? Ss 07:25 0:00 /lib/systemd/systemd-logind
root 1034 0.2 0.4 30692 2516 ? Ssl 07:25 0:00 /usr/sbin/rsyslogd -n
103 1035 0.0 0.3 2800 1800 ? Ss 07:25 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 1038 0.0 0.0 0 0 ? S 07:25 0:00 [kworker/u2:2]
root 1054 13.2 4.1 52108 21388 ? Sl 07:25 0:05 RoonBridge --debug --gc=sgen --server RoonBridge.exe
root 1083 0.0 0.2 2084 1368 ? Ss 07:25 0:00 /usr/sbin/cron
root 1177 0.0 0.0 0 0 ? S 07:25 0:00 [file-storage]
root 1208 37.1 7.6 81488 39164 ? Sl 07:25 0:13 RoonBridgeHelper --debug --gc=sgen --server RoonBridgeHelper.exe
root 1216 0.0 0.1 1712 764 ? S 07:25 0:00 /opt/RoonBridge/Bridge/processreaper 1208
root 1221 0.0 0.2 2080 1296 tty1 Ss+ 07:25 0:00 /sbin/agetty --noclear tty1 38400 linux
root 1222 0.0 0.2 1900 1208 ttyS0 Ss+ 07:25 0:00 /sbin/agetty -s ttyS0 115200 38400 9600 vt102
root 1246 25.3 4.3 64224 22156 ? Sl 07:25 0:05 RAATServer --debug --gc=sgen --server RAATServer.exe
root 1267 1.9 0.7 8728 3840 ? Ss 07:25 0:00 sshd: root@pts/0
root 1269 0.5 0.4 2832 2168 pts/0 Ss 07:25 0:00 -bash
root 1282 0.0 0.2 2692 1412 pts/0 R+ 07:26 0:00 ps aux
root@botic2:~#
今度は上手くRoon Bridgeが起動したようだ.それにしても Linux上のRoon環境は "RoonBridge.exe", "RAATServer.exe" など気持ち悪いったらありゃしない.何で最初からLinux環境に合わせて作ってくれないのかな.Windows .Net 環境をベースに開発しているのがちょっとね〜...
Roon全般がやたら重いのはどうやら"Mono" という .Net互換フレームワークの使用が原因かもしれない.イーサネットポートのアクセスランプの様子を見ていてもネットワーク通信の帯域は相当消費しているようなのでRAATプロトコル自体も重そうだ.Mac OS, Linux, Window 間の互換性の維持のためだけにコンピュータリソースを浪費するのも如何な物か...