DietPi Streamer Setup

市面上已经有非常多种的串流机选择,从中国品牌到欧美日,价格可以是非常亲民,也可以是天价。

Dac解码对于电脑玩家来说是,音源播放除了操作系统安装播放软件,也可以按照那些特定的串流系统。得益于电脑系统的蓬勃发展,尤其ubuntu后的时代,很多基于deb的系统在市面上百花齐放。至于硬件,可以从x86到ARM的电脑,x86可以是intel/AMD,也可是苹果电脑(现已经是ARM处理器)。而其它Arm选择,最受欢迎的当然还是树莓派。

基于树莓派播放系统非常成熟了,市面上主流的有volumio, moode audio, picoreplayer。小众的可以选Lyrion系统。反而x86的系统,一般都是建立在传统的window, macos, ubuntu这些系统上。传统操作系统播出来的声音一般烧友都不能接收。这类系统也要很多优化来降低噪音和延迟。

前阵子买了一个二手的nuc,是intel五代,凑合用是安装了黑苹果,声音确实还可以。手痒下想测试串流系统,但市面上主要的串流系统都是针对arm机,没办法安装在x86电脑。反复测试下,找到一款还不错的,是基于debian的Dietpi。主要是够小,没有复杂的程序,非常适用于播放,不好的地方是需要有电脑知识,尤其是Linux。这类就是一个操作系统,非针对播放,但可以选择安装播放和媒体软件来达成串流系统。这系统是没有GUI,但可以安装GUI。个人是不推荐装,就让系统尽量小和少程序。

Dietpi x86 版

首先到官网下载,可以浏览 dietpi.com/downloads/images/

如果要直接用usb pendrive做系统,直接下载 DietPi_NativePC-UEFI-x86_64-Trixie.img.xz,下载完成后解压,并用 rufus烧录到pendrive,最少32gb。如果是RPI或Nanopi,可以下载DietPi_NanoPiZero2-ARMv8-Bookworm.img.xz,将之烧录到sdcard。

如果要安装系统,下载 DietPi_NativePC-UEFI-x86_64-Trixie_Installer.iso,下载完成rufus烧录到pendrive,最少4gb。这个是安装盘。

下面是对于型号

Debian 14 (aka Forky)
Debian 13 (“stable”, aka Trixie) *这个版本可支持ip6,也不会播放一个造成另外一个播不到
Debian 12 (aka Bookworm)

这里大概讲解 pendrive 系统版,插入pendrive启动电脑会进入跑代码的画面,然后需要输入用户名(root)和密码(dietpi),系统会要求更换密码,会有2种密码更换,一个是root用户密码,另外一个是安装授权密码。也会有语言选择。完成后在输入端输入 dietpi-software,会有以下画面可以选择

选择 Browser Software 然后点击 <select>,过后会有软件清单,选择要的软件后确定,并在以上项目选Install后点<Select>进行安装。

下面是软件选项画面,用keyboard上下键移动,确定要安装的软件点space确定,可以多选。完成选择后,keyboard点Tab键选择<ok>并enter

以下是必选软件 (安装必须连线)

  • Gmediarenderer (upnp/dlna 播放系统)
  • NAA Daemon (如果有hqplayer)
  • OpenSSH (cmd可以控制dietpi)
  • Samba Client (读取network shared folder)
  • Alsa (声卡驱动)

系统会下载相关软件并进行安装,需要一些时间,这些软件是直接装在pendrive,不会影响电脑的硬盘。安装完成后建议重新启动电脑,reboot。重启后,注意看画面上的ip地址,然后再浏览器上输入相关地址

设定DietPi

输入 dietpi-config,可以进行设定,包括以下

优化指南

将系统以RAM模式跑,这样可以直接关机,不会损害sdcard

转去ram模式,2个地方设置。先到dietpi-config > Advanced Options

Swap File => Off

第二步,进入APT,APT list和APT archives 都选RAM

Lyrion(不建议使用)

安装lyrion和squeeze,根据以下

Lyrion系统地址是 http//你的IP address:9000

如果要使用upnp播放,可以到lyrion操作页面里面添加upnp media,这样就可以用任何upnp播放软件将歌播放到Lyrion。

如果是有音乐档,并存在nas,就需要打开terminal输入 dietpi-drive_manager 做samba连接,选 <Add network drive>点击<ok>,之后先输入ip address,过后才是文件档路径,再来是用户名和密码

完成连接后记得Lyrion设定相关文件夹成为music folder。这样lyrion就会出现所有的歌曲让你选择播放。媒体管理器依赖电脑处理器的能力,越多歌单,需要越强的处理器。

Lyrion的控制页面如下

Apscream(类似diretta)

apscream是俄罗斯albumplayer的其中一个协议,主要类似upnp,可以将window的播放软件将歌发到apscream receiver进行播放,类似diretta。方式也是采用Asio方式连接。播放电脑安装官方Asio驱动,并连接到receiver,receiver可以是安装在任何Linux系统上,或者选用官方的pendrive包。以下示范Dietpi安装apscream receiver

到官方下载asioscream4文件,然后解压,将 LinuxReceiver > x64 > apscream64.tar.gz > apscream 复制到scream folder

创建文件

mkdir /mnt/nt1

复制scream 文件夹到nt1 (以下是scream folder在network folder)

cd /mnt/samba (scream folder location)
cp -a scream /mnt/nt1
chmod +x apscream

自动启动apscream

sudo crontab -e
add below command
@reboot /mnt/nt1/scream/apscream &

apscream的文件位置

/opt/apscream/apscream/

apscream的修改UDP去TCP,比如ffaudio无法使用原来的设定,需要修改文件,tcp从0换1,电脑的asioscream.ini也需要换成1.可以用nano编辑config.txt

/opt/apscream/apscream/config.txt

dietpi 安装ympd+upnp (nanopi)

install ympd with dietpi-software

install upmpdcli 需要的文件 with command

sudo apt-get install libjsoncpp26 libmicrohttpd12t64 python3-requests libmpdclient2t64 python3-certifi python3-charset-normalizer python3-idna python3-urllib3 python3-chardet

x64版本,下载 upmpdcli,链接下载

/upmpdcli/downloads/debian/pool/main/u/upmpdcli/upmpdcli_1.9.17-1~ppa1~trixie_amd64.deb

需要的搭配

/upmpdcli/downloads/debian/pool/main/libu/libupnpp/libupnpp17_1.0.4-1~ppa1~trixie_amd64.deb

rpi版本,下载 upmpdcli,链接下载

https://www.lesbonscomptes.com/upmpdcli/downloads/raspbian/pool/main/u/upmpdcli/upmpdcli_1.9.17-1~ppa1~trixie_arm64.deb

需要的搭配

/upmpdcli/downloads/raspbian/pool/main/libn/libnpupnp/libnpupnp13_6.3.0-1~ppa1~trixie_arm64.deb
/upmpdcli/downloads/raspbian/pool/main/libu/libupnpp/libupnpp17_1.0.4-1~ppa1~trixie_arm64.deb

将上面下载的文件复制或直接安装

cd /mnt/samba
sudo dpkg -i *.deb

编辑文件,可以支持dsd直播,sudo nano /etc/mpd.conf, scroll down to audio output, direct

audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hw:0,0"
        dop             "yes"           # Enables DSD over PCM
        mixer_type      "none"          # Bypasses software volume control
}

启动播放

sudo systemctl restart mpd
sudo systemctl restart ympd

浏览ympd

http://ip-address:1337/

dietpi 安装roonbridge

用DiskGenius将文件抄进 /opt/

tar -xjf RoonBridge_linuxarmv8.roonffa-patched.tar.bz2

编辑启动文件

sudo nano /etc/systemd/system/roonbridge.service
[Unit]
Description=RoonBridge Service
After=network.target sound.target

[Service]
Type=simple
User=root
Environment=ROON_DATAROOT=/var/roon
Environment=ROON_ID_DIR=/var/roon
ExecStart=/opt/RoonBridge/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启动

sudo systemctl daemon-reload
sudo systemctl enable roonbridge
sudo systemctl start roonbridge
sudo systemctl status roonbridge

dietpi 安装direttaAlsaHost

dietpi bookworm + direttaAlsaHost_150_5(不解压)

cp /mnt/pend1/DirettaAlsaHost_150_5.tar.xz /usr/src/
cd /usr/src
apt install xz-utils
tar -xvf DirettaAlsaHost_150_5.tar.xz
cd DirettaAlsaHost
cp syncAlsa_gcc15_x64_v3 syncAlsa
cp find_x64 find
cp logcatch_x64 logcatch
chmod +x syncAlsa find logcatch

edit to enable load soundcard

nano /etc/modules
snd
snd-pcm

install diretta

make -C /lib/modules/$(uname -r)/build M=$PWD modules
sudo insmod alsa_bridge.ko
lsmod | grep alsa_bridge
ip a
nano syncalsa_setting.inf
Interface=eth0

Edit diretta

cat << 'EOF' > /etc/systemd/system/diretta.service

[Unit]
Description=Diretta ALSA Host Service
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/src/DirettaAlsaHost
ExecStartPre=/sbin/insmod /usr/src/DirettaAlsaHost/alsa_bridge.ko
ExecStart=/usr/src/DirettaAlsaHost/syncAlsa
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

Start diretta

systemctl daemon-reload
systemctl enable diretta.service
systemctl start diretta.service

如果启动不到,输入下面找问题

journalctl -n 20 -u diretta.service

sed -i 's/ExecStartPre=\/sbin\/insmod/ExecStartPre=-\/sbin\/insmod/' /etc/systemd/system/diretta.service
systemctl daemon-reload
systemctl start diretta.service

sudo systemctl status diretta_alsa

RPI面对的问题

当用naa换去gmedia,无法播放歌(相反也不能),一般bookwarm有这个问题。一般出现这个问题可以选换版本,不一定是bookworm版本,可以试trixie

nano ~/.bashrc
alias tonaa="sudo systemctl stop gmediarender roonbridge && sudo systemctl start networkaudiod"
alias togm="sudo systemctl stop networkaudiod roonbrideg && sudo systemctl restart gmediarender"
alias torb="sudo systemctl stop networkaudiod gmediarender && sudo systemctl restart roonbridge"

source ~/.bashrc

这时已经可以自动转换,如果还是不能就cmd登录,如果要用gmedia 输入togm;如果要naa输入tonaa

find current network all ip

for /L %i in (1,1,254) do @ping -n 1 -w 100 192.168.100.%i | find "Reply"

Loading

HiRes.64