看板 Headphone 關於我們 聯絡資訊
主要就把以前巴哈寫得文轉過來 剛好最近把壞掉的圖補完且重新潤一下文章 十多年沒用過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