SBT 代替品 Router As SqueezeBox Player ~ 教學篇 ~
本帖最後由 jackt 於 2013-12-14 15:41 編輯引言
由於這篇文章內容主要講述,如何安裝一個路由器成為SBT代替品,所以內容只是有關串流系統的播放器部分,如果師兄有需要建立 Logitech Media Server,請參考其他文章。
有關硬件
- 任何舊款無線路由器 (Wireless Router),可以到 OpenWRT 的 Web Site 看看硬件是否支援 http://wiki.openwrt.org/toh/start ,路由器需要有 USB 2.0 介面
- 支援標準 USB 2.0 DAC (電腦術語稱為音效卡)
- USB 接線
- 一台電腦作設定用途
- NAS/Windows/Mac 作LMS
- 可連接Internet的家用有線網絡
- 網絡接線
作為自建系統,用戶最好有簡單網絡知識,及一般 Command Line 使用知識。
安裝過程
安裝時有需求連接或拔除網絡,首先使用電腦上網下載有關Firmware (OpenWRT一般稱作Firmware,類似路由器的叫法),電腦離線後再直駁Router,Flash路由器系統成為 OpenWRT firmware,將路由器及電腦接上家用網絡,進入路由器系統並改裝成為串流播放器,開啟瀏覽器連接LMS,完成及享受音樂。
相關步驟
1) 選擇適當的 Firmware 下載,可到 http://downloads.openwrt.org/ 下載不同版本,現時stable版為 Attitude Adjustment,但我比較喜歡最新trunk版,可到 http://downloads.openwrt.org/snapshots/trunk/下載,Trunk版支援硬件較多,而且使用最新 Linux Kernel,所以支援度較高,但因為是unstable版,可能有些少bug出現,不過以OpenWRT來說,一般都穩定,又因為每數天更新,所以會有前後版本不兼容情況,其實安裝之後很少更新,除非有不穩定情況。
下載時請留意,一般會有 Factory 和 Sysupgrade 兩個版本,作為播放器只需要簡單系統,所以選擇 Factory 版,就算使用sysupgrade版,也需要安裝factory版,之後再升為sysupgrade版。
由於小弟使用 TP-Link TL-WR1043ND,內容會以 TP-Link TL-WR1043ND 作例子。
*注意:有部分型號會有不同硬體版本,下載時要留意版本,如果使用錯誤版本,路由器可能會變成磚頭。
選擇適當型號版本 (型號 TL-WR1043ND,硬體版本 V1,Factory版)
http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin
下載後將檔案存到電腦內
2a) Flash Firmware,如果第一次安裝OpenWRT系統,請參照以下內容,如果已經安裝了OpenWRT系統,可跳到 2b) 更新Firmware:
首先用網絡線將電腦連接到路由器,將電腦IP地址設成同一網絡但不同地址,
例:電腦IP為 192.168.1.2,路由器IP為 192.168.1.1
在瀏覽器 Address 輸入 192.168.1.1,輸入 user name 和 password,選取 Firmware Upgrade,選擇檔案並開始更新。
*注意:更新時,請不要拔除網絡或電源,如果出現問題,可使路由器變成磚頭。
2b) 更新Firmware,由於OpenWRT經常有新版本,如果本身裝有舊版,可根據以下內容,更新最新版本,由於作為播放器只需要簡單系統,請選擇 Factory 版。
選擇適當型號版本,可按滑鼠右鍵複製連接網址,打開 Terminal,登入後再到/tmp資料夾,下載firmware,再進行升級。
> cd /tmp
> wget http://downloads.openwrt.org/sna ... quashfs-factory.bin
> sysupgrade -v /tmp/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin
系統進行升級時,需要等一般短時間,升級後會從新起機,然後再登入和安裝程式。
3) 登入系統,打開 Terminal / Command Prompt,輸入 telnet 192.168.1.1 (預設IP地址) 直接登入,如果使用其他網絡地段,請更改電腦IP地址。也可以同時打開本文章和Terminal,Copy and paste 文章指令到Terminal上。
> telnet 192.168.1.1
開始登入時是不需用戶名稱及密碼,以後需要密碼時,可輸入指令 passwd 更改密碼,而一般用戶名稱為 root,之後可用 ssh root@192.168.1.1 登入系統 (Windows 用戶可用 putty),但用戶不一定需要更改密碼,除非家用網絡出現不安全情況。
4) 停用不需要的服務,輸入以下指令:
> /etc/init.d/dnsmasq disable
> /etc/init.d/6relayd disable
以上兩個服務在 TL-WR1043ND firmware 為內定,但不是每一個型號也存在這兩個服務,頭一個為NAT/DNS服務,作為播放器不需要使用,第二個為IPv6服務,其他型號不一定存在,當然可以自己檢查有沒有其他不需要的服務,使用指令 ps 便可看到現行服務,但dropbear及telnet一定需要存在的,請不要把它們關掉,如果不知道是甚麼服務,也不需要關掉他們。
5) 設定網絡,登入後可以輸入以下指令,設定網絡IP地址,如果使用其他IP地址,可以將以下的 192.168.1.11 改成自己網絡的地址,注意gateway即是上網的路閘,如果使用其他地段,請將所有地段改成家用網絡的地段,例:家用Router IP為 192.168.0.1,將IP頭三個數字 192.168.1 改成 192.168.0。
> uci set network.lan.ipaddr=192.168.1.11
> uci set network.lan.gateway=192.168.1.1
> uci set network.lan.dns=192.168.1.1
> uci commit
設定後可使用以下指令看看網絡設定:
> uci show network
如果沒有問題,可以重新開機,將播放器接電腦上的網絡線除下,並將播放器接上家用網絡,重新開機指令如下:
> reboot
指令 reboot 會即時截斷連線,會有一段時間不能使用這個 Terminal 程式,如果想快,可以重新開啟 Terminal 程式。
取消電腦自定IP,再將電腦接入家用網絡。
6) 安裝 USB 支援驅動程式,OpenWRT系統內,Kernel Modules、Modules、Libraries、Programs都可能以Packages型式存在,這亦是OpenWRT最方便的地方,可以安裝任何支援的程式或驅動裝置,只需要輸入簡單指令便可以進行安裝。每當安裝Package之前,請先 update package list,播放器需要使用Internet下載Packages,所以要確保播放器可以連接上網,檢查連線可用指令 ping www.yahoo.com,之後可按 Ctl-C 停止 ping 命令,再輸入以下指令安裝Packages:
> opkg update
> opkg install kmod-usb-audio kmod-sound-core
可能安裝完後不能自動上掛上驅動程式,可重新 reboot,重啟後會自動上掛。
7) 安裝 ALSA,ALSA 為 Linux Sound 的標準,大部分程式會使用這個標準 Library,可輸入以下指令安裝ALSA:
> opkg update
> opkg install alsa-lib alsa-utils
以上基本 Packages 已經安裝完成。
8) 安裝 Squeezelite,(假設安裝在/root目錄內,登入時的位置) 輸入以下指令直接安裝:
> wget http://squeezelite.googlecode.com/files/squeezelite-mips-ar71xx
> chmod 755 squeezelite-mips-ar71xx
因為下載後,這個程式不能執行,要使用 chmod 指令將它改為可執行檔。
9) 執行程式,輸入以下指令:
> ./squeezelite-mips-ar71xx
或背景執行 (測試時可使用)
> ./squeezelite-mips-ar71xx -o hw:0,0 &
又或者開機自動執行,修改 /etc/rc.local,(假設Squeezelite安裝在/root目錄內) 以後開機便會自動執行,先copy以下指令
/root/squeezelite-mips-ar71xx -o hw:0,0 &
> vi /etc/rc.local
使用 cursor 移到 exit 之上位置,按 i,再paste,按 ,輸入 :wq,按 ,完成。
Squeezelite 可輸入其他參數,參考 https://code.google.com/p/squeezelite/ 設定,不加參數時使用內定值,也會自動尋找LMS,例:參數 -o 設定音效卡,如 -o hw:0,0 ,多於一張卡時可自定那張輸出,使用第二張 -o hw:1,0。
10) 檢查 USB Sound,安裝完成後,可使用簡單指令檢查音效設備。
> cd /proc/asound
> ls
如果出現 card0,表示已找到音效卡。
> cd /proc/asound/card0
> cat stream0
可看到現時音效卡處理的內容。
檢查處理內容前,必須使用瀏覽器開LMS網址,播LMS內歌曲時才有 Running 顯示。
以下為方便大家,將有關改裝指令集合,當大家對以上步驟有所了解,直接使用以下指令更為便捷。
安裝播放器使用指令 (可直接 copy and paste)
--- 直駁路由器,flash firmware 後,登入 ---
/etc/init.d/dnsmasq disable
/etc/init.d/6relayd disable
uci set network.lan.ipaddr=192.168.1.11
uci set network.lan.gateway=192.168.1.1
uci set network.lan.dns=192.168.1.1
uci commit
reboot
--- 接上家用網絡後,登入 ---
opkg update
opkg install kmod-usb-audio kmod-sound-core
reboot
-- 重新啟動後,登入 ---
opkg update
opkg install alsa-lib alsa-utils
wget http://squeezelite.googlecode.com/files/squeezelite-mips-ar71xx
chmod 755 squeezelite-mips-ar71xx
簡單指令
ls 列出目錄內容,如 ls、ls -l
cd 轉變目前的目錄,如 cd /root、cd /tmp、cd ..
cat 瀏覽文件內容,如 cat /etc/rc.local、cat stream0
ps 檢查現時執行程式或服務
補充
其實一般路由器速度十分慢,只有足夠能力應付高清WAV檔傳輸,所以不建使用路由器內的CPU資源做解壓,故建議在LMS設定所有檔案轉成PCM或Native選項。
另外,如果有師兄想買全新路由器作串流播放器,小弟建議使用 TP-Link TL-WR1043ND V2,因為CPU速度較高,實試頗為暢順。 感谢师兄的教学贴!心急没等到师兄的教学贴就着急刷了,刷好后因为连不上网络,自己改了network,wireless,现在变砖了,ping不通192.168.1.1了,telnet开始还可以连上,ssh无法连接,修改passwd,提示只读,之后一会儿,telnet也连不上了,好在我还有TTL线,明天救砖{:1_260:} thinzhang 發表於 2013-12-5 21:47 static/image/common/back.gif
感谢师兄的教学贴!心急没等到师兄的教学贴就着急刷了,刷好后因为连不上网络,自己改了network,wireless ...
我以前也試過有這樣情況出現,應該是網絡的問題,無論如何也不能用網絡方式連接,最後只能用TTL方式去連接,原因是無線網絡上的設定錯誤,所以在這裡不打算寫無線網絡設定,其中一樣無線網絡不宜傳較高頻率的音源,其次它會制造噪音,所以不建議使用。
這是一個很好的學習機會,我也經過不同的失敗,才得到少少成果,希望師兄繼續學習,將來必有所成。 jackt 發表於 2013-12-5 22:29 static/image/common/back.gif
我以前也試過有這樣情況出現,應該是網絡的問題,無論如何也不能用網絡方式連接,最後只能用TTL方式去連 ...
谢谢师兄鼓励!受教了!我这人的性格是不撞南墙不回头,撞了南墙也不回头,越挫越战!呵呵,正好学习练手。 本帖最後由 jackt 於 2013-12-6 11:15 編輯
各位 QuteHD / HiFace DAC 的用家,小弟最近compile咗 HiFace driver 做 package,各位可用以下方法安裝,但因小弟的QuteHD已賣出,所以沒有試這個driver能否運作,如果有師兄能作出測試,敬請提出答案。
方法一
> opkg --nodeps install http://jackhomenet.no-ip.biz:60080/kmod-sound-hiface_3.10.21-1_ar71xx.ipk
方法二
> cd /tmp
> wget http://jackhomenet.no-ip.biz:60080/kmod-sound-hiface_3.10.21-1_ar71xx.ipk
> opkg --nodeps install kmod-sound-hiface_3.10.21-1_ar71xx.ipk
哈哈!谢谢师兄!4530R搞定! thinzhang 發表於 2013-12-14 13:54 static/image/common/back.gif
哈哈!谢谢师兄!4530R搞定!
{:6_193:} {:6_195:} 师兄,发现个bug,重启路由后,squeezelite会丢失。已经添加到启动项了,
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
/root/squeezelite-mips-ar71xx -o hw:0,0 -n 4530R-BOX
exit 0
thinzhang 發表於 2013-12-15 11:15 static/image/common/back.gif
师兄,发现个bug,重启路由后,squeezelite会丢失。已经添加到启动项了,
# Put your custom commands here ...
謝謝,還可以再加個 "&",
/root/squeezelite-mips-ar71xx -o hw:0,0 -n 4530R-BOX &
因為之前沒有詳測,可能有其他問題,加了之後會好少少。 thinzhang 發表於 2013-12-15 11:15 static/image/common/back.gif
师兄,发现个bug,重启路由后,squeezelite会丢失。已经添加到启动项了,
# Put your custom commands here ...
可能加個 mac address 會好一些
-m <mac addr> Set mac address, format: ab:cd:ef:12:34:56
師兄可以試試!