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

linh0983

Well-Known Member
Khi nào anh oder thì oder giúp em 1 relock, 1 fifo v3 và 1 reciver pi giúp em nha
Nó là như vầy bác ạ . ( ReClockPi úp lên FifoPiQ3 ) . :eek:
https://www.diyaudio.com/forums/dig...mate-weapon-fight-jitter-627.html#post6624164

FGUYkl.jpg
 

tml3nr

Moderator
... BubbleUPNP control Asset bị vấp không ra tiếng, bấm next vài lần mới Ok.
Em thử lùi xuống bản Asset UPnP R7.0 beta 5 thì chạy cực ngon luôn. Không hề vấp trên mọi OS, mọi settings. Có vẻ như bản R7.2 hơi kén file:

https://forum.dbpoweramp.com/showthread.php?45660-Asset-R7-for-Mac-amp-Linux

Anh @quatmo và anh @linh0983 có lấy được bản ARM R7.1 trial không ạ? Cho em xin với. Em chỉ có 7.0 và 7.2
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member

TuanQuynhAudio

Well-Known Member

TuanQuynhAudio

Well-Known Member
Để fix vụ cover bé tí 160x160 của minidlna. Các bước như sau. Tút này em chạy trên pi4 v1.1 / Buster lite 5.4.83 (2021-01-11).

Mã:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

pi@raspberrypi:~ $ cat /proc/cpuinfo | grep Model
Model  : Raspberry Pi 4 Model B Rev 1.1

pi@raspberrypi:~ $ cat /proc/meminfo | grep Mem
MemTotal:  3919796 kB
MemFree:  2849096 kB
MemAvailable:  3645708 kB

1. Uninstall minidlna nếu đã install trước đó:

Mã:
sudo apt-get purge minidlna -y
sudo apt-get remove minidlna
sudo apt-get autoremove -y

2. Download 2 file này về pi. Mặc nhiên là /home/pi

minidlna-1.2.1.tar.gz

Mã:
wget https://sourceforge.net/projects/minidlna/files/minidlna/1.2.1/minidlna-1.2.1.tar.gz

Mirror:

wget "https://drive.google.com/uc?export=download&id=1CxkYoMsSuANV9Ye1L-9FTNIjPr1-omys" -O minidlna-1.2.1.tar.gz

minidlna-1.2.1-cover-resize.patch

Mã:
wget https://gist.github.com/grigorye/d30bbed518226e44a18eec75f6f6159e/raw/78a5e3261cc6c88bbf901cd1adac26ec6b2f978b/minidlna-1.2.1-cover-resize.patch

Mirror:

wget "https://drive.google.com/uc?export=download&id=1LPz61FHqi1XcNQtPJfVooi3euqJUK-im" -O minidlna-1.2.1-cover-resize.patch

3. Chạy các lệnh sau:

Mã:
sudo apt-get update

sudo apt-get install build-essential autopoint debhelper dh-autoreconf gcc libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libflac-dev -y

tar -zxvf minidlna-1.2.1.tar.gz
cd minidlna-1.2.1

cp /home/pi/minidlna-1.2.1-cover-resize.patch ./

patch -p1 < minidlna-1.2.1-cover-resize.patch

./configure
make
sudo make install
sudo cp ./minidlna.conf /etc/

sudo cp linux/minidlna.init.d.script /etc/init.d/minidlna
sudo chmod +x /etc/init.d/minidlna
sudo update-rc.d minidlna defaults
sudo mkdir /var/cache/minidlna

4. Edit file /etc/minidlna.conf như sau. /mnt/NAS là nơi chứa nhạc:

Mã:
media_dir=A,/mnt/NAS
resize_covers=no
friendly_name=minidlna
db_dir=/var/cache/minidlna
log_dir=/var/log
log_level=no
inotify=yes
root_container=M
wide_links=yes

5. Start và stop service:

Mã:
sudo service minidlna stop

sudo service minidlna start

Cập nhật library - forces a rescan:

Mã:
sudo /usr/local/sbin/minidlnad -r

Cập nhật full library - forces a rebuild:

Mã:
sudo /usr/local/sbin/minidlnad -R

6. Test:

Mã:
pi@raspberrypi:~ $ /usr/local/sbin/minidlnad -V
Version 1.2.1

Mã:
pi@raspberrypi:~ $ service minidlna status
● minidlna.service - LSB: DLNA/UPnP-AV media server
  Loaded: loaded (/etc/init.d/minidlna; generated)
  Active: active (running) since Thu 2021-02-11 08:51:25 +07; 3min 30s ago
  Docs: man:systemd-sysv-generator(8)
  Process: 573 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)
  Tasks: 3 (limit: 4915)
  CGroup: /system.slice/minidlna.service
  ├─590 /usr/local/sbin/minidlnad -f /etc/minidlna.conf
  └─621 /usr/local/sbin/minidlnad -f /etc/minidlna.conf

Feb 11 08:51:24 raspberrypi systemd[1]: Starting LSB: DLNA/UPnP-AV media server...
Feb 11 08:51:25 raspberrypi minidlna[573]: Starting minidlna: minidlna.
Feb 11 08:51:25 raspberrypi systemd[1]: Started LSB: DLNA/UPnP-AV media server.

Mã:
http://your_ip:8200/

7. Edit file /etc/sysctl.conf thêm vào phía dưới:

Mã:
fs.inotify.max_user_watches = 65536

Mã:
sudo reboot

Vậy là xong ạ!

Lưu ý:

@@@ Ở bước 2. Nếu thích mình có thể patch thêm 2 cái nữa:

- minidlna-1.2.1-add-support-dsd.patch | Support DSD

Mã:
wget "https://drive.google.com/uc?export=download&id=1zO1NrOjxiCmtOTvgYceyVskX1mXwzrt8" -O minidlna-1.2.1-add-support-dsd.patch

- favicon-support-v1.2.1.patch | Fix lỗi requests favicon.ico 404 error (Không quan trọng lắm)

Mã:
wget "https://drive.google.com/uc?export=download&id=1M-oOJJ2mvaZQ_e3lbk_axclHMy0ZUwoV" -O favicon-support-v1.2.1.patch

Cần chạy thêm 2 lệnh này ở bước 3:

Mã:
patch -p1 < minidlna-1.2.1-add-support-dsd.patch

patch -p1 < favicon-support-v1.2.1.patch

@@@ Cách bên trên tạo service theo kiểu cũ init.d. Nếu thích mình có thể cho nó chạy theo cách systemd minidlna.service. Em sẽ test sau ạ.

More info: Service init.d scripts vs /etc/systemd/system vs /usr/lib/systemd/system

Trước và sau khi fix covers:

More info:

http://m.blog.naver.com/parkmino45/221099945434

https://github.com/ywhs/linux-software/releases/tag/1.2.1

https://octroom.exblog.jp/21092409/

https://melgrubb.com/2016/12/11/rphs-v2-minidlna/

https://sourceforge.net/p/minidlna/patches/152/


Em chạy "make" mà dính lỗi này.
Mã:
/usr/bin/ld: cannot find -lgcc_s
 

tml3nr

Moderator

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?
 
Bên trên