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

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:

Thanhvo31

Well-Known Member
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.

Mình đang định cài lên Router chạy Openwrt nữa là hết thuốc, khỏi NAS, không biết CPU yếu thì có bị lag không nữa?

Của mình là NEC5800
Các file cài đây bác tham khảo
https://drive.google.com/drive/folders/1xhsy93abCT5w74NI96hFbJTuYf5F-IY8?usp=sharing
https://xpenology.org/
em có NAS này, nhưng đọc cái link đó hoa mắt luôn, thua......
Nếu sẵn teamview mình thử xem
 

toi511

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.
auto mount k bác, khởi động lại nas thì sao bác nhỉ
 

quatmo

Well-Known Member
Mình đang định cài lên Router chạy Openwrt nữa là hết thuốc, khỏi NAS, không biết CPU yếu thì có bị lag không nữa?

Của mình là NEC5800
Các file cài đây bác tham khảo
https://drive.google.com/drive/folders/1xhsy93abCT5w74NI96hFbJTuYf5F-IY8?usp=sharing
https://xpenology.org/

Nếu sẵn teamview mình thử xem
Bác check CPU trước khi cài lên Openwrt xong check CPU nó chạy lúc đang duyệt thư mục rồi so sánh.

Mình xài router Netgear chạy Openwrt, bắt chước bác cài thử.

Mình nhầm: Android box mới chạy Openwrt, còn Router chạy DD-wrt
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Cài đặt AssetUPnP trên GentooPlayer

DOWNLOAD
wget https://www.dbpoweramp.com/install/Asset-RaspberryPi.tar.gz
tar xf Asset-RaspberryPi.tar.gz

SETUP
cd Asset-R6.6-Linux-ARM32-trial
chmod -R 777 ./INSTALL.sh
./INSTALL.sh



TẠO FILE BOOT
nano /etc/init.d/assetupnp
Copy pate 5 dòng bên dưới vào và save lại:

#!/sbin/openrc-run
logfile="/var/log/assetupnp.log"
pidfile="/run/assetupnp.pid"
command=/root/bin/AssetUPnP/AssetUPnP
command_background=yes


Chạy tiếp:
chmod -R 777 /etc/init.d/assetupnp
rc-update add assetupnp default
/etc/init.d/assetupnp restart


DONE!
Reboot và vào kiểm tra AssetUpNP: IP:45537
GentooPlayer chạy ở port IP:5000
 

rndce

Well-Known Member
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.

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,username=xxx,password=xxx,rsize=32120,cache=none,iocharset=utf8

//x.x.x.x/Music /mnt/NAS cifs vers=1.0,user=xxx,password=xxx,x-systemd.automount 0 0

PS: Em đang mò để chôm cái script lấy tham số mount của smb. Thấ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
Các tham số của mount cifs nằm ở đây:
https://www.samba.org/~ab/output/htmldocs/manpages-3/mount.cifs.8.html
Nếu có nhiều tùy chọn thì chúng được phân cách bởi dấu phẩy. Dưới đây là 1 số tùy chọn đáng chú ý:

  • auto: tự động mount thiết bị khi máy tính khởi động.
  • noauto: không tự động mount, nếu muốn sử dụng thiết bị thì sau khi khởi động vào hệ thống bạn cần chạy lệnh mount.
  • user: cho phép người dùng thông thường được quyền mount.
  • nouser: chỉ có người dùng root mới có quyền mount.
  • exec: cho phép chạy các file nhị phân (binary) trên thiết bị.
  • noexec: không cho phép chạy các file binary trên thiết bị.
  • ro (read-only): chỉ cho phép quyền đọc trên thiết bị.
  • rw (read-write): cho phép quyền đọc/ghi trên thiết bị.
  • sync: thao tác nhập xuất (I/O) trên filesystem được đồng bộ hóa.
  • async: thao tác nhập xuất (I/O) trên filesystem diễn ra không đồng bộ.
  • defaults: tương đương với tập các tùy chọn rw, suid, dev, exec, auto, nouser, async
 

Thanhvo31

Well-Known Member
auto mount k bác, khởi động lại nas thì sao bác nhỉ

Mount khi khởi động NAS như sau:

Tạo 1 file bash có nội dung như sau:

Mã:
#!/bin/ash

/usr/bin/rclone --config /var/services/homes/admin/.config/rclone/rclone.conf mount -v YOURDRIVE : /volume1/homes/admin/YOUR MOUNT POINT --allow-other --dir-cache-time 672h --vfs-cache-max-age 675h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --buffer-size 32M &

Đặt tên là 'mountGD.sh' chẳng hạn
Chép file vào chỗ nào dễ tìm, tôi chép vào /volume1/homes/admin/mountGD.sh

SSH vào NAS (admin/yourpass)
Cấp quyền cho file
$ sudo chmod +x /volume1/homes/admin/mountGD.sh

Từ đây chạy script thử xem mount ổ thành công chưa.

Thoát khỏi shell

Vào giao diện web của NAS

Truy cập Control Panel > Task Scheduler > Nút Create > Trigger Task > User defined script >
Thẻ General Setting
Task name : Tùy chọn, VD MOUNT_GG
User : admin
Event : Boot-up
Sang thẻ Task setting
Hộp User defined script
bash /volume1/homes/admin/mountGD.sh

Chọn OK.

Thử restart lại NAS, lúc này GG sẽ lên tại điểm MOUNT POINT ngay.

ENJOY !!!

PS: chú ý là phải khai thêm tham số
--config /var/services/homes/admin/.config/rclone/rclone.conf

Phần chữ đỏ lấy từ $ rclone config file

Với vụ Rclone - Gsuite - NAS - Rooncore kết hợp trên 1 PC này là có bộ phát nhạc khá ngon mà không tốn nhiều xèng mua HDD (đã test chạy ngọt ngào tới 24/96kHz)
Test tiếp DSD và báo cáo a
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Các tham số của mount cifs nằm ở đây:
https://www.samba.org/~ab/output/htmldocs/manpages-3/mount.cifs.8.html
Nếu có nhiều tùy chọn thì chúng được phân cách bởi dấu phẩy. Dưới đây là 1 số tùy chọn đáng chú ý:

  • auto: tự động mount thiết bị khi máy tính khởi động.
  • noauto: không tự động mount, nếu muốn sử dụng thiết bị thì sau khi khởi động vào hệ thống bạn cần chạy lệnh mount.
  • user: cho phép người dùng thông thường được quyền mount.
  • nouser: chỉ có người dùng root mới có quyền mount.
  • exec: cho phép chạy các file nhị phân (binary) trên thiết bị.
  • noexec: không cho phép chạy các file binary trên thiết bị.
  • ro (read-only): chỉ cho phép quyền đọc trên thiết bị.
  • rw (read-write): cho phép quyền đọc/ghi trên thiết bị.
  • sync: thao tác nhập xuất (I/O) trên filesystem được đồng bộ hóa.
  • async: thao tác nhập xuất (I/O) trên filesystem diễn ra không đồng bộ.
  • defaults: tương đương với tập các tùy chọn rw, suid, dev, exec, auto, nouser, async
Cảm ơn anh. Vậy mình tạm cho là tham số sau tương đối an toàn và dễ chịu với nhiều OS:

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

Tùy theo version SMB / NAS mà các tham số sau có thể thay đổi:

vers=1.0 / vers=2.0 / vers=2.1 / vers=3.0

sec=ntlm / sec=ntlmssp
 
Bên trên