我如何升级我的 CuBox 开源音乐服务器

我们的常驻音响发烧友解释了他如何在出色使用了五年多之后更新了他的 CuBox 音乐服务器。
128 位读者喜欢这个。
open source music with piano keys background

Opensource.com

早在 2014 年初,我购买了我的第一台 基于 ARM 的计算机,一台 SolidRun CuBox-i4。 我对 CuBox 的目标是拥有一个无头设备(例如,没有显示器),它在音响设备架中占用最小的空间,产生最小的噪音,并将音乐文件提供给我的数模转换器 (DAC),从而提供给立体声系统的其余部分。 从纸面上看,CuBox 非常适合。 它是无风扇的,可与各种 Linux 发行版配合使用,提供单独的 eSATA 接口 用于本地安装的硬盘驱动器,因此 USB 端口可以空出来用于其他用途,提供用于数字音频的 TOSLINK 端口,使用 MicroSD 卡(默认情况下,无论如何)作为系统安装和启动驱动器,并配备 2GB RAM 和相当快的 i.MX6q 四核处理器,所有这些都在一个不显眼的 5x5x5 厘米黑色塑料盒中。

而且,正如运气(有时)所愿,这些承诺大部分都得到了兑现。 这个盒子仍然运行良好,为我的家人提供了极大的音乐享受。 连接的硬盘驱动器包含大约 275GB 的音乐文件——略多于 7,500 个 FLAC 文件,其中穿插着大约 300 个 MP3 文件。

作为我们的家庭音乐服务器,CuBox 运行一个精简的 Linux 服务器发行版,其中音乐播放器守护进程 (MPD) 作为音乐服务软件,通过 ALSA 将数字数据发送到 DAC,服务器上没有软件混音、升采样或降采样或音量控制。 最近,我发现运行 lighttpd(一个轻量级、易于配置的 HTTP 服务器)很方便,它可以为我们在家中运行的各种 MPD 客户端提供封面图像。 (但现在 MPD 提供了这项功能,因此这种便利可能很快就会消失。)对于播放音乐的用户界面,我们在桌面上使用 Cantata,在我们的 Android 手机上使用 MPD Remote(注意:它可能不是开源的)来浏览、选择和播放音乐。

2017 年,我写了关于我使用 CuBox 的经验。 我尝试过 Voyage LinuxVolumioArchphile Linux,并且刚刚迁移到 Armbian,当时它基于 Ubuntu 16.04 LTS(长期支持)。 今年秋天,我决定是时候升级服务器,获取最新版本的 MPD,并一路处理一些其他麻烦的细节。

升级

鉴于我对 Armbian 的总体良好体验,我决定再次使用它来获取升级材料。 有两个受支持的选项:基于 Debian Buster 的服务器配置和 Ubuntu 18.04 桌面配置。 考虑到我希望系统无显示且极简,我选择了 Debian 版本。

Armbian versions

下载过程没有问题,我很快就在我的 Downloads 文件夹中得到了一个安装镜像。 和以前一样,我对 Armbian 文档的质量和“切中要点”的性质印象深刻,其中指出

镜像应仅使用 Etcher 在所有平台上写入,因为与其他工具不同,Etcher 验证刻录结果,从而使您免受 SD 卡内容损坏的影响

这是我第一次使用 Etcher,其可用性给我留下了深刻的印象(这是使用开源软件的又一个绝妙理由)。 我将生成的 MicroSD 卡插入 CuBox,连接以太网电缆、DAC 和 eSATA 驱动器,然后开机。 很快,我就可以 SSH 进入 CuBox 进行配置。 真是轻松的体验! 这是我使用 SSH 登录到该机器时看到的

CuBox login

在配置方面,我的目标如下

  • 完成初始配置
  • 为有线网络连接配置静态 IP 地址
  • 使已安装的系统保持最新
  • 禁用无线
  • 安装和配置 MPD
  • 安装和配置 lighttpd
  • 听一些音乐!

我使用了出色的 Armbian Config 程序 来执行许多这些初始配置任务。

Armbian-Config screen

选择“系统”会显示此菜单

Armbian-Config settings

我使用它来禁用通过 SSH 的 root 登录,并启用密码和公钥身份验证。

在“网络”子系统中,我设置了静态 IP 地址(以符合我的家庭路由器设置),在“个人”子系统中,我更改了时区和主机名。 我本可以使用“软件”子系统来运行初始更新,但我选择退出到 shell 并使用 apt 来完成此初始配置,命令如下

sudo apt update
sudo apt upgrade

我还使用 apt 安装了 MPD 和 lighttpd,命令如下

sudo apt install mpd lighttpd

我有以前的 MPD 配置文件 (/etc/mpd.conf);一般来说,我更喜欢使用这些类型的旧文件作为配置新文件的指南,而不是只是将旧文件直接放在新文件之上。 最后,没有做太多更改;以下是旧文件和新文件之间的差异

clh@stereo:/etc$ diff mpd.conf.orig mpd.conf
85c85,86
< bind_to_address		"localhost"
---
> #bind_to_address		"localhost"
> bind_to_address		"192.168.1.21"
241c242,249
< 	name		"My ALSA Device"
---
> 	name		"Drop Airist R2R"
> 	device		"hw:CARD=U20,DEV=0"
> 	mixer_type      "none"
> 	replay_gain_handler      "none"
> #	name		"Schit Bifrost 4490"
> #	device		"hw:CARD=S2,DEV=0"
> #	mixer_type      "none"
> #	replay_gain_handler      "none"
clh@stereo:/etc$

您可以看到我有两个 DAC(只是因为),第二个被注释掉了(并且未连接)。 此外,我必须更改 bind_to_address,以便 MPD 将监听局域网。

至于 lighttpd,我只需要更改 document-root

clh@stereo:/etc/lighttpd$ diff lighttpd.conf.orig lighttpd.conf
8c8,13
< server.document-root        = "/var/www/html"
---
> # Used this config documentation
> #https://github.com/abarisain/dmix/wiki/Album-Art-on-your-LAN
> # which wasn't good - wrong user name, didn't need to add
> # the mime config
> # in the end just changed the document root.
> 
> server.document-root        = "/var/lib/mpd/music/"
clh@stereo:/etc/lighttpd$

为了访问音乐文件,我在 /etc/fstab 中添加了以下行

/dev/sda1 /mnt/eSATA ext4 rw 0 0

并使用以下命令创建了挂载点

sudo mkdir /mnt/eSATA

此时,我使用以下命令挂载了外部硬盘驱动器

sudo mount /dev/sda1

最后,我将 MPD 的配置目录链接到音乐,命令如下

sudo rmdir /var/lib/mpd/music
sudo ln -s /mnt/eSATA/Music /var/lib/mpd/music

我使用这种方法是因为我宁愿不要过多地摆弄 MPD 的配置。

最好检查音乐文件是否归正确的 MPD 用户 ID 所有。 使用以下命令执行此操作

clh@stereo:~$ ls -ld /var/lib/mpd/music/* | head
drwxrwxrwx   5 mpd audio  4096 Jan 22  2017 /var/lib/mpd/music/Academy of St. Martin-in-the-Fields
drwxrwxrwx   3 mpd audio  4096 Jan 22  2017 /var/lib/mpd/music/Acantus
drwxrwxrwx   3 mpd audio  4096 Dec 13  2014 /var/lib/mpd/music/Afrikan_Sciences
drwxrwxrwx   5 mpd audio  4096 Sep 25  2016 /var/lib/mpd/music/Afro Celt Sound System
drwxrwxrwx   3 mpd audio  4096 Mar 11  2014 /var/lib/mpd/music/Agnes Obel
drwxrwxrwx   3 mpd audio  4096 Oct  9  2013 /var/lib/mpd/music/Alexander Malter, Dietmar Schwalke, Vladimir Spiakov, Sergej Bezrodny
drwxrwxrwx   3 mpd audio  4096 Oct  8  2013 /var/lib/mpd/music/Ali Farka Toure & Toumani Diabate
drwxrwxrwx   3 mpd audio  4096 Oct  8  2013 /var/lib/mpd/music/Ali Farka Touré with Ry Cooder
drwxrwxrwx   5 mpd audio  4096 Jan  1  2018 /var/lib/mpd/music/Amadou et Mariam
drwxrwxrwx   3 mpd audio  4096 Jul 11  2017 /var/lib/mpd/music/American Authors
clh@stereo:~$

这看起来不错(用户 ID mpd,组 ID audio)。

最后,要禁用无线,我输入了

sudo nmcli radio wifi off

我完成了! 是时候重启了

sudo systemctl reboot

重启后,我使用 Cantata 强制 MPD 刷新其数据库。 这是完成后的样子,我正在听 Frameworks 的最新专辑,Imagine Gold

Frameworks "Imagine Gold" in Cantata

在曲目列表的左侧,您可以看到 lighttpd 提供的封面图像。

说到音乐

我真的很喜欢 Frameworks 的最新专辑。 它与他之前的作品非常相似,他总是拥有最棒的 hook,非常适合跳舞,而且总是有那么一点点“渴望”。 像往常一样在 Bandcamp 上购买他的作品很不错(参见上面的链接,您也可以在那里收听)。

最近,我也一直在购买另一种伟大的开源格式——黑胶唱片。 特别是来自 Erased Tapes 唱片公司的两张精美的近期专辑,Anne Müller 的 Heliopause,这是一张精美的唱片,记录了她自己的独奏大提琴和辅助乐器和声音,“专注于古典乐器的新颖方法”,以及 Penguin Cafe 的 Handfuls of Night,它“起源于 Greenpeace 委托 [Penguin Cafe 的 Arthur] Jeffes 创作四首音乐作品,对应四种企鹅,以帮助提高人们对濒危南极海域的认识。” Linux 用户怎能没有 Penguin Cafe 的关于企鹅的音乐呢?

接下来读什么
Chris Hermansen portrait Temuco Chile
自从 1978 年毕业于不列颠哥伦比亚大学以来,我几乎离不开各种计算机。自 2005 年以来,我一直是全职 Linux 用户,从 1986 年到 2005 年,我一直是全职 Solaris 和 SunOS 用户,在此之前是 UNIX System V 用户。

4 条评论

很棒的文章!

谢谢 Alan,非常感谢!

我有点想要一堆这些小家伙在房子周围做各种事情,但那是一个未来的项目……也许可以用 Raspberry Pi 盒子代替。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.