Raspberry Pi + Rune Audio ::: Một trải nghiệm nghe nhạc mới

quatmo

Well-Known Member
Mình dùng HBOS Pi4, làm theo hướng dẫn của github này:
GitHub - app4rpi/docker-minidlna: MiniDlna is a great file media server, protected with docker is fantastic.
sau khi chạy câu lệnh này
Mã:
docker run -d --restart always --name minidlna --net=host docker-minidlna:latest
thì mình kiểm tra thấy chạy rồi,
miniDLNA-Docker.png

mà ko biết làm sao để add nhạc vào để miniDLNA scan, nhạc mình để ở đây (mount NAS ->)
/data/library/music
- Và thêm 1 vấn đề nữa, mình dùng HBOS Pi4, dùng bản AssetUPnP của bác @quatmo, mỗi lần reboot lại thì nhạc đã scan của Asset mất sạch, phải rescan lại (kiểm tra điểm thư mục mount NAS vẫn còn nhạc ở đó)

Mình build được bản HBOS: Không Docker rồi. Các bác cần nhắn PM mình nhé.
TC, AP (active). BUB, MiniDLNA, Asset (mặc định stop, cần thì start service lên).
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Em xin báo cáo tình hình dùng smpd 0.9.6 + Asset upnp làm upnp server. Với setup hiện tại em cực kỳ ưng ý. Tiếng hay nhất từ trước tới giờ các anh ạ. Trong trẻo và dynamic cực tốt.

Vì OS này chỉ chạy asset upnp. Nên em cho script soundset chạy chung với assetupnp.service luôn (Dùng ExecStartPost).

Mình chỉ nên renice các main process của asset upnp. Phải kiểm tra kỹ vì nếu chạy renice sớm quá nó sẽ renice toàn bộ process, tiếng sẽ bị bó.

Với setup này hiện tại. Em không bị lag khi chạy với mọi bản asset upnp.

Âm thanh này em nghĩ chắc là không thua minidlna. Em thích dùng asset upnp hơn minidlna vì nó quản lý tag và search tốt hơn.

File assetupnp.service:

Mã:
[Unit]
Description=Launch AssetUPnP
After=network.target

[Service]
User=root
Type=simple
ExecStart=/root/bin/AssetUPnP/AssetUPnP
ExecStartPost=/usr/bin/soundset
Restart=always
RestartSec=1min

[Install]
WantedBy=multi-user.target

Script soundset chứa nội dung sau:

Mã:
#!/bin/bash

/usr/bin/tvservice --off

/bin/sleep 5

if [ -e /mnt/NAS/ ]; then
renice 14 $(pidof cifsd)
fi

/bin/sleep 15

renice 20 $(pidof AssetUPnP)

exit 0

smpd-096-renice.png
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Em xin báo cáo tình hình dùng smpd 0.9.6 + Asset upnp làm upnp server. Với setup hiện tại em cực kỳ ưng ý. Tiếng hay nhất từ trước tới giờ các anh ạ. Trong trẻo và dynamic cực tốt.

Vì OS này chỉ chạy asset upnp. Nên em cho script soundset chạy chung với assetupnp.service luôn.

Mình chỉ nên renice các main process của asset upnp. Phải delay vài giây vì nếu chạy renice sớm quá nó sẽ renice toàn bộ process, tiếng sẽ bị bó.

Với setup này hiện tại. Em không bị lag khi chạy với mọi bản asset upnp.

Âm thanh này em nghĩ chắc là không thua minidlna. Em thích dùng asset upnp hơn minidlna vì nó quản lý tag và search tốt hơn.

File assetupnp.service:

Mã:
[Unit]
Description=Launch AssetUPnP
After=network.target

[Service]
User=root
Type=simple
ExecStart=/root/bin/AssetUPnP/AssetUPnP
ExecStartPost=/usr/bin/soundset
Restart=always
RestartSec=1min

[Install]
WantedBy=multi-user.target

Script soundset chứa nội dung sau:

Mã:
#!/bin/bash

/bin/sleep 3

# reduce ksoftirqd latency
chrt -f -p 54 $(pgrep ksoftirqd/0)
chrt -f -p 54 $(pgrep ksoftirqd/1)
chrt -f -p 54 $(pgrep ksoftirqd/2)
chrt -f -p 54 $(pgrep ksoftirqd/3)

# micro SD scheduler
echo "noop" | tee /sys/block/mmcblk0/queue/scheduler

# HDMI off
/usr/bin/tvservice --off

# Increase flush time to disk
echo 0 | tee /proc/sys/vm/dirty_writeback_centisecs

# txqueuelen (default:1000)
ifconfig eth0 txqueuelen 2000
ifconfig wlan0 txqueuelen 2000

# optimized network settings

echo 524288 | tee /proc/sys/net/core/rmem_max > /dev/null 2>&1
echo 524288 | tee /proc/sys/net/core/wmem_max > /dev/null 2>&1

/bin/sleep 5

renice 20 $(pidof cifsd)

renice 20 $(pidof AssetUPnP)

exit 0

smpd-096-renice.png

Tuyệt! Thanks anh chia sẻ kinh nghiệm.
 

rndce

Well-Known Member
Mình build được bản HBOS: Không Docker rồi. Các bác cần nhắn PM mình nhé.
TC, AP (active). BUB, MiniDLNA, Asset (mặc định stop, cần thì start service lên).
Mình note lại các bước cài miniDLNA trên Hifiberry OS dùng Docker:
#1 - Tạo thư folder:
Mã:
git clone https://github.com/app4rpi/docker-minidlna.git
cd docker-minidlna
#2 - Tạo docker image:
Mã:
docker build --rm -t docker-minidlna .
file image docker-minidlna:latest được tạo có kích thước 43.1MB
#3 - Tạo thư mục /var/cache/minidlna
Mã:
mkdir /var/cache/minidlna
#4 - Khởi chạy miniDLNA:
Mã:
docker run -d --restart always --name minidlna --net=host \
    -v /data/library/music/NASLossless:/media/music \
    --mount source=minidlna,target=/var/cache/minidlna docker-minidlna:latest
trong đó /data/library/music/NASLossless là thư mục chứa nhạc trên Hifiberry OS (mình mount NAS đến thư mục này).
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Em xin báo cáo tình hình dùng smpd 0.9.6 + Asset upnp làm upnp server. Với setup hiện tại em cực kỳ ưng ý. Tiếng hay nhất từ trước tới giờ các anh ạ. Trong trẻo và dynamic cực tốt.

Vì OS này chỉ chạy asset upnp. Nên em cho script soundset chạy chung với assetupnp.service luôn (Dùng ExecStartPost).

Mình chỉ nên renice các main process của asset upnp. Phải kiểm tra kỹ vì nếu chạy renice sớm quá nó sẽ renice toàn bộ process, tiếng sẽ bị bó.

Với setup này hiện tại. Em không bị lag khi chạy với mọi bản asset upnp.

Âm thanh này em nghĩ chắc là không thua minidlna. Em thích dùng asset upnp hơn minidlna vì nó quản lý tag và search tốt hơn.

File assetupnp.service:

Mã:
[Unit]
Description=Launch AssetUPnP
After=network.target

[Service]
User=root
Type=simple
ExecStart=/root/bin/AssetUPnP/AssetUPnP
ExecStartPost=/usr/bin/soundset
Restart=always
RestartSec=1min

[Install]
WantedBy=multi-user.target

Script soundset chứa nội dung sau:

Mã:
#!/bin/bash

/bin/sleep 3

# micro SD scheduler
echo "noop" | tee /sys/block/mmcblk0/queue/scheduler

# HDMI off
/usr/bin/tvservice --off

# Increase flush time to disk
echo 0 | tee /proc/sys/vm/dirty_writeback_centisecs

# disable load balancing
#echo 0 | sudo tee /sys/fs/cgroup/cpuset/cpuset.sched_load_balance

# txqueuelen (default:1000)
ifconfig eth0 txqueuelen 2000
ifconfig wlan0 txqueuelen 2000

# optimized network settings

echo 524288 | tee /proc/sys/net/core/rmem_max > /dev/null 2>&1
echo 524288 | tee /proc/sys/net/core/wmem_max > /dev/null 2>&1

/bin/sleep 3

if [ -e /mnt/NAS/ ]; then
renice 20 $(pidof cifsd)
fi

/bin/sleep 5

renice 0 $(pgrep -w AssetUPnP)

/bin/sleep 5

renice 20 $(pidof AssetUPnP)

exit 0

Cập nhật thông tin: Em đã giải quyết được renice asset upnp đúng như ý muốn ạ. Mời các anh test thử.

smpd-096-renice.png
Dùng bản 0.96 mod chỉnh theo hướng dẫn này hả anh?
 

tml3nr

Moderator
Dùng bản 0.96 mod chỉnh theo hướng dẫn này hả anh?
Đúng vậy anh ạ. Bản này em mod smpd 0.9.6 chỉ chạy asset upnp. Tắt hết tất cả các service liên quan đến mpd, ympd, pipe, spotify, rc.local....

Trong cmdline.txt em set lại isolcpus=0,1

Mã:
pi@smpd:~ $ systemctl list-unit-files | grep enabled
assetupnp.service  enabled
dsctl.service  enabled
fake-hwclock.service  enabled
hwclock-save.service  enabled
ssh.service  enabled
systemd-networkd.service  enabled
systemd-resolved.service  enabled
default.target  enabled
multi-user.target  enabled
remote-fs.target  enabled
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Em xin báo cáo tình hình dùng smpd 0.9.6 + Asset upnp làm upnp server. Với setup hiện tại em cực kỳ ưng ý. Tiếng hay nhất từ trước tới giờ các anh ạ. Trong trẻo và dynamic cực tốt.

Vì OS này chỉ chạy asset upnp. Nên em cho script soundset chạy chung với assetupnp.service luôn (Dùng ExecStartPost).

Mình chỉ nên renice các main process của asset upnp. Phải kiểm tra kỹ vì nếu chạy renice sớm quá nó sẽ renice toàn bộ process, tiếng sẽ bị bó.

Với setup này hiện tại. Em không bị lag khi chạy với mọi bản asset upnp.

Âm thanh này em nghĩ chắc là không thua minidlna. Em thích dùng asset upnp hơn minidlna vì nó quản lý tag và search tốt hơn.

File assetupnp.service:

Mã:
[Unit]
Description=Launch AssetUPnP
After=network.target

[Service]
User=root
Type=simple
ExecStart=/root/bin/AssetUPnP/AssetUPnP
ExecStartPost=/usr/bin/soundset
Restart=always
RestartSec=1min

[Install]
WantedBy=multi-user.target

Script soundset chứa nội dung sau:

Mã:
#!/bin/bash

/usr/bin/tvservice --off

/bin/sleep 5

if [ -e /mnt/NAS/ ]; then
renice 14 $(pidof cifsd)
fi

/bin/sleep 15

renice 20 $(pidof AssetUPnP)

exit 0

smpd-096-renice.png


Đúng vậy anh ạ. Bản này em mod smpd 0.9.6 chỉ chạy asset upnp. Tắt hết tất cả các service liên quan đến mpd, ympd, pipe, spotify, rc.local....

Trong cmdline.txt em set lại isolcpus=0,1

Mã:
pi@smpd:~ $ systemctl list-unit-files | grep enabled
assetupnp.service  enabled
dsctl.service  enabled
fake-hwclock.service  enabled
hwclock-save.service  enabled
ssh.service  enabled
systemd-networkd.service  enabled
systemd-resolved.service  enabled
default.target  enabled
multi-user.target  enabled
remote-fs.target  enabled

Em áp dụng soundset cho bản smpd 0.60GA.
Asset giờ chạy mượt mà với AP rồi anh, control bằng mọi app đều OK.

USB Wifi Broadcom BCM43143 (add wifi/pass vào /etc/wpa_supplicant/wpa_supplicant.conf). Gõ lsusb đã nhìn thấy:
Bus 001 Device 004: ID 0a5c:bd Broadcom Corp.
Em chưa biết cách để nó nhận IP (interfaces).



Mã:
pi@smpd:~ $ systemctl list-unit-files | grep enabled
aprenderer.service                     enabled
asset.service                          enabled
dhcpcd.service                         enabled
fake-hwclock.service                   enabled
hwclock-save.service                   enabled
tidal-connect.service                  enabled
spotify-connect.service                enabled
ssh.service                            enabled
systemd-networkd.service               enabled
systemd-resolved.service               enabled
umountw.service                        enabled
remote-fs.target                       enabled
 
Chỉnh sửa lần cuối:

toi511

Well-Known Member
Em áp dụng soundset cho bản smpd 0.60GA.
Asset giờ chạy mượt mà với AP rồi anh, control bằng mọi app đều OK.

USB Wifi Broadcom BCM43143 (add wifi/pass vào /etc/wpa_supplicant/wpa_supplicant.conf). Gõ lsusb đã nhìn thấy:
Bus 001 Device 004: ID 0a5c:bd Broadcom Corp.
Em chưa biết cách để nó nhận IP (interfaces).



Mã:
pi@smpd:~ $ systemctl list-unit-files | grep enabled
aprenderer.service                     enabled
asset.service                          enabled
dhcpcd.service                         enabled
fake-hwclock.service                   enabled
hwclock-save.service                   enabled
tidal-connect.service                  enabled
spotify-connect.service                enabled
ssh.service                            enabled
systemd-networkd.service               enabled
systemd-resolved.service               enabled
umountw.service                        enabled
remote-fs.target                       enabled
Anh làm bản này hoàn thiện cho em xin nha. Rảnh ngồi test tùm lum cho vui
 

tml3nr

Moderator
Em áp dụng soundset cho bản smpd 0.60GA.
Asset giờ chạy mượt mà với AP rồi anh, control bằng mọi app đều OK.

USB Wifi Broadcom BCM43143 (add wifi/pass vào /etc/wpa_supplicant/wpa_supplicant.conf). Gõ lsusb đã nhìn thấy:
Bus 001 Device 004: ID 0a5c:bd Broadcom Corp.
Em chưa biết cách để nó nhận IP (interfaces).

Mã:
pi@smpd:~ $ systemctl list-unit-files | grep enabled
aprenderer.service                     enabled
asset.service                          enabled
dhcpcd.service                         enabled
fake-hwclock.service                   enabled
hwclock-save.service                   enabled
tidal-connect.service                  enabled
spotify-connect.service                enabled
ssh.service                            enabled
systemd-networkd.service               enabled
systemd-resolved.service               enabled
umountw.service                        enabled
remote-fs.target                       enabled
Em setup wifi Raspberry Pi WLU6331 vào smpd 0.9.6 như sau ạ:

1. Remove "dtoverlay=pi3-disable-wifi" trong config.txt:

2. Remove hết đoạn này trong rc.local (Nó có thể auto start khi cifs mount!!!):

Mã:
udev-finish)
  # RPi3B+
  if [ "`cat /proc/cpuinfo |grep Revision|tail -c7`" = "a020d3" ];then
  echo "hub-ctrl start (RPi3B+)"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 3 -P 2 -p 0; sudo hub-ctrl -b 1 -d 3 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  else
  echo "hub-ctrl start"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 2 -P 5 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  fi

3. Tạo file /boot/wlan0.network:

Mã:
[Match]
Name=wlan0
[Network]
DHCP=both

4.

Mã:
sudo ln -s /boot/wlan0.network /etc/systemd/network/wlan0.network

5. Edit /etc/wpa_supplicant/wpa_supplicant.conf:

Mã:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
  ssid="xxx"
  psk="xxx"
  scan_ssid=1
  priority=5
}

6. Edit /etc/network/interfaces:

Mã:
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#  wireless-txpower 5
  wireless-power off

7. Connect wifi với hotspot:

Mã:
sudo wpa_cli -i wlan0 reconfigure

8. Kiểm tra lại:

Mã:
ip addr show

ifconfig

iwconfig

Vậy là xong ạ.

More info:

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/9

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/21

https://www.symphonic-mpd.com/forum/topic/12/v0-9系のサポートはこちら/122
 
Chỉnh sửa lần cuối:

nghiadalat

Well-Known Member
Em setup wifi Raspberry Pi WLU6331 vào smpd 0.9.6 như sau ạ:

1. Remove "dtoverlay=pi3-disable-wifi" trong config.txt:

2. Remove hết đoạn này trong rc.local (Nó có thể auto start khi cifs mount!!!):

Mã:
udev-finish)
  # RPi3B+
  if [ "`cat /proc/cpuinfo |grep Revision|tail -c7`" = "a020d3" ];then
  echo "hub-ctrl start (RPi3B+)"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 3 -P 2 -p 0; sudo hub-ctrl -b 1 -d 3 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  else
  echo "hub-ctrl start"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 2 -P 5 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  fi

3. Tạo file /boot/wlan0.network:

Mã:
[Match]
Name=wlan0
[Network]
DHCP=both

4.

Mã:
sudo ln -s /boot/wlan0.network /etc/systemd/network/wlan0.network

5. Edit /etc/wpa_supplicant/wpa_supplicant.conf:

Mã:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
  ssid="xxx"
  psk="xxx"
  scan_ssid=1
  priority=5
}

6. Edit /etc/network/interfaces:

Mã:
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#  wireless-txpower 5
  wireless-power off

7. Connect wifi với hotspot:

Mã:
sudo wpa_cli -i wlan0 reconfigure

8. Kiểm tra lại:

Mã:
ip addr show

ifconfig

iwconfig

Vậy là xong ạ.

More info:

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/9

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/21

https://www.symphonic-mpd.com/forum/topic/12/v0-9系のサポートはこちら/122
Lâu lắm rồi mới lôi đám Pi ra mày mò. Thấy cái vụ TC hay quá mà sao rối quá. Có bản OS nào đã tích hợp sẵn anh em vui lòng cho xin một bản. Đa tạ.
 

quatmo

Well-Known Member
Em setup wifi Raspberry Pi WLU6331 vào smpd 0.9.6 như sau ạ:

1. Remove "dtoverlay=pi3-disable-wifi" trong config.txt:

2. Remove hết đoạn này trong rc.local (Nó có thể auto start khi cifs mount!!!):

Mã:
udev-finish)
  # RPi3B+
  if [ "`cat /proc/cpuinfo |grep Revision|tail -c7`" = "a020d3" ];then
  echo "hub-ctrl start (RPi3B+)"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 3 -P 2 -p 0; sudo hub-ctrl -b 1 -d 3 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  else
  echo "hub-ctrl start"
  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0; /bin/sleep 1.4; sudo hub-ctrl -b 1 -d 2 -P 3 -p 0; sudo hub-ctrl -b 1 -d 2 -P 4 -p 0; sudo hub-ctrl -b 1 -d 2 -P 5 -p 0; sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
  fi

3. Tạo file /boot/wlan0.network:

Mã:
[Match]
Name=wlan0
[Network]
DHCP=both

4.

Mã:
sudo ln -s /boot/wlan0.network /etc/systemd/network/wlan0.network

5. Edit /etc/wpa_supplicant/wpa_supplicant.conf:

Mã:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
  ssid="xxx"
  psk="xxx"
  scan_ssid=1
  priority=5
}

6. Edit /etc/network/interfaces:

Mã:
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#  wireless-txpower 5
  wireless-power off

7. Connect wifi với hotspot:

Mã:
sudo wpa_cli -i wlan0 reconfigure

8. Kiểm tra lại:

Mã:
ip addr show

ifconfig

iwconfig

Vậy là xong ạ.

More info:

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/9

https://www.symphonic-mpd.com/forum/topic/7/よくある質問と答え-frequently-asked-questions-and-answer/21

https://www.symphonic-mpd.com/forum/topic/12/v0-9系のサポートはこちら/122

Em làm theo hướng dẫn, 0.96 kết nối Wifi Ok. Thanks anh.
 
Bên trên