標籤:
作為一名高清愛好者,一直想配置一台HTPC放家裡實現高清播放外加家用伺服器功能。Nvidia的Ion平台自然是高清平台的硬體首選,而家庭媒體中心的軟體端則首先考慮開發的已經很成熟的開源利器 XBMC 。XBMC本身支援多種平台(Linux, Mac OS X, Windows …),從驅動程式和配置方面來說,自然是基於Windows搭建最省事,但最終選擇Linux的原因是: ssh 。Linux的ssh讓我可以很方便地通過其他電腦,甚至手機操作我的家庭媒體中心主機。
因此,我最終在硬體上選擇了Acer Aspire R3700,基於Ion平台的超小型主機,配置如下:
- CPU:Intel Atom™ D525
- 記憶體:2G DDR3 800Mhz
- 硬碟:320G Sata
- 顯卡:Nvidia G320
- 網路:WLAN 802.11b/g/n
- 介面:USB介面6個、HDMI輸出、多合一讀卡槽
- …
除了買的主機內建了滑鼠鍵盤之外,我還選購了HDMI高清線以及MCE遙控器。
系統方面選擇了安裝配置簡便的Ubuntu 10.10系統(我開始是打算使用Gentoo的,但是編譯著編譯著我就崩潰鳥)。使用Ubuntu要實現的功能如下:
- 實現XBMC完全管理影音庫,並通過HDMI輸出到家裡46吋的電視機
- 通過無線網路串連家庭路由器,盡量擺離網線的束縛
- 開啟sshd,通過其他電腦或者手機ssh到家庭媒體主機進行系統維護操作
- 開啟transmission-daemon,利用該主機進行高清下載,並可遠端控制Bittorrent下載
- 實現開機自動進入媒體中心,用遙控器進行媒體播放操作,避免使用鍵鼠的可能
系統安裝
因為Acer Aspire R3700本身不內建光碟機,安裝系統可以通過製作LiveUSB進行隨身碟引導安裝。我製作了LiveUSB到一張SD卡上,直接放入機器的內建讀卡機進行引導安裝的。具體如何製作LiveUSB以及安裝Ubuntu系統就不冗述了,可參考Ubuntu的LiveUSB製作教程: Installation From USB Stick Quick 。
註:我在系統設定時添加了一個名為xbmc的普通賬戶,系統主機名稱為HAL。下文均使用此使用者名稱和主機名稱代替。
分區上我建立了一個220G的空白分區掛載在 /library
目錄下,用於存放高畫質 DVD檔案,檔案格式上採用了xfs,採用如下命令進行格式化:
sudo mkfs.xfs -l size=64m -d agcount=4 -i attr=2,maxpct=5 -L library /dev/sdx
在 /etc/fstab
中添加 /library
分區掛載行:
/dev/sdb5/libraryxfsnoatime,nodiratime,allocsize=512m02
其中 allocsize=512m
的作用是每次寫入檔案時xfs分區會預先分配512Mb的空間供一次寫入,以減少檔案片段。對於動輒數G的高清檔案來說,512Mb不算大支。
系統調試刪除冗餘組件
安裝好系統之後首先運行 sudo apt-get update
更新源。然後刪除一些不必要的內建軟體,如Openoffice, Evolution Mail, Brasero等。具體看個人需要刪除,例如要刪除Openoffice,運行 sudo apt-get autoclean openoffice.org
進行完全清理。
解決RaLink RT3090網卡驅動問題
Ubuntu 10.10內建的無線網卡RaLink RT3090驅動存在不能順利關機的問題,需要安裝第三方源的編譯包,運行如下命令:
## 添加第三方驅動源sudo add-apt-repository ppa:markus-tisoft/rt3090## 更新源資訊並安裝第三方無線網卡驅動sudo apt-get updatesudo apt-get install rt3090-dkms
編輯 /etc/modprobe.d/blacklist.conf
檔案,添加如下幾行,將系統內建驅動模組加入黑名單:
# blacklist other Ralink modules in favour of 3090 DKMS modblacklist rt2860stablacklist rt2870stablacklist rt2800pciblacklist rt2800usbblacklist rt2x00libblacklist rt2x00pciblacklist rt2x00usb
安裝NVidia驅動
為了充分發揮Ion平台的高清硬解效能,安裝NVidia的私人驅動是必須的。運行 sudo apt-get install nvidia-current
安裝好驅動程式。安裝好的XBMC會出現明顯的CPU佔用率過高的問題,解決的辦法時安裝好NVidia的驅動之後,編輯 /etc/X11/xorg.conf
檔案,加入 NoFlip
設定:
Section "Device" Identifier"Device0" Driver"nvidia" VendorName"NVIDIA Corporation" BoardName"ION" Option"NoFlip" "1" # 加入此行EndSection
調試HDMI的音訊輸出
Ubuntu下調試音訊HDMI輸出有點複雜,具體我參考了 HOW-TO set up HDMI audio on nVidia GeForce G210, GT220, or GT240 進行調試,這裡簡述下我的調試過程:
- 運行
alsamixer
,F6切換到HDA NVidia音效卡輸出,開啟Master, PCM, Front, Mic, S/PDIF, S/PDIF Def。
- 編輯
/etc/modprobe.d/sound.conf
,加入以下這行:options snd-hda-intel enable_msi=0 probe_mask=0xffff,0xfff2
- 編輯
/etc/pulse/default.pa
,加入以下這行:load-module module-alsa-sink device=hw:1,3
- 編輯
/etc/asound.conf
,加入以下幾行:#pcm.!default hdmi:Nvidiapcm.dmixer { type dmix ipc_key 1024 ipc_key_add_uid false ipc_perm 0660 slave { pcm "hw:1,3" rate 48000 channels 2 period_time 0 period_size 1024 buffer_time 0 buffer_size 4096 }}pcm.!default { type plug slave.pcm "dmixer"}
開啟iptables+ssh
由於本機是通過無線路由串連,最好先在路由器上映射好相應連接埠並綁定一個固定IP以方便維護,在此不再冗述。既然系統已經搭建好了,可以去掉鍵鼠通過開啟sshd服務進行遠程操作維護。為了更安全的系統,iptables+sshguard也是不可或缺的。
運行命令安裝iptables, ssh和sshguard:
sudo apt-get install iptables openssh-server sshguard
修改 /etc/ssh/sshd_config
:
Port 2727 # 將預設的22連接埠修改為任意其他連接埠,例如2727。
然後是設定iptables規則,編輯 /etc/iptables
(沒有可建立):
# Generated by iptables-save v1.4.7 on Sat May 22 20:03:22 2010*raw:PREROUTING ACCEPT [21639:19095836]:OUTPUT ACCEPT [22904:4573912]COMMIT# Completed on Sat May 22 20:03:22 2010# Generated by iptables-save v1.4.7 on Sat May 22 20:03:22 2010*filter:INPUT DROP [7:2223]:FORWARD DROP [0:0]:OUTPUT ACCEPT [9409:1846937]:sshguard - [0:0]-A INPUT -s 127.0.0.1/32 -j ACCEPT-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # 設定內網IP許可權訪問,預設允許-A INPUT -s 192.168.1.100/32 -j ACCEPT-A INPUT -s 192.168.1.101/32 -j ACCEPT# 開啟transmission-daemon連接埠6666,其中9091是transmission web的連接埠-A INPUT -p tcp -m tcp --dport 6666 -j ACCEPT-A INPUT -p tcp -m tcp --dport 9091 -j ACCEPT# 允許路由器的UPnP#-A INPUT -s 192.168.1.1 -j ACCEPT# 設定sshd連接埠號碼(2727)的訪問,先經sshguard判斷訪問是否異常-A INPUT -p tcp -m tcp --dport 2727 -j sshguard-A INPUT -p tcp -m tcp --dport 2727 -j ACCEPT-A INPUT -p tcp -m tcp --tcp-flags RST RST -j DROPCOMMIT# Completed on Sat May 22 20:03:22 2010
然後直接運行 sudo iptables-restore < /etc/iptables
匯入iptables設定。悲劇的是,Ubuntu不會自動儲存iptables設定,所以必須在開機時載入設定,編輯 /etc/network/interfaces
檔案,在末尾加入以下兩行:
pre-up iptables-restore < /etc/iptablespost-down iptables-save > /etc/iptables
運行 sudo apt-get install rcconf
並通過 rcconf
將ssh加入系統啟動自運行進程。然後重啟電腦,就可以通過其他主機來進行操作、維護了。
安裝XBMC及相關組件安裝XBMC
要獲得XBMC之前,我們先需要添加第三方源,運行如下命令完成XBMC安裝:
sudo add-apt-repository ppa:team-xbmcsudo apt-get updatesudo apt-get install xbmc xbmc-standalone
首次運行XBMC會發現中文無法識別的問題,需要做的是拷貝一個中文字型進來,例如我喜歡使用Google製造的Droid Sans Fallback字型,運行:
sudo cp DroidSansFallback.ttf /usr/share/xbmc/media/Fonts/arial.ttfsed -e "s/language>english<\/language/language>Chinese (Simple)<\/language/" -i ~/.xbmc/userdata/guisettings.xmlsed -e "s/font>Default<\/font/font>Arial<\/font/" -i ~/.xbmc/userdata/guisettings.xml
安裝Lirc實現遙控播放XBMC
作為HTPC的一部分,脫離鍵鼠使用遙控器進行影院播放控制自然是必不可少,我使用的是 Microsoft Media Center的遙控器 ,通過USB外接一個紅外線接收器就可以了。
要讓遙控器工作,首先得安裝lirc,運行 sudo apt-get install lirc
完成安裝,首次安裝完成會彈出遙控器的終端配置介面:
- 在Remote Control Configuration中選擇Windows Media Center Transceivers/Remotes (all)
- 在IR transmitter, if present中均選擇Microsoft Windows Media Center V2 (usb) : Direct TV Receiver
然後將lircd加入系統自啟動進程,重啟電腦,在終端中運行 irw
,摁遙控器的方向鍵進行測試,如果終端內能正確識別遙控器操作說明遙控器準備就緒了。如果無法識別的話,需要 sudo dpkg-reconfigure lirc
重啟進行配置,或者就是遙控器的電池電力不足(我就是因為這個傻逼原因瞎折騰了系統兩個多小時)。
安裝Transmission-daemon
作為高清下載機,實現Bittorrent下載的遠端管理是必不可少的,首選Transmission這個跨平台的Bittorrent下載利器,尤其是它的daemon模式,支援web遠程操作,而且web端的操作針對iPhone等手持功能做了UI最佳化。運行 sudo apt-get install transmission-daemon
安裝。按照 網站上的設定 說明更改settings.json檔案配置。
由於transmission-daemon預設使用的是debian-transmission使用者名稱運行,需要將其改為我的使用者名稱xbmc進行更好的管理。修改 /etc/init.d/transmission-daemon
檔案:
#USER=debian-transmission #注釋此行,修改為自訂的使用者名稱USER=xbmc
安裝XBMC外掛程式
XBMC的強大之處在於可以通過外掛程式進行無限擴充,我安裝了Getlib, 7176, TheMovieDb幾個電影類的削刮器以根據檔案名稱自動擷取電影的封面和製作資訊。集方面安裝了TheTVDb的削刮器,另外還可以安裝 xbmc-addons-chinese 裡的擴充,添加Youku等線上視頻播放,更好地擴充網路電視功能。
此外,在XBMC下可安裝Transmission的外掛程式,便可通過XBMC監控Transmission下載,例圖:
安裝XBMC皮膚: Aeon Nox
XBMC下最漂亮的皮膚莫過於Aeon系列,Aeon下面有Aeon65, Aeon MQ2和Aeon Nox三個mod。個人更偏向於使用 Aeon Nox ,系統資源佔用少於前二者且皮膚功能異常強大,整個UI也非常漂亮(見下文“欣賞”)。
安裝方法很簡單,去XBMC的擴充庫裡找到Aeon Nox安裝就行了,下載過程可能有點慢,畢竟這個皮膚解壓後的體積高達60MB。不過皮膚安裝後的問題是缺少中文字型支援,解決方案是:
複製一個中文字型到 ~/.xbmc/addons/skin.aeon.nox/fonts
目錄,並重新命名為Arial.ttf(簡單起見)。
然後修改 ~/.xbmc/addons/skin.aeon.nox/720p/Font.xml
檔案,將 filename
中的字型全部替換為Arial.ttf。
最佳化系統設定
為了更好地實現HTPC的流暢體驗,還需要對安裝後的系統進行一些最佳化。
- 設定開機免密碼自動登入XBMC賬戶
在System -> Administration -> Login Screen Settings中點擊Unlock,設定XBMC賬戶為自動登入。
- 設定XBMC關機功能
在XBMC的系統設定中的省電模式裡,將自動關機功能中的選項設定為關機,這樣既可通過摁遙控器上的關機鍵實現關機。
整個系統最佳化完之後,就可以在GDM中選擇預設登入xbmc-standalone環境,而不進入Gnome案頭環境,以節省不必要的系統資源佔用。
欣賞
參考:
- HOW-TO perform a miminal Ubuntu and XBMC install on a Asus EeeBox PC EB1501
- HOW-TO set up HDMI audio on nVidia GeForce G210, GT220, or GT240
- Setting up Ubuntu 10.10 on Revo 3700
- XBMC 10.04 + 高清硬解的中文設定
End
寫在最後,我已經為我的HTPC新添置了一塊Seagate的GoFlex Desk 2TB移動硬碟以滿足我下高清的需求,Acer的R3700主機連續運行幾天既不會有噪音也沒有發熱的現象。電腦之間,電腦與手機之間通過無線網路進行互聯,一定要用上801.11n的無線路由器才能滿足無線網路之間的資料高速傳輸。
打造基於Ubuntu+XBMC的家庭媒體中心