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

rndce

Well-Known Member
Bác nói : Nếu muốn nghe nhạc offline thì edit fstab để add nas , e muốn hỏi edit fstab bằng gì notepad hay bằng putty ? Thêm vụ nữa là nếu muốn dùng wireless thay vì dùng LAN thì em phải cofix bằng cách nào ,bác chỉ giúp hộ ,cám ơn bác .
Bác dùng WinSCP nhấp phải chọn Edit rồi sửa lại cũng được (WinSCP chạy trong window).
 

dongmai

New Member
Dễ lắm ạ. Anh làm vài lần sẽ quen thoy :rolleyes:
Em làm theo bác chỉ :
sudo raspi-config

Rồi thêm vào tên wifi, password ở mục Network Options / Wi-Fi
thì không thấy mục Network Options / Wi-Fi ở đâu .

Làm theo cách 2:
network={

ssid="my_wifi"

psk="123456"

### scan_ssid=1

Em sửa my_wifi"với tên mạng ở nhà ,sau đó đánh psk = pw nhà em thì nó không cho dánh số vào .
khổ thiệt , bây giờ tạm dùng LAN vậy nhưng bất tiện vì cable ngắn quá
 

tml3nr

Moderator
Em làm theo bác chỉ :
sudo raspi-config

Rồi thêm vào tên wifi, password ở mục Network Options / Wi-Fi
thì không thấy mục Network Options / Wi-Fi ở đâu .

Làm theo cách 2:
network={

ssid="my_wifi"

psk="123456"

### scan_ssid=1

Em sửa my_wifi"với tên mạng ở nhà ,sau đó đánh psk = pw nhà em thì nó không cho dánh số vào .
khổ thiệt , bây giờ tạm dùng LAN vậy nhưng bất tiện vì cable ngắn quá
Trong putty anh có thể paste vào bằng cách click chuột phải ạ.
 

quatmo

Well-Known Member
Cảm ơn anh rất nhiều. Nó lệ thuộc cái api GG nên hơi khó chịu anh nhỉ.

Ý tưởng dùng nhạc trên cloud của anh rất hay. Em nghĩ là mình có thể thuê host để dùng chung trong một group, hay có thể làm giá trị gia tăng cho một sản phẩm nào đó. Thậm chí có thể cho thuê :D

Mình vẫn sẽ dùng rclone để lấy file qua http hay ftp từ host thuê.

Cách quản lý mình có thể học của Spotify: Hạn chế sessions cho mỗi account. Như vậy ở một thời điểm không thể play cùng lúc trên 2 thiết bị.

Để giải quyết tốc độ scan library mình chỉ cần làm 1 lần mỗi khi có thay đổi nhạc, sau đó update library database xuống các máy khác.

Hoặc là cho library database nằm ở trên internet luôn :D

Cách này chủ yếu là để giải quyết các album không có trên Tidal. Chứ đi một vòng sao giống như mình phát minh lại bánh xe o_O

Ý tưởng dùng cloud nghe nhạc thật ra là ý tưởng của bác @tml3nr đó (trước đây bác nói về nghe bằng kho Fshare của bác) mình chỉ hiện thực nó hướng khác thôi. Sau đó mình viết một plugin Fshare Player cho Volumio nhưng đi khoảng 3/4 mình dừng lại, show cấu trúc file, thư mục vào Volumio rồi, cả play được (tất nhiên còn nhiều việc để hoàn thiện). Nó khả thi nhưng Rclone vẫn thích hơn.

Rclone có https://rclone.org/gui/. Nó là giao diện web dùng để config rclone như: add google api, chọn mount vào follder nào... vấn đề là phải chạy thêm một service (chắc ko nhẹ) để chạy giao diện. Cái này giải quyết bằng cách khi cần mới bật lên dùng, bình thường thì tắt đi. Mình đã test chạy Rclone GUI trên XenomaiPi OK. Dễ dàng đối với hầu hết người dùng, có thể tự add TK GD riêng họ hoặc add GD Team drive nếu dùng chung nguồn lưu trữ. GD cho phép 1000 request/100 giây, nên đáp ứng được cho nhiều người cùng truy xuất.

Rclone hỗ trợ rất nhiều host có cả Webdav, Nextcloud.., vấn đề connect lấy file có nhiều lựa chọn, ngay cả GG drive cũng vậy, có thể add nhiều TK config vô => nhiều nguồn lưu trữ khác nhau. Tối ưu nhất vẫn là dùng host cloud vì tính ổn định, lâu dài và có team drive. Nếu ai đó lo ngại về bảo mật config khi share dùng chung thì rclone có tính năng mã hóa config (đặt pass).

Database của Asset UpnP khi mình scan 11.000 track thì dung lượng file database lên 600MB, 11k con số vẫn khá nhỏ. Mình cho là tốt hơn hết nên để trong local Pi.

Nói thêm: GentooPlayer làm rất tốt các vấn đề config. Có config rất chi tiết bằng command lẫn Web UI (ngon hơn Roopie). Bác nào chạy MiniPC X86/64 thì GentooPlayer support chọn kernel realtime (dùng hoặc không) . GentooPlayer optimize về độ trễ, các bác tham khảo thêm mọi thứ của nó.
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Nó bị như thế nên em không thể fdisk hay làm gì trên thẻ nhớ (thẻ nhớ cắm vào adpter usb to sdcard rồi cắm vào cổng usb của pi). Muốn flash os vào thẻ nhớ cũng không được. :mad:
Em mò disable cái boot from usb xem sao.

Tối qua mình thử test 2 cái USB adapter (micro sdcard) đều nhận Ok, mount bằng udisk, udisk2 trên Xenomai Pi, ghi xóa bình thường.
 

toi511

Well-Known Member
Ý tưởng dùng cloud nghe nhạc thật ra là ý tưởng của bác @tml3nr đó (trước đây bác nói về nghe bằng kho Fshare của bác) mình chỉ hiện thực nó hướng khác thôi. Sau đó mình viết một plugin Fshare Player cho Volumio nhưng đi khoảng 3/4 mình dừng lại, show cấu trúc file, thư mục vào Volumio rồi, cả play được (tất nhiên còn nhiều việc để hoàn thiện). Nó khả thi nhưng Rclone vẫn thích hơn.

Rclone có https://rclone.org/gui/. Nó là giao diện web dùng để config rclone như: add google api, chọn mount vào follder nào... vấn đề là phải chạy thêm một service (chắc ko nhẹ) để chạy giao diện. Cái này giải quyết bằng cách khi cần mới bật lên dùng, bình thường thì tắt đi. Mình đã test chạy Rclone GUI trên XenomaiPi OK. Dễ dàng đối với hầu hết người dùng, có thể tự add TK GD riêng họ hoặc add GD Team drive nếu dùng chung nguồn lưu trữ. GD cho phép 1000 request/100 giây, nên đáp ứng được cho nhiều người cùng truy xuất.

Rclone hỗ trợ rất nhiều host có cả Webdav, Nextcloud.., vấn đề connect lấy file có nhiều lựa chọn, ngay cả GG drive cũng vậy, có thể add nhiều TK config vô => nhiều nguồn lưu trữ khác nhau. Tối ưu nhất vẫn là dùng host cloud vì tính ổn định, lâu dài và có team drive. Nếu ai đó lo ngại về bảo mật config khi share dùng chung thì rclone có tính năng mã hóa config (đặt pass).

Database của Asset UpnP khi mình scan 11.000 track thì dung lượng file database lên 600MB, 11k con số vẫn khá nhỏ. Mình cho là tốt hơn hết nên để trong local Pi.

Nói thêm: GentooPlayer làm rất tốt các vấn đề config. Có config rất chi tiết bằng command lẫn Web UI (ngon hơn Roopie). Bác nào chạy MiniPC X86/64 thì GentooPlayer support chọn kernel realtime (dùng hoặc không) . GentooPlayer optimize về độ trễ, các bác tham khảo thêm mọi thứ của nó.
Em scan xong kho nhac khoảng 1300 album mà sao truy suất chậm quá bác. Nhiều khi bấm vào chờ cả 5 phút k thấy đâu. Có cách nào cải thiện không bác
 

quatmo

Well-Known Member
Em scan xong kho nhac khoảng 1300 album mà sao truy suất chậm quá bác. Nhiều khi bấm vào chờ cả 5 phút k thấy đâu. Có cách nào cải thiện không bác
Trong web setting config của Asset, có tùy chọn thu nhỏ size cover, bác thử chỉnh trong đó.
Trước khi scan mình bấm tùy chọn thu nhỏ 400x400, scan xong duyệt nhanh chóng không bị delay. Không rõ bác bị chậm có phải do vậy hay không.
 

toi511

Well-Known Member
Trong web setting config của Asset, có tùy chọn thu nhỏ size cover, bác thử chỉnh trong đó.
Trước khi scan mình bấm tùy chọn thu nhỏ 400x400, scan xong duyệt nhanh chóng không bị delay. Không rõ bác bị chậm có phải do vậy hay không.
Cảm ơn bác. Lỡ scan rồi giờ mình làm lại hả bác
 

Thanhvo31

Well-Known Member
@quatmo
GP nhiều món ăn chơi, nhưng thiếu mấy em hót gơ: Tidal với AssetUPnp.
Mã:
 _____            _              _____  _                      
/ ____|          | |            |  __ \| |                     
| |  __  ___ _ __ | |_ ___   ___ | |__) | | __ _ _   _  ___ _ __
| | |_ |/ _ \ '_ \| __/ _ \ / _ \|  ___/| |/ _` | | | |/ _ \ '__|
| |__| |  __/ | | | || (_) | (_) | |    | | (_| | |_| |  __/ |  
\_____|\___|_| |_|\__\___/ \___/|_|    |_|\__,_|\__, |\___|_|  
                                                  __/ |         
                                                 |___/          
Profile:     Profile not Setting
RamSystem:   Ramsystem not enabled
Free memory: 3718MB of total 3857MB

Kernel:   4.19.106-GentooPlayer-ST+
───────────────────────────────────────
GentooPlayer   | 16:30 | mer 22/07/2020
───────────────────────────────────────
v2.15      | Raspberry Pi 4B+ (aarch64)
───────────────────────────────────────
eth0       | 192.168.11.187
───────────────────────────────────────

Players Info:
Squeezelite-R2          [Disabled]
Squeezelite             [Disabled]
Networkaudiod           [Disabled]
LigitechMediaServer     [Disabled]
BubbleUpnp              [Disabled]
HQPlayer Embedded       [Disabled]
Mpd                     [Disabled]
UpMpdCli                [Disabled]
RoonBridge              [Disabled]
RoonServer              [Disabled]
Mpd-Sima                [Disabled]
MYmpd                   [Disabled]
minimserver             [Disabled]
shairport-sync          [Disabled]
spotifyd                [Enabled]
 

rndce

Well-Known Member
@quatmo
GP nhiều món ăn chơi, nhưng thiếu mấy em hót gơ: Tidal với AssetUPnp.
Mã:
 _____            _              _____  _                     
/ ____|          | |            |  __ \| |                    
| |  __  ___ _ __ | |_ ___   ___ | |__) | | __ _ _   _  ___ _ __
| | |_ |/ _ \ '_ \| __/ _ \ / _ \|  ___/| |/ _` | | | |/ _ \ '__|
| |__| |  __/ | | | || (_) | (_) | |    | | (_| | |_| |  __/ | 
\_____|\___|_| |_|\__\___/ \___/|_|    |_|\__,_|\__, |\___|_| 
                                                  __/ |        
                                                 |___/         
Profile:     Profile not Setting
RamSystem:   Ramsystem not enabled
Free memory: 3718MB of total 3857MB

Kernel:   4.19.106-GentooPlayer-ST+
───────────────────────────────────────
GentooPlayer   | 16:30 | mer 22/07/2020
───────────────────────────────────────
v2.15      | Raspberry Pi 4B+ (aarch64)
───────────────────────────────────────
eth0       | 192.168.11.187
───────────────────────────────────────

Players Info:
Squeezelite-R2          [Disabled]
Squeezelite             [Disabled]
Networkaudiod           [Disabled]
LigitechMediaServer     [Disabled]
BubbleUpnp              [Disabled]
HQPlayer Embedded       [Disabled]
Mpd                     [Disabled]
UpMpdCli                [Disabled]
RoonBridge              [Disabled]
RoonServer              [Disabled]
Mpd-Sima                [Disabled]
MYmpd                   [Disabled]
minimserver             [Disabled]
shairport-sync          [Disabled]
spotifyd                [Enabled]
OS cho Pi ngày càng nhiều.
 

pinochu

New Member
em cài bản 1.3 xenomai của bác TuanQuynh, mount NAS xong rồi cho nó scan, được 1 lát lại crash luôn thì phải, không ping thấy con pi nữa, phải reboot lại, không biết có bác nào lỗi giống em không.,
 

quatmo

Well-Known Member
@quatmo
GP nhiều món ăn chơi, nhưng thiếu mấy em hót gơ: Tidal với AssetUPnp.
Mã:
 _____            _              _____  _                   
/ ____|          | |            |  __ \| |                  
| |  __  ___ _ __ | |_ ___   ___ | |__) | | __ _ _   _  ___ _ __
| | |_ |/ _ \ '_ \| __/ _ \ / _ \|  ___/| |/ _` | | | |/ _ \ '__|
| |__| |  __/ | | | || (_) | (_) | |    | | (_| | |_| |  __/ |
\_____|\___|_| |_|\__\___/ \___/|_|    |_|\__,_|\__, |\___|_|
                                                  __/ |      
                                                 |___/       
Profile:     Profile not Setting
RamSystem:   Ramsystem not enabled
Free memory: 3718MB of total 3857MB

Kernel:   4.19.106-GentooPlayer-ST+
───────────────────────────────────────
GentooPlayer   | 16:30 | mer 22/07/2020
───────────────────────────────────────
v2.15      | Raspberry Pi 4B+ (aarch64)
───────────────────────────────────────
eth0       | 192.168.11.187
───────────────────────────────────────

Players Info:
Squeezelite-R2          [Disabled]
Squeezelite             [Disabled]
Networkaudiod           [Disabled]
LigitechMediaServer     [Disabled]
BubbleUpnp              [Disabled]
HQPlayer Embedded       [Disabled]
Mpd                     [Disabled]
UpMpdCli                [Disabled]
RoonBridge              [Disabled]
RoonServer              [Disabled]
Mpd-Sima                [Disabled]
MYmpd                   [Disabled]
minimserver             [Disabled]
shairport-sync          [Disabled]
spotifyd                [Enabled]

GentooPlayer có tùy chọn chạy Real-time và RamSystem (chạy hoàn toàn trên RAM) cho Pi, mình download bản mới về cài Asset thử xem.
Tidal chân dài (Openhome) + Xenomail các bác có thể build thêm 1 bản nữa trên Archphile bản cũ (Linux 4.14 thì phải).

PS: Rclone chưa có đầy đủ cho Linux Geetoo (một nhánh Linux khác).
 
Chỉnh sửa lần cuối:

Thanhvo31

Well-Known Member
Hôm nay gắn được Gsuite "vô cực" lên NAS XPEnology bằng RCLONE + SynoCli Disk Tools (thay cho Fuse) , đã quá
Mời ạnh em có NAS thì gắn ngay ạ
Link
https://plextips.plexed.co.uk/rclone/rclone-on-synology/
Đang định mua thêm ổ cứng mà tình hình này tạm hoãn ạ,
không biết pỏn với jav bôt lên có toi mất Gsuite không a?:p

Edit: với đường truyền 100Mbps của Vitteo, em play phim bằng PLEX + nghe nhạc 24/96 cùng lúc ngon lành ạ.
Chỉ không biết lúc nào account bị toi thôi.
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Hôm nay gắn được Gsuite "vô cực" lên NAS XPEnology bằng RCLONE + SynoCli Disk Tools (thay cho Fuse) , đã quá
Mời ạnh em có NAS thì gắn ngay ạ
Link
https://plextips.plexed.co.uk/rclone/rclone-on-synology/
Đang định mua thêm ổ cứng mà tình hình này tạm hoãn ạ,
không biết pỏn với jav bôt lên có toi mất Gsuite không a?:p

Edit: với đường truyền 100Mbps của Vitteo, em play phim bằng PLEX + nghe nhạc 24/96 cùng lúc ngon lành ạ.
Chỉ không biết lúc nào account bị toi thôi.
Ngon! NAS giờ đáng giá hơn rồi, bác có file cài đặt hệ điều hành của NAS (cùng loại cới bác Phước), share giùm mình, mình cài lại thay thế cho Windows.
 

binna

Well-Known Member
Hôm nay gắn được Gsuite "vô cực" lên NAS XPEnology bằng RCLONE + SynoCli Disk Tools (thay cho Fuse) , đã quá
Mời ạnh em có NAS thì gắn ngay ạ
Link
https://plextips.plexed.co.uk/rclone/rclone-on-synology/
Đang định mua thêm ổ cứng mà tình hình này tạm hoãn ạ,
không biết pỏn với jav bôt lên có toi mất Gsuite không a?:p

Edit: với đường truyền 100Mbps của Vitteo, em play phim bằng PLEX + nghe nhạc 24/96 cùng lúc ngon lành ạ.
Chỉ không biết lúc nào account bị toi thôi.
em có NAS này, nhưng đọc cái link đó hoa mắt luôn, thua......
 

tml3nr

Moderator
em cài bản 1.3 xenomai của bác TuanQuynh, mount NAS xong rồi cho nó scan, được 1 lát lại crash luôn thì phải, không ping thấy con pi nữa, phải reboot lại, không biết có bác nào lỗi giống em không.,

Pi 2 xenomai cũng bị nếu gắn NAS nặng vài chục GB.
Để nghe Tidal thì ổn.

Em cài asset scan khoảng 20 phút thì ngủm, tắt đi mở lại. Tầm 5 làn thì ok.:D:D:D:D

Các anh thử dùm em các bước sau ạ:

- Fix cpu frequency cố định ở khoảng 2/3 của range dao động. Theo em thấy khi set cpu ở ngưỡng này cho âm thanh hay nhất. Và chạy rất smooth.

pri-frequency.png

edit/boot/config.txt

Mã:
# Recommend for rpi2: (600 - 900MHz)
force_turbo=1
boot_delay=1
arm_freq=800

# Recommend for rpi3: (600 - 1200MHz)
force_turbo=1
boot_delay=1
arm_freq=900

# Recommend for rpi3 B+ (600 - 1400MHz)
force_turbo=1
boot_delay=1
arm_freq=1200

- Thay đổi tham số mount. vers=x tùy theo version của SMB:

Mã:
//x.x.x.x/Music /mnt/NAS cifs ro,noauto,x-systemd.automount,sec=ntlm,vers=1.0,cache=none,iocharset=utf8,username=xxx,password=xxx

PS: Em đang mò để chôm cái script lấy tham số mount của smb. Chạy rất hay:

Mã:
#!/bin/bash

mpc stop
umount /var/lib/mpd/music/NAS

LOG=/var/lib/mpd/music/RAM/.nas_setting.log

# work dir
dst=/tmp/cifsdst
mkdir $dst

# detect protocol
user=`echo $2 | tr -d " "`
pass=`echo $3 | tr -d " "`
opt="cache=none,iocharset=utf8,username=$user,password=$pass"

echo "updating fstab start!!" > $LOG

hst=`echo $1 | sed -E 's/^\/\/([^/]+).+/\1/g'`

echo " Checking ping reply to ${hst}" >> $LOG

/bin/ping -c 1 -W 1 ${hst} > /dev/null
if [ ! $? = 0 ]; then
  echo "  !!!${hst} has not reply via ipv4" >> $LOG
  echo "  Checking via ipv6" >> $LOG
  /bin/ping6 -c 1 -W 1 ${hst} > /dev/null
  if [ ! $? = 0 ]; then
  echo "  !!!${hst} has not reply via ipv6" >> $LOG
  echo "!!!Aborting the process!!!" >> $LOG
  echo "check succeeded" >> $LOG
  exit 1
  fi
fi
echo "" >> $LOG

echo " Checking cifs security mode and protocol version" >> $LOG
exopt=""
declare -a aver=("1.0" "2.0" "2.1" "3.0")
for e in ${aver[@]}; do
  mount -t cifs $1 $dst -o $opt,sec=ntlm,vers=${e} >/dev/null 2>&1
  if [ $? = 0 ]; then
  exopt=sec\=ntlm,vers\=${e}
  umount $dst
  fi

  mount -t cifs $1 $dst -o $opt,sec=ntlmssp,vers=${e} >/dev/null 2>&1
  if [ $? = 0 ]; then
  exopt=sec\=ntlmssp,vers\=${e}
  umount $dst
  fi
done

if [ "$exopt" = "" ]; then
  echo "  !!!Can not resolve the security mode or protocol version." >> $LOG
  echo "  Aborting the process!!!" >> $LOG
  echo "  check succeeded" >> $LOG
  rmdir $dst
  exit 1
fi

echo "  security mode and protocol version: $exopt" >> $LOG
exopt=,$exopt

sync

# detect best rsize prepare
declare -a arsize=("7300" "16060" "32120" "61320" "129940")

fioconf=/home/pi/misc/fio.conf
testfile=
bestrsize=
bestbw=0
bestctx=1000000

declare -a arsize2=()
declare -a abw=()
declare -a alatency=()
declare -a actx=()
declare -a amajf=()
declare -a aminf=()

mount -t cifs $1 $dst -o $opt,$exopt,wsize=4096 >/dev/null 2>&1
dd of=$dst/rsize_test_dummy bs=4k count=0 seek=2500
sync

umount $dst

echo "" >> $LOG
echo " Checking best rsize" >> $LOG
echo "" >> $LOG
echo "  rsize  BW  CTX  latency" >> $LOG
for e in ${arsize[@]}; do
  mount -t cifs $1 $dst -o ro,$opt,$exopt,rsize=${e} >/dev/null 2>&1

  # fio start
  out=`fio --readonly -filename="$dst/rsize_test_dummy" --output-format=terse $fioconf | cut -d';' -f7,8,16,90,91,92`

  #echo "RSIZE ${e}:$out" >> $LOG

  # detect best rsize
  bw=`echo $out|cut -d';' -f1`
  latency=`echo $out|cut -d';' -f3|cut -d'.' -f1`
  ctx=`echo $out|cut -d';' -f4`
  majf=`echo $out|cut -d';' -f5`
  minf=`echo $out|cut -d';' -f6`

  arsize2+=( ${e} )
  abw+=( $bw )
  alatency+=( $latency )
  actx+=( $ctx )
  amajf+=( $majf )
  aminf+=( $minf )

  printf "%7d %8d %6d %8d\n" ${e} $bw $ctx $latency >> $LOG

  if [ $bw -gt $bestbw ];then
  bestbw=$bw
  bestrsize=${e}
  fi
  sudo umount $dst
done

i=0
#echo "rsize  bw  lat  ctx  majf  minf" >> $LOG
for e in ${arsize2[@]}; do
  count=0
  for ((ibw = 0; ibw < ${#abw[@]}; ibw++)){
  if [ ${abw[i]} -lt ${abw[ibw]} ];then
  let count++
  fi
  }
  if [ $count -lt 3 ];then
  count=0
  for ((ilat = 0; ilat < ${#alatency[@]}; ilat++)){
  if [ ${alatency[i]} -gt ${alatency[ilat]} ];then
  let count++
  fi
  }
  if [ $count -lt 3 ];then
  count=0
  for ((ictx = 0; ictx < ${#actx[@]}; ictx++)){
  if [ ${actx[i]} -gt ${actx[ictx]} ];then
  let count++
  fi
  }
  if [ $count -lt 3 ];then
  if [ "$bestbw" = "" ];then
  bestctx=${actx[i]}
  bestbw=${abw[i]}
  bestrsize=",rsize=${e}"
  elif [ ${actx[i]} -lt $bestctx ];then
  bestctx=${actx[i]}
  bestbw=${abw[i]}
  bestrsize=",rsize=${e}"
  fi
  fi
  fi
  fi
  #echo "${e} ${abw[i]} ${alatency[i]} ${actx[i]} ${amajf[i]} ${aminf[i]}" >> $LOG
  let i++
done

# clean up
mount -t cifs $1 $dst -o $opt,$exopt,rsize=4096 >/dev/null 2>&1
rm "$dst/rsize_test_dummy"
umount $dst
rmdir $dst

# edit fstab
target=/etc/fstab
nas="$1 /var/lib/mpd/music/NAS cifs ro,noauto,x-systemd.automount$exopt$bestrsize,$opt"

echo "" >> $LOG
echo "  best bandwidth : $bestbw kB/sec" >> $LOG
echo "" >> $LOG
echo "  fstab setting  : $nas" >> $LOG

sed -i.bak -e "/# NAS Setting/{n;d}" $target
sed -i -e "/# NAS Setting/a $nas" $target
sync

echo " Restarting mpd and mounting NAS with new setting" >> $LOG

systemctl stop mpd
systemctl daemon-reload
mount -a
systemctl start mpd

mountpoint /var/lib/mpd/music/NAS
ret=$?
echo "" >> $LOG
echo "NAS setting succeeded" >> $LOG

sleep 2
rm $LOG

exit $ret
 
Chỉnh sửa lần cuối:
Bên trên