[爆卦]樹莓派應用實例是什麼?優點缺點精華區懶人包

為什麼這篇樹莓派應用實例鄉民發文收入到精華區:因為在樹莓派應用實例這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pcjustin (駱駝)看板Headphone標題[心得] 玩轉樹莓派數播(一) - Mood...


主要就把以前巴哈寫得文轉過來
剛好最近把壞掉的圖補完且重新潤一下文章
十多年沒用過ptt po文,
我只好當成用markdown寫公司文件了
---
0x01 前言

此篇主要是講 Moode、Roon 和 UPNP播放。

0x02 何謂樹莓派

首先你要一塊樹莓派,目前出到 Raspberry pi 4,
主要就速度更快,記憶體更大,
由於我有其他需求,所以我直接買頂規 Raspberry pi 4 8G ram版。

https://i.imgur.com/TcNuRzH.jpg

樹莓派簡單說就是台便宜小電腦,
跟你用電腦播音樂或是用台電腦裝 Daphile 一樣。
但樹莓派簡單的電路設計,
可以讓各種干擾減少到最小。
當然還是無法跟專業數播相比,
專業數播不只是它系統有多強大,
而是它硬體電路有做各種優化和保護,
不然賣你這麼貴要幹嘛。
然後就是因為樹莓派本身沒有內建硬碟,更專業說法是沒有內建 eMMC 或 Flash,
所以你要買片 micro SD卡給它用,這時有兩種玩法,
之後會慢慢提到,建議先從 micro SD 卡入門,熟悉後再用我最終玩法。

0x03 安裝Moode

這段我就不廢話,快速帶過,
我主要推薦安裝 Moode 系統,

https://moodeaudio.org/

主要是它沒有大改樹莓派系統,介面設計操作簡單方便,
驅動支援多,維護者更新快,在論壇上回覆更快。

最簡單的安裝系統方法是使用 belenaEther 燒錄 Moode 映像檔,

https://www.balena.io/etcher/

燒錄完後放進樹莓派 SD 槽插上網線,
上電就可以連上你家網路,
你就可以用你電腦或手機控制它。

0x04 如何設定 Moode 系統

先在你電腦或手機使用 http://moode.local 登入系統,
右上角點 m 選 Configure

https://i.imgur.com/VLoK8c2.png

然後選 System,我們先設定比較麻煩的

https://i.imgur.com/ArklQIj.png

請選台北和按SET,謝謝,雖然根本不影響功能和聲音。

https://i.imgur.com/iXWjImI.png

先關閉這兩個,以後要確定系統有沒有開完,
只要看兩個 LED 燈有沒有熄滅就知道了

https://i.imgur.com/bQfivyv.png

先把CPU調到最高效能。

https://i.imgur.com/gvFjXHg.png

這個 32bit 和 64bit 都可以,為什麼要用64bit,因為我爽。
但記得上面有寫 64bit只支援 Pi-4, Pi-3, Pi-2B 1.2版本以上,

https://i.imgur.com/zd8Mp3K.png

這個設定完,會叫你要重開機,如下方法重開機即可。
按 Power,再按RESTART即可。

https://i.imgur.com/RDezbt4.png

https://i.imgur.com/PvY52kr.png

然後把以下設定成我這樣,把所有可能干擾的來源都關掉,
WiFi、BT 和 HDMI 關閉記得也要重開機,只要它有提醒你的話。

https://i.imgur.com/spIrTIH.png

然後設定 DAC,選 Configure -> Audio

https://i.imgur.com/QEOe8wy.png

如果你選擇用USB接DAC,
請到 MPD Settings 選 EDIT

https://i.imgur.com/6XmAchD.png

在這應該會找到你的 DAC 名字,例如我的DAC叫TT2。

https://i.imgur.com/9CPDJ4T.png

把 Moode 系統軟體音量關閉,以後都由你 DAC 或 AMP 調音量

https://i.imgur.com/eiUKZNP.png

這種要看你板子記憶體,我是全設定到上限,
主要看 Input Cache,
它會在播放前把音檔放在記憶體緩存,
這可以提升音質,也是很多播放軟體提升音質的方式之一。

https://i.imgur.com/kXmBEW8.png

然後按下SAVE

https://i.imgur.com/9OFt1rc.png

回到上一層Audio設定,
7.3.0 支援跳過ALSA轉換,建議選擇 Direct(hw)

https://i.imgur.com/wTSOb91.png

如果你有 iPhone 或 MacBook 或 iPad,肯定需要開啟 Airplay 功能,
你就可以用樹莓派播放音樂或 YouTube

https://i.imgur.com/bFJgZVF.png

如果你有買 Spotify 帳號,就可以用這個功能,因為付費版支援 Spotify Connect,就
可以用手機或電腦 Spotify 軟體找到 Moode Spotify

https://i.imgur.com/cMJHlX6.png

然後 Spotify 要設定一下,才可以把音質提升,按下EDIT,設定完按下SAVE。

https://i.imgur.com/nWEGAF5.png

如果你播放軟體支援 UPnP 播放,可以使用這功能,像我有買 Audirvana,
我就可以把音檔放在我電腦,然後一樣使用我習慣的播放軟體,
但透過 UPnP 傳送到樹莓派播放音樂。

https://i.imgur.com/A1lVNjD.png

0x05 深度優化

我的優化方法不會影響到 Moode 系統升級,
當有新版本發佈,你一樣可以按下系統更新,
升級完也不會影響到我們的設定。
先開啟 ssh 登入

https://i.imgur.com/ArklQIj.png

按ON和SET。

https://i.imgur.com/vJuOHgs.png

按 OPEN Web SSH terminal
login 輸入 pi,Password 輸入 moodeaudio
應該就會看到這種很酷(復古)的東西

https://i.imgur.com/sHohsKg.png

先教大家如何看 CPU 當前溫度吧
輸入 moodeutl -m
可以看到系統各種資訊,按 Ctrl + C 可以結束顯示

https://i.imgur.com/vbDy0vG.png

我們來把 USB 孔電源關掉吧,為什麼要做這件事,
因為多隻香爐多隻鬼,把沒用到的孔電關閉,可以減少干擾,
對聲音有正面幫助。
輸入 git clone https://github.com/mvp/uhubctl.git
我知道打這一長串太累了,
你可以選擇複製貼上,方法如下,
按下右鍵,

https://i.imgur.com/xv5SDn3.png

https://i.imgur.com/e3jKaGL.png

這時會看到多出一個資料夾

https://i.imgur.com/I5WUcha.png

先安裝一些編譯需要用的套件
輸入 sudo apt install -y libusb-1.0-0-dev

https://i.imgur.com/gRmwQDb.png

開始編譯吧
依次輸入
cd uhubctl
make
sudo make install
cd

https://i.imgur.com/twN59up.png

我們來看看 USB 接了什麼東西,
輸入 sudo uhubctl
由於我沒有接 USB DAC,所以可以發現四個孔,顯示只有一個隨身碟,
我們目標是把沒用到的USB孔的電都像我一樣關閉,而且每次重開機都可以自動關閉。

https://i.imgur.com/Nc7z8LO.png

那樹莓派四個孔硬體上 Port 1 - Port 4 怎麼判斷呢
下圖已經標記USB孔編號。

https://i.imgur.com/qNU6TR1.jpg

我們先學習如何手動關閉 USB 孔的電,
如果不打算關機或是覺得學到這就好了,可以就此打住。
由於大家都是樹莓派,所有板子硬體都差不多,USB設計是一樣的
例如現在我想把 Port 1的電關閉,
輸入 sudo uhubctl -l2 -p1 -a 0
-l2 表示 Bus 2,這個大家都一樣,不需要修改
-p1 表示 Port 1
-a 0 表示把電關閉,要打開就改輸入 -a 1

https://i.imgur.com/gF2ILXx.png

0x6 設定自動關閉 USB 電源

我們來學習寫程式吧,其實只是把剛才手動輸入,再重新設定一遍,之後會讓系統自動執
行它。
記得從這步開始,要先手動確定沒輸入錯誤,
不然你可能會發生一直找不到USB裝置,例如你的USB DAC,
選定好你USB DAC之後會用的孔,以後只有那個孔可以用。

輸入 nano uhubctl.sh

https://i.imgur.com/I2bnZXV.png

輸入你想關閉的USB孔,可以看到我把Port1, Port2, Port4電都關閉,你一定一定一定要
依照自己設定。
想關閉的孔,可以把前面的 # 去除,要打開就再加上 #

#!/bin/bash

# uhubctl -l2 -p1 -a 0
# uhubctl -l2 -p2 -a 0
# uhubctl -l2 -p3 -a 0
# uhubctl -l2 -p4 -a 0

https://i.imgur.com/uu5bDXO.png

輸入完,我們把檔案儲存,
按下 Ctrl + X
會問你要不要儲存,按下 y

https://i.imgur.com/6PejhBO.png

出現這個按 Enter 就好了

https://i.imgur.com/5NFfFQR.png

把這程式變成可執行
輸入 chmod +x uhubctl.sh
建立成一個服務,讓它每次開機都自動關閉USB
輸入 sudo nano /etc/systemd/system/usb.service
輸入如下設定,如果你都依照我的流程,應該一行都不用改,儲存方法跟上面一樣喔,我
就不重覆了。
[Unit]
Description=USB hub utitly
After=network.target

[Service]
ExecStart=/home/pi/uhubctl.sh
WorkingDirectory=/home/pi
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=uhubctl
User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

https://i.imgur.com/ZM0uiHi.png

然後把它儲存好。
把剛才的東西,啟動每次開機都自動執行
輸入 sudo systemctl enable usb.service

0x07 深度優化 Part 2

來買個讀卡機吧,因為我們要做些細微的優化,
我們要把 micro SD卡放在讀卡機開機。
以下就不一定有效,聽不出來,我可不負責。
我的讀卡機和超級大卡,朋友說他爬文,用 CF 卡有差,我就隨他了。

我們先來升級樹莓派韌體,專業說是升級eeprom韌體
輸入 sudo rpi-eeprom-update

https://i.imgur.com/GPzaBua.png

像我已經是最新,所以到這步就好了。
不然請輸入 sudo rpi-eeprom-update -a
然後回到 Moode 系統重開機,方法請拉回上面喔。

然後我們要改一下開機順序,希望優先從USB讀卡機開機。
輸入 sudo -E rpi-eeprom-config --edit
預設 BOOT_ORDER應該會是 0xf41,把它修改成 0xf14,修改完記得儲存起來。

https://i.imgur.com/1JAQ9ss.png

它會要求你重開機,記得先重開機。

然後我們又要修改 USB 電源了,剛才我們不是把三個孔電源都關了嗎?
記得修改 uhubctl.sh 檔案,把讀卡機準備用的孔電源打開,
修改完,把樹莓派電斷掉,把micro SD卡插入讀卡機,然後開機吧,如果開成功,兩個
LED燈都熄滅,我就為你安心了。因為我就可以教你最後一步了。

是不是我們還有個地方電源沒關閉,沒錯,就是 micro SD卡槽的電。
輸入 sudo nano /boot/config.txt
修改一下檔案,在最後一行加上
dtparam=sd_poll_once

https://i.imgur.com/463smo7.png

然後儲存它,重開機,如果又成功了,我...目前真沒什麼可以教你了。我還在想有什麼
比較簡單的優化,重編系統我覺得會影響到 Moode更新,所以我丟掉這想法了。

0x08 安裝帽子 HAT

差點忘記推廣使用同軸輸出了,如果想要同軸輸出可以買這塊版子,
最重點來了喔,它可以接 DC 5V,所以你可以上開關電或線電,這又是個大提升音質的方
法。
我是買這塊,AK4118就是SPDIF晶片名,應該所有(不敢保証)廠商都是用這顆晶片做SPDIF
,所以買這個晶片來接同軸光纖相容性是最高的。
如果要用SPDIF要修改一下 Moode 設定,
因為我們不用USB啦,

https://i.imgur.com/g4XuAvT.png

其實很多可以正常使用這塊HAT的同軸,
像是
HiFiBerry DAC
HiFiBerry DAC+ Light
設定好重開機,你一放音樂,應該就會發現DAC同軸抓到播放中了。

我喜歡走同軸有兩個原因啦,
第一是我喜歡同軸這種有點類比的聲音
第二是不用處理麻煩的USB雜訊等

對了,記得呀,不要老師在講沒有在聽呀,
如果用同軸不就空了一個 USB 孔,記得把USB電源關掉呀。

0x09 CPU 超頻

突然又想到新招,我們來超頻吧,Raspberry Pi 4 CPU是1.5GHz,
我們目標是超到極限 2.147GHz。
由於我只在 Raspberry Pi 4測試過,其他舊板子不建議或是私訊問我。
為什麼要超頻或為什麼要高速的CPU,這我沒有個理論基礎,
今天剛好帶DAC過去找朋友玩,就幫他把樹莓派超頻給他聽聽看,
測試結束有點出乎意料,我們結論是速度越快,解析太高導致聲音太刺且低頻被吃掉不少

因為我帶TT2過去,而他又是聽金屬,所以銀線銀頭全加滿,
再加上他耳機是TH900mk2也是高解析。
結果就是測到1.75GHz最剛好,聲音集中,低頻少一點。
測試結果是速度越快,解析越好(會帶來刺激和吃掉低頻),但不表示在你系統是好聽。
所以大家就各自調整到自己滿意的聲音就好,不一定是超到極限才好聽。

以下操作,請一定要遵守幾個規則,
1. 有安裝散熱片和良好的對流,最好一定要台小風扇
2. 每超頻上去一階,要檢查CPU溫度有沒有超過65度(前面有教)
3. 一步步超頻上去,不要想一步超到極限,燒掉我不負責

輸入 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
檢查一下當前CPU頻率,這數字表示1.5GHz

https://i.imgur.com/D6f0A05.png

開始超頻到 1.75GHz吧
輸入 sudo nano /boot/config.txt
最後一行加上
over_voltage=2
arm_freq=1750

https://i.imgur.com/qXgVpgA.png

再把Moode系統重開機,如果開機成功,
我們來檢查一下是否超頻成功和CPU溫度
輸入 moodeutl -m
再來我們超頻到2GHz吧,
輸入 sudo nano /boot/config.txt
修改成
over_voltage=6
arm_freq=2000

修改完一樣把 Moode重開機,再重新檢查CPU頻率和CPU溫度,我就不重覆了。

再來超頻到極限 2.147GHz吧
輸入 sudo nano /boot/config.txt
修改成
over_voltage=6
arm_freq=2147
gpu_freq=750

再重開機,然後檢查CPU頻率和溫度是否都正常。

0x10 增加 SD 卡使用壽命 (老舊方法)

教大家一個系統設定,可以增加SD卡的使用壽命
輸入 sudo nano /etc/fstab
在最後一行加上
tmpfs /var/cache tmpfs defaults,size=500m,noatime
0 0

按 Ctrl + X 離開儲存吧
修改完重開機才會套用設定

0x11 支援 RAM開機

開啟這個可以很大提升聲音,但缺點就是會把系統設定鎖住,
之後如果想修改設定,記得要先把RAM開機關閉,
不然每次下電重開,設定都會恢復。
ssh 進入系統,輸入 sudo raspi-config,修改數莓派設定

https://i.imgur.com/7oQp3by.png

依序選擇,Performance Options -> Overlay File System -> Yes

https://i.imgur.com/SPHfisI.png

回到這畫面,按 Tab 一直選到 Finish,離開這個程式

https://i.imgur.com/sRPK6nf.png

這時一樣重開機即可,以後每次開機都會是乾淨的系統。

0x12 支援 Roon Bridge

現在 Roon 很火,大家可以安裝 Roon Bridge 在樹莓派,
然後用電腦控制樹莓派播放音樂,跟UPNP播放是同樣原理。
記得先把 0x11 的RAM開機關閉。
方法如下,先用 ssh 登入系統
先下載安裝檔,輸入如下指令
wget http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv7hf.sh

修改一下權限,讓它可以執行
chmod +x roonbridge-installer-linuxarmv7hf.sh

安裝它
sudo ./roonbridge-installer-linuxarmv7hf.sh

它最後會顯示安裝成功,這時就重開機樹莓派
sudo reboot

開啟 Roon Bridge 吧

https://i.imgur.com/ECN6Pto.png

https://i.imgur.com/pfohrjZ.png

這時你就可以在 Roon 上看到可以選擇樹莓派,
如果是USB接DAC,還會直接顯示你DAC的名字,
我用同軸 Roon Bridge 識別不出來,所以我自己改名了。

https://i.imgur.com/VwnJg4z.png

0x13 支援外掛時鐘(已刪除)

感謝燒友iitze指正,少寫一段功能,但沒時間測試,
所以建議大家不要使用,不過我還是更新在最後一段

進階時鐘主要分 tcxo 和 ocxo,市面上賣得廠機時鐘也都是這兩種。
tcxo 表示溫補時鐘,優點就是熱機快,精度比樹莓派內建好。
ocxo表示恆溫時鐘,優點是精度是最好的,但缺點是熱機慢,也有人建議不要讓它冷卻。

給樹莓派加鐘最好方法當然是魔改電路板上的時鐘,
但我不會也懶得自己改,所以選擇隨便買個 tcxo 模組。
tcxo比較有名就 DS3231,以下會教當安裝好時鐘,如何把它啟用。

一樣 ssh 登入系統,
先檢查樹莓派有沒有抓到時鐘,
由於每個版本的樹莓派I2C BUS可能不同,
所以建議先用以下方法查詢,
可以看到我的板子,I2C BUS是 i2c-1,也就是BUS 1。
pi@moode:~ $ sudo i2cdetect -l
i2c-1i2c bcm2835 (i2c@7e804000) I2C adapter

然後再查詢有沒有抓到時鐘,
可以看到有一個顯示68,表示時鐘打算使用0x68這位置,
但也表示它還沒有被啟用。
pi@moode:~ $ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

修改 /boot/config.txt,開啟時鐘,
sudo nano /boot/config.txt

大家依照自己的時鐘型號增加,我例舉幾個常見的時鐘
dtoverlay=i2c-rtc,ds1307
or
dtoverlay=i2c-rtc,pcf8523
or
dtoverlay=i2c-rtc,ds3231

像我是 ds3231,我只要加一行 dtoverlay=i2c-rtc,ds3231
然後儲存重開機
sudo reboot

重開機完,我們檢查一下有沒有啟用成功,
再 ssh 登入系統。

檢查有沒有啟用,顯示UU表示啟用成功。
pi@moode:~ $ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

再檢查時鐘有沒有取得時間,有時間出來表示正常。
pi@moode:~ $ sudo hwclock -r
2021-08-17 08:55:44.311129+08:00

設定系統時間為外接時鐘,而且每次開機都要執行,
最好方法是編寫開機自動執行腳本或是設定排程,
每一段時間從外掛時鐘寫入系統時間
pi@moode:~ $ sudo hwclock -s

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.120.73 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Headphone/M.1630803886.A.8BA.html
martinlin77: 先推了 09/05 09:09
martinlin77: 我也用TT2 可是播放DSD只能走DOP請問看到您分享是走n 09/05 09:10
martinlin77: ative DSD? 09/05 09:10
是DoP沒錯,我昨天重抓圖,沒特別測試,而且用Roon不用管這個
MJmarjim: 請問Spotify connect大大有用成功嗎?之前設定好之後還 09/05 09:13
MJmarjim: 是找不到 09/05 09:13
有成功,之前要付費才可以抓到,有聽說現在免費帳號也開放了
ccc985: 好文先推! 09/05 09:29
kenApp: 推 09/05 09:35
iitze: 推,真的是好文。身為樹莓派用者,樹莓派真是便宜又好用 09/05 09:38
iitze: 想問,時鐘模組安裝後,系統自動會轉換用精準時鐘嗎?還是 09/05 09:40
iitze: 要再其他設定?聽感有差嗎? 09/05 09:40
參考0x13設定完,就會走時鐘模組,聽感我其實聽不出來,
有朋友是直接找人魔改樹莓派上時鐘成ocxo,說差異很大
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/05/2021 09:46:59
Lycheus: 寫的好完整~推推 09/05 09:54
malvin: 推!moode 使用者+1 09/05 09:57
malvin: 64 bit在allo usb sig上會預到資料庫無法更新的問題 09/05 10:00
這是個很重要的資訊,感謝分享
can05025: 推~感謝分享 09/05 10:01
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/05/2021 10:03:13
martinlin77: Spotify 直接就在手機上面找到直接cast 09/05 10:27
purplesky911: 詳細推 09/05 10:38
martinlin77: 或者volumio上面裝Spotify plug in 09/05 10:55
LevisDoll: 好文章,給推 09/05 12:45
llw116: 感謝分享 09/05 12:53
execration: 先推為敬 09/05 13:32
missluluking: 感謝教學,推~~~ 09/05 14:13
CGary: 優文 09/05 14:29
colamouse: 先推免得被發現我看不懂 09/05 17:30
不懂就多交流,私訊都可以問
m9172250: 可是一堆數播去看裡面 我覺得瞬間都軟掉一半 一堆套皮 09/05 18:22
ifi新機嗎,它很誠實說是Volumio
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/05/2021 18:37:10
unique0515: 大大超詳細的樹莓教學,看來還可以期待第二集 09/05 20:33
還真有,只是改天再寫吧,最近太忙
TIANPJ: 好用 09/05 21:01
※ 編輯: pcjustin (61.220.76.160 臺灣), 09/06/2021 09:45:13
CrosstakerYu: 推~ 建議可以加上USB隔離器(要有正確的設計) 09/06 18:06
CrosstakerYu: 聲音可以變乾淨很多~ 09/06 18:07
哈,我都用同軸,USB是特別抓圖給大家看的,隔離過肯定更乾淨,朋友就上鐵殻 XD
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/06/2021 21:16:12
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/06/2021 21:17:18
※ 編輯: pcjustin (1.161.120.73 臺灣), 09/06/2021 21:26:10
RweiOrz: 如同教材般詳細 學習了! 11/14 15:11

你可能也想看看

搜尋相關網站