Volumio の情報メモ

ネットチューナー なのか ウェブラジオ なのか一般的な呼び名が分かりませんが、最近では私の居る部屋で常に バックグラウンド ミュージック を流しっぱなしのサーバーが置かれています。これについてのメモを残しておきます。

パソコンなどの広い画面からの操作

かなり完成度の高いシステムで、 Volumio 2 と言うシステムが公開されていて、それを単純にダウンロードして micro SD にコピーして利用しています。他の書き込みでメモしている部分もあるようなので、重複しているものもあるかと思われますが、適当にメモとして記述しておきます。

スマホやパソコンなどを利用した狭い画面

夜に重宝するのが、極端な強弱を伴わない静かなサウンドトラック等を常時流してくれる局で、ゆっくり聞きながら眠りにつけるのでとても重宝しています。


volumio@volumio1:~$ gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Unknown 
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Rev 1.2
  * This Raspberry Pi supports user-level GPIO access.


volumio@volumio1:~$ gpio readall
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 1 | ALT0 | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 | ALT0 | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 1 | 37 || 38 | 0 | ALT0 | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | ALT0 | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+

この Volumio と呼ばれるシステムは、バージョンが 2 となって公開されているシステムで、raspbian OS が基になっているようですが、基本的にセキュリティアップデートを対象としていないようで、過去に古いレビジョンの Volumio で利用していてシステム内から最新版に更新したことがありました。結果は今一つな感じで仕切り直して新しくクリーンインストールした経験を持ちます。

単純に最新版をクリーンインストールすると、過去に選択した局の情報が引き継げないので、吟味して選択しながらまとめた情報はもったいないのでバックアップしておき、インストール後に戻すのが良いと思われます。

$ ssh volumio@volumio1.local
volumio@volumio1.local's password: 
                       ___                                      
                      /\_ \                        __           
         __  __    ___\//\ \    __  __    ___ ___ /\_\    ___   
        /\ \/\ \  / __`\\ \ \  /\ \/\ \ /' __` __`\/\ \  / __`\ 
        \ \ \_/ |/\ \L\ \\_\ \_\ \ \_\ \/\ \/\ \/\ \ \ \/\ \L\ \
         \ \___/ \ \____//\____\\ \____/\ \_\ \_\ \_\ \_\ \____/
          \/__/   \/___/ \/____/ \/___/  \/_/\/_/\/_/\/_/\/___/ 
        
             Free Audiophile Linux Music Player - Version 2.0

          C 2015 Michelangelo Guarise - Volumio Team - Volumio.org
                               

Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
volumio@volumio1:~$ 

ssh でリモート接続して参照した一部の情報を次に示します。

volumio@volumio1:~$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0 282.6M  0 loop /static
mmcblk0     179:0    0  14.4G  0 disk 
|-mmcblk0p2 179:2    0   2.3G  0 part /imgpart
|-mmcblk0p3 179:3    0  12.1G  0 part 
`-mmcblk0p1 179:1    0    61M  0 part /boot

volumio@volumio1:~$ df
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mmcblk0p2              2.4G  673M  1.6G  31% /imgpart
/dev/loop0                  297M  297M     0 100% /static
overlay                     274M  220M   34M  87% /
devtmpfs                    497M     0  497M   0% /dev
tmpfs                       509M     0  509M   0% /dev/shm
tmpfs                       509M   35M  475M   7% /run
tmpfs                       5.3M  4.1k  5.3M   1% /run/lock
tmpfs                       509M     0  509M   0% /sys/fs/cgroup
tmpfs                       509M   25k  509M   1% /tmp
tmpfs                       509M     0  509M   0% /var/spool/cups
tmpfs                        21M  9.7M   12M  47% /var/log
tmpfs                       509M     0  509M   0% /var/spool/cups/tmp
/dev/mmcblk0p1               63M   39M   25M  61% /boot
//RPI1-DISK/共有/volumio  317G  175G  143G  56% /mnt/NAS/共有
tmpfs                       102M     0  102M   0% /run/user/1000


volumio@volumio1:~$ sudo cat /etc/fstab
[sudo] password for volumio: 
proc            /proc           proc    defaults        0       0
/dev/mmcblk0p1  /boot           vfat    defaults,utf8,user,rw,umask=111,dmask=000        0       1
tmpfs   /var/log                tmpfs   size=20M,nodev,uid=1000,mode=0777,gid=4, 0 0
tmpfs   /var/spool/cups         tmpfs   defaults,noatime,mode=0755 0 0
tmpfs   /var/spool/cups/tmp     tmpfs   defaults,noatime,mode=0755 0 0
tmpfs   /tmp                    tmpfs   defaults,noatime,mode=0755 0 0
tmpfs   /dev/shm                tmpfs   defaults,nosuid,noexec,nodev        0 0


volumio@volumio1:~$ mount
/dev/mmcblk0p2 on /imgpart type ext4 (rw,relatime,stripe=1024,data=ordered)
/dev/loop0 on /static type squashfs (ro,relatime)
overlay on / type overlay (rw,relatime,lowerdir=/mnt/static,upperdir=/mnt/ext/dyn,workdir=/mnt/ext/work)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=485032k,nr_inodes=121258,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,noatime,mode=755)
tmpfs on /var/spool/cups type tmpfs (rw,noatime,mode=755)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
tmpfs on /var/log type tmpfs (rw,nodev,relatime,size=20480k,mode=777,uid=1000,gid=4)
configfs on /sys/kernel/config type configfs (rw,relatime)
tmpfs on /var/spool/cups/tmp type tmpfs (rw,noatime,mode=755)
/dev/mmcblk0p1 on /boot type vfat (rw,nosuid,nodev,noexec,relatime,fmask=0111,dmask=0000,allow_utime=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
//RPI1-DISK/共有/volumio on /mnt/NAS/共有 type cifs (ro,relatime,vers=default,cache=strict,username=sunao,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.11.23,file_mode=0666,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=99412k,mode=700,uid=1000,gid=1000)

各種データの格納先ディレクト

どこに何が格納されているのかは、はっきり言ってよく分かりません。また、どのようなフォーマットを必要としているのかも不明です。

ただ、選択したラジオ局のプレイリスト、演奏中や演奏待ちのキューは、 /data 下のディレクトリに集められているらしいので、コマンド tree をインストールしてディレクトリ部分だけをリストにしたものを次に示します。

volumio@volumio1:~$ tree -d /data
/data
|-- INTERNAL
|-- albumart
|   |-- folder
|   |-- metadata
|   `-- web
|       |-- 1.FM%20-%20Bossa%20Nova%20Hits%20Radio
|       |-- 1.FM%20-%20Movie%20Soundtracks%20Hits%20Radio
|       |-- 1000%20HITS%2070s
|       |-- 1000%20HITS%20Oldies
|       |-- 181.FM%20Christmas%20Swing
|       |-- FeLove%20Cl%C3%A1sica
|       |-- J-Pop%20Powerplay%20-%20Kawaii
|       |-- J-Pop%20Sakura
|       |-- J1%20Gold%20-%20Japan%27s%20Oldies
|       |-- JamendoLounge
|       |-- Japan%20Hits%20-%20Asia%20DREAM%20Radio
|       |-- Johann%20Sebastian%20Bach
|       |   `-- Goldberg%20Variations%20(feat.%20piano%3A%20Chen%20Pi-Hsien)
|       |-- Radio%20Caprice%20-%20Bossa%20Nova
|       |-- Radio%20Caprice%20-%20Swing
|       |-- Radio%20Caprice%20-%20Symphony
|       |-- Retro%20Oldies%20Radio
|       `-- Swinging%20Radio%20England
|-- backgrounds
|-- configuration
|   |-- audio_interface
|   |   `-- alsa_controller
|   |-- miscellanea
|   |   |-- alarm-clock
|   |   |-- albumart
|   |   |-- appearance
|   |   |-- my_music
|   |   `-- wizard
|   |-- music_service
|   |   |-- lms
|   |   |-- mpd
|   |   |-- squeezelite
|   |   |-- streaming_services
|   |   |   |-- services_configs
|   |   |   `-- services_tokens
|   |   |-- upnp_browser
|   |   `-- webradio
|   `-- system_controller
|       |-- i2s_dacs
|       |-- my_volumio
|       |-- network
|       |-- networkfs
|       |-- system
|       |-- volumio_command_line_client
|       `-- volumiodiscovery
|-- favourites
|-- playerstate
|-- playlist
`-- plugins
    |-- music_service
    |   |-- lms
    |   |   |-- i18n
    |   |   `-- node_modules
    |   |       |-- balanced-match
    |   |       |-- brace-expansion
    |   |       |   `-- node_modules
    |   |       |       `-- balanced-match
    |   |       |-- concat-map
    |   |       |   |-- example
    |   |       |   `-- test
    |   |       |-- fs-extra
    |   |       |   `-- lib
    |   |       |       |-- copy
    |   |       |       |-- copy-sync
    |   |       |       |-- empty
    |   |       |       |-- ensure
    |   |       |       |-- json
    |   |       |       |-- mkdirs
    |   |       |       |-- move
    |   |       |       |-- output
    |   |       |       |-- remove
    |   |       |       |-- util
    |   |       |       `-- walk
    |   |       |-- fs.realpath
    |   |       |-- glob
    |   |       |-- graceful-fs
    |   |       |-- inflight
    |   |       |-- inherits
    |   |       |-- ip
    |   |       |   |-- lib
    |   |       |   `-- test
    |   |       |-- jsonfile
    |   |       |-- kew
    |   |       |   `-- test
    |   |       |-- klaw
    |   |       |   `-- src
    |   |       |-- minimatch
    |   |       |-- multimap
    |   |       |   `-- test
    |   |       |-- once
    |   |       |-- path-is-absolute
    |   |       |-- rimraf
    |   |       |-- v-conf
    |   |       |   `-- node_modules
    |   |       |       |-- fs-extra
    |   |       |       |   `-- lib
    |   |       |       |       |-- copy
    |   |       |       |       |-- copy-sync
    |   |       |       |       |-- empty
    |   |       |       |       |-- ensure
    |   |       |       |       |-- json
    |   |       |       |       |-- mkdirs
    |   |       |       |       |-- move
    |   |       |       |       |-- output
    |   |       |       |       |-- remove
    |   |       |       |       |-- streams
    |   |       |       |       |-- util
    |   |       |       |       `-- walk
    |   |       |       `-- multimap
    |   |       |           `-- test
    |   |       |-- wireless-tools
    |   |       |   `-- test
    |   |       `-- wrappy
    |   `-- squeezelite
    |       |-- i18n
    |       |-- node_modules
    |       |   |-- balanced-match
    |       |   |-- brace-expansion
    |       |   |   `-- node_modules
    |       |   |       `-- balanced-match
    |       |   |-- concat-map
    |       |   |   |-- example
    |       |   |   `-- test
    |       |   |-- fs-extra
    |       |   |   `-- lib
    |       |   |       |-- copy
    |       |   |       |-- copy-sync
    |       |   |       |-- empty
    |       |   |       |-- ensure
    |       |   |       |-- json
    |       |   |       |-- mkdirs
    |       |   |       |-- move
    |       |   |       |-- output
    |       |   |       |-- remove
    |       |   |       |-- util
    |       |   |       `-- walk
    |       |   |-- fs.realpath
    |       |   |-- glob
    |       |   |-- graceful-fs
    |       |   |-- inflight
    |       |   |-- inherits
    |       |   |-- ip
    |       |   |   |-- lib
    |       |   |   `-- test
    |       |   |-- jsonfile
    |       |   |-- kew
    |       |   |   `-- test
    |       |   |-- klaw
    |       |   |   `-- src
    |       |   |-- minimatch
    |       |   |-- multimap
    |       |   |   `-- test
    |       |   |-- once
    |       |   |-- path-is-absolute
    |       |   |-- rimraf
    |       |   |-- v-conf
    |       |   |   `-- node_modules
    |       |   |       |-- fs-extra
    |       |   |       |   `-- lib
    |       |   |       |       |-- copy
    |       |   |       |       |-- copy-sync
    |       |   |       |       |-- empty
    |       |   |       |       |-- ensure
    |       |   |       |       |-- json
    |       |   |       |       |-- mkdirs
    |       |   |       |       |-- move
    |       |   |       |       |-- output
    |       |   |       |       |-- remove
    |       |   |       |       |-- streams
    |       |   |       |       |-- util
    |       |   |       |       `-- walk
    |       |   |       `-- multimap
    |       |   |           `-- test
    |       |   |-- wireless-tools
    |       |   |   `-- test
    |       |   `-- wrappy
    |       `-- unit
    `-- system_controller
        `-- backup_restore
            |-- i18n
            `-- node_modules
                |-- balanced-match
                |-- brace-expansion
                |-- concat-map
                |   |-- example
                |   `-- test
                |-- fs-extra
                |   `-- lib
                |       |-- copy
                |       |-- copy-sync
                |       |-- empty
                |       |-- ensure
                |       |-- json
                |       |-- mkdirs
                |       |-- move
                |       |-- output
                |       |-- remove
                |       |-- util
                |       `-- walk
                |-- fs.realpath
                |-- glob
                |-- graceful-fs
                |-- imurmurhash
                |-- inflight
                |-- inherits
                |-- jsonfile
                |-- kew
                |   `-- test
                |-- klaw
                |   `-- src
                |-- minimatch
                |-- multimap
                |   `-- test
                |-- once
                |-- path-is-absolute
                |-- rimraf
                |-- slide
                |   `-- lib
                |-- v-conf
                |   |-- node_modules
                |   |   `-- fs-extra
                |   |       |-- docs
                |   |       `-- lib
                |   |           |-- copy
                |   |           |-- copy-sync
                |   |           |-- empty
                |   |           |-- ensure
                |   |           |-- json
                |   |           |-- mkdirs
                |   |           |-- move
                |   |           |-- move-sync
                |   |           |-- output
                |   |           |-- remove
                |   |           `-- util
                |   `-- test
                |-- wrappy
                `-- write-file-atomic

242 directories

作成したプレイリストの格納先

自分でカスタマイズしたり好みのリストを作れるプレイリストについて次に示します。

最初の画面の右側中の [プレイリスト] をクリックするとリストが出てきます。2番目の画面でリストの下に隠れている [日本歌謡・アイドル他] をクリックすると3番目の画面になります。

3番目の画面は、各放送局を選択する画面です。ここでクリックした局が選択され、キューにコピーされて放送の受信が始まります。クリックされる度にキューにコピーされるようです。

実際のデータ格納先は、 /data/playlist 以下のディレクトリに保存されるようです。ただ単純に ls コマンドで表示すると、 ls が持つ気配り(?)で日本語文字が、??? の並びで表示されてしまうようです。

volumio@volumio1:~$ ls /data/playlist/
Guitar & piano           ??????????????????&??????????????????
Jazz                     ???????????????????????????&?????????
Relax & Easy listening   ???????????? & ???????????????
Retro 50s-80s & Beatles  ??????????????????????????????
Solo                     ??????

回避策はコントロールキャラクタも表示させるオプションを指定するか、 cat でパイプして表示すれば漢字で表示できるようです。

volumio@volumio1:~$ ls --show-control-chars /data/playlist/
Guitar & piano  Relax & Easy listening   Solo  ダンス系・スイング&タンゴ    日本歌謡・アイドル他
Jazz            Retro 50s-80s & Beatles  シンフォニー&クラッシック     ボサノバ & シャンソン  映画


volumio@volumio1:~$ ls /data/playlist/ | cat Guitar & piano Jazz Relax & Easy listening Retro 50s-80s & Beatles Solo シンフォニー&クラッシック ダンス系・スイング&タンゴ ボサノバ & シャンソン 日本歌謡・アイドル他 映画
右上のボタンでキューに移動

放送を受信しているラジオ局は、画面右の選択ボタンで表示しているキューにリストされています。

普段聞いている放送局ならここのキューにリストされているので、そこをクリックして選択するだけで簡単に放送局の切り替えができます。

左のアイコン上に薄緑の三角が表示されているのが、受信中の放送局ですが、一部をキューから削除したり、リストの順番を上下に移動したりすると表示位置の追従ができないようです。

プレイリストの生成

プレイリストを作成するには、前節で説明しているキューにリストされている放送局全体に新しいグループ名を付与して生成します。

注意点は、すでに作成されている下に並ぶ名称をクリックすると、一瞬で置換されます。

ウェブラジオからプレイリストの Jazz を作成

Volumio から、標準で提供されているウェブラジオの放送局があります。ここでは、お薦めや国別、ジャンル別等の色々な切り口からリストになっていて、選んでもエラーになって受信できないものや好みの合わないものも多数あります。

実際に聞いてみて自分の好みで選択して、必要なものをキューに残して、後で分かりやすいグループ名(今回は Jazz)を付与してプレイリストを作成します。

まずは、左のボタンで一覧表示にして、家のマークのホームボタンをクリックし、中からウェブラジオをクリックします。

ウェブラジオ内の項目を辿って、好みに合う放送局を探しながらキューに移します。

受信できない放送局も多数残るので、キューに移された放送局を個々に選びながら吟味して不要な放送局は、右の(☓)マークで削除しながら整理します。

好みの Jazz 放送局が集められたので、プレイリストにグループ名 Jazz で登録します。不要なプレイリストは右の点をクリックして削除可能です。

ラズパイで ネットチューナー

長く生きていると誰にでもじわじわと押し寄せる老朽化ですが、私の頭もご多分に漏れず処理能力がかなり落ちていると思います。処理は遅いし途中で別の優先事項が割り込むと、元の作業が長期中断したり継続の見込みのない保留になったりしています。

仕掛り中のラズパイ1B+のネット共有サーバーも少し保留で、1年以上前に設定して有効な利用もないまま据え置かれたラズパイがあり、こちらは妻が使用しているステレオに接続して試用をして、その後そのまま据え置かれていました。

ラズパイに専用のDACを重ねて、ミュージックサーバーの専用OS – Volumio2を入れて利用する物です。WiFi経由でネットに接続したら音飛びが酷くて、経過見で置かれてそのままになってしまったようです。忘れましたが、WiFi機能があるのでラズパイ3B でしょうね。

ラズパイもサーバーとして長く稼働していると、原因が相性なのか性能なのか不明ですが、 SD のシステムやデータが壊れるのを度々経験していて、ちょっと心配です。そんなこともあって、相性が良いと評判の東芝製 microSD をわざわざ購入して設定しました。今回は稼働したまま1年以上置かれていましたが、壊れてはいませんでした。

妻が独身時代から利用していたステレオが老朽化して、電解コンデンサや機械的に可動するボリューム類も対応不能な状況になって、当時手軽な価格でネットで購入できるメインアンプとしてマランツの PS3001 を購入しました。これが、接続もされないままひっそりと片隅に置かれたままになっていました。

それをバックグラウンド・ミュージックのシステムとして使おうと考えて、スピーカーも購入していました。邪魔にならないように静かに音が流れるだけの環境での使用なので、大きなスピーカーの必要もなくて安い手頃なものを購入していました。これが今回は日の目を見ることになりました。

自分の部屋にマランツの大きくて重いアンプと小さな Volumio のラズパイを運びスピーカーを接続しました。日の目を見たミュージックサーバーは何の問題もなく音を出し始めました。

1年以上前にセットアップしたシステムなので、当然のように新しいシステムが提供されていました。悩むところですが今後のこともあるので、経験としてアップデートしてどのような結果になるのか興味があるし知りたいところです。そんなわけで、Volumio2 システムのアップデートも試してみました。

見た目は問題なくアップデートできたようです。この時点で止めといても良かったのですが、ネット上には NHK のラジオを組込む記事なども見付けることができ、プラグインを2つ組込んで対応できたようなので試してみようと考えました。
プラグインの組込みを実行すると、どれを選んでも同じエラーになります。古いシステム情報との競合のようです。ssh でログインして、update や upgrade を試してみましたが、システム全体の作りが元は同じ raspbian を使用しているもののモジュールの更新は考慮していないようです。

そこで最初からのクリーンインストールを試して、動作の違いを検証してみようと思い立ちました。そこで問題なのが選択してせっかく作った playlist を保存しておき、最新の Volumio2 のインストール後に戻すことができるかです。

置かれたディレクトリの情報をネットで色々と調べました。でも肝心なディレクトリの情報になかなか辿り着けないで困りました。

全てがそうなのかは分かりませんが、ルート下の data ディレクトリに置かれているようです。例えば、/data/playlist/ の中に、オーナーが volumioユーザーとして、プレイリストのタイトル項目毎にファイルとして分かれて置かれていました。

リモートで作業しているノートPCから、scp コマンドで取り出すことも、戻すことも問題なく出来るようです。例えば、保管用のディレクトリを確保してから、次のようなコマンドで取り出して、新しいシステムをセットアップします。

$ mkdir -p ~/volumio/playlist
$ scp -r volumio@192.168.22.33:/data/playlist/*  ~/volumio/playlist/

作業しているノートPCの volumio/playlist/ に取り出せているので、新しいシステムをクリーンインストール後に、戻すために scp コマンドを利用します。

$ scp -r ~/volumio/playlist/*  volumio@192.168.22.33:/data/playlist/

最新の Volumio2 をセットアップした後で、悩んだことをメモしておきます。それは基本的なことで、ssh したかったのにできなくて困りました。1年前もたしか悩んだような記憶があります。方法はブラウザで、Volumio の /DEV にアクセスして、ssh を有効にする [enable] ボタンをクリックすることです。

なお、初期値のパスワードは、volumioroot も ‘volumio‘ になっているので置き換えを実行しておきます。

最新版の Volumio2 をクリーンインストールしたので、できなかったプラグインは問題なくインストールまでできました。しかし、ネットで紹介された手順の途中で、:9000 番ポートにアクセスして操作するように説明されているのですが、そのポートでは機能が待ち受けていないようで、この作業は保留になりました。

暇ができたら頭の体操としてこの続きを進めたいと思いますが、ただのネットチューナーとしてだけでも十分なバックグラウンド・ミュージックサーバーとして働いています。この先も暇などできないと思うのでこの件は長期保留ですね。

最初からリストされている多くの放送局は動作保証されてませんが、感覚的には半分くらいはまともに機能しているようで、日本の歌謡曲やアイドルの局を流している放送局もあります。時折少し訛った日本語で日本の天気予報や鉄道情報が流れるのもありましたし、曲目や歌手名が漢字で表示されるのもあります。

バックグラウンドで適当に色々な曲が流れるのは私の性に合っているのかもしれません。特に信仰する歌手や曲があってこだわるわけでもないので、わざわざ選んだり入替えたりする手間も必要なくとても合理的です。今はこんな曲が欲しいと大雑把に放送局を選ぶだけで事が済みます。

音量のボリューム操作や放送局の選択は、離れたPCからのブラウザ操作でも、スマホからの操作でもできるし、もし必要なら曲名やアーティスト名の確認も簡単な内容ですが一応できます。今現在は、こんな曲もあったよなぁ〜と思うような懐かしい青春時代の曲が次から次へと流れています。

家に置かれたアナログの固定電話でもバックではデジタルのネットワーク経由だし、すでにラジオも時代は電波を使って放送する時代からネットワークを経由する時代に移行しているのですね、有料放送の NHK はこだわりから時代に遅れてますが今後どうなるのでしょうね。
放送局は、聞ききれないほどの選択量があるので、飽きたら変えるとか気分で変えるとか、良い悪いの判断は一度選んでみないと分からないので、埋もれる局が溢れてます。