使用freevo建置窮人版MMC/HTC - Howto

轉載自 [WWW] http://eason.be/test/freevo-howto.htm

2005/12/6, v0.1, By Eason Lee

  1. 前言
  2. 行前準備
  3. 安裝
    1. 安裝您選擇的Distribution,以Gentoo為例
    2. 安裝 freevo
  4. 基本設定
    1. freevo.conf
    2. local_config.py
    3. automount
  5. 中文設定
    1. 中文選單
    2. 中文字幕
  6. 其他設定
    1. Plugins (待補)
    2. TV-OUT
    3. 遠端控制 (待補)
  7. 結語
  8. References

版權沒有,如需轉載請注明來源。

前言

寫這篇Howto主要目的是為了方便以後重新安裝時能夠快速入手,除此之外也期望能夠給有此需求的同好一些幫忙。

為什麼選用 [WWW] freevo 呢?除了 freevo 之外,應該還有其他的軟體可以達成MMC(MultiMedia Center?)/HTC(Home Theatre Center)的功能吧,當然有的,例如鼎鼎大名且功能強大的 [WWW] MythTV,不過因為我個人的希望不需透過X11,所以我選擇使用Freevo,當然我也沒去與MythTV做比較,有興趣的同好也可以試試MythTV。

行前準備

軟體需求: Linux, freevo, mplayer, 其他utilities

硬體需求: 端看個人預算與需求,基本配備建議CPU Pentium/AMD 1GHz以上,RAM 256MB以上,VGA 32MB以上,HD當然越大越好,DVD一台或多台,希望享受多聲道音效震撼就準備好一點的音效卡和喇叭,如果要看TV和錄影還需要TV-tuner和Video Capture Device。

以上需求僅供參考,截至目前我安裝的環境如下

軟體: Gentoo 2005.1, freevo v1.5.3, mplayer v1.0_pre7-r1...... 硬體: 老姐的舊NB (ASUS Z2400 series with PIII 1G, 384MB, build-in VGA ProSavage PM133 memory shared)

需求: 不用X11改用FrameBuffer

安裝

安裝您選擇的Distribution,以Gentoo為例

我的環境選用Gentoo,可能是最近和Ubuntu/Debian犯衝吧,怎麼裝都失敗,所以改換安裝過程有點久的Gentoo,如果有同好想試試Ubuntu/Debian或其他Distribution也同樣可行。安裝Gentoo已經有很好的[WWW] 中文安裝導引,所以請自行參考一步一步來。

其中在build kernel時,我先前已說過不使用X11改用FreamBuffer,所以記得要在kernel打開以下的選項才能讓你的kernel支援FrameBuffer

for 2.6.x kernel

在這邊要特別注意,在我設定的過程中發現,如果有使用bootsplash的話,Logo configuration記得不能選。還有如果在Graphics support有看到支援您正在使用的VGA卡的FrameBuffer Device,例如我使用的S3 Savage support,記得要選成M或不選,不然您在boot的時候會跳過vesafb而啟用savagefb,這樣您在grub或lilo設的mtrr,ywrap會失效,所以會看不到bootsplash的效果,這似乎是因為mtrr,ywrap只適用於vesafb,這部份還尚需釐清。不過,在我測試的過程中,使用vesafb無法啟用硬體加速,所以在用mplayer播影片時,CPU使用率會呈現趨近100%,而且load average會飆高到7.x。但如果我使用savagefb播放,CPU使用率只會呈現約60%,而load average只有0.x。所以如果自認硬體配備非常好的話,可以考慮使用支援bootsplash的vesafb。

那要怎麼辨別您目前用的FramBuffer Device是哪一個?可以用dfbinfo或fbset確認,例如我正在使用savagefb,dfbinfo出現的訊息如下

fbset -i 出現的訊息如下

但是如果是用vesafb,則dfbinfo會出現

而fbset -i的訊息如下

安裝完Gentoo且kernel已經支援FrameBuffer後,再來需要裝一些其他包含freevo的packages,在此先分享我的make.conf內容

我在USE內容已經加入-X -gtk -gnome -qt -opengl -xv代表所有的packages基本上都不會用到Xlibs,並且我開啟了許多就我所知的codecs support,例如ffmpeg, win32codecs, real等。另外還加入了fbcon和directfb,代表我需使用FrameBuffer和DirectFB,其他不足的部分請依個人需求加入make.conf或設定在/etc/portage/package.*。

安裝 freevo

設定完make.conf後直接輸入emerge sync;emerge -pv freevo,先瞭解會裝哪些東西,確認沒問題後就直接emerge freevo,然後出門上班上課去,回家再看結果吧。

在我安裝的過程中發現media-video/mplayer會幫你裝上realplayer和gtk+,不過現在portage內的mplayer如果把real拿掉會變成mplayer無法支援real的codecs,即使/usr/lib/win32已經link到/usr/lib/real還是一樣會出現找不到適當codecs的錯誤,因為你下mplayer -vfm help會看不到realvid,要看的到realvid才不會出現錯誤,例如我出現的訊息如下

另外在裝到dev-python/pygame時會發生找不到X11/Xlib.h的錯誤,目前也找不到解決的方法只好勉強emerge x11-base/xorg-x11,然後pygame就沒問題了。freevo裝完後再把一些其他的packages裝一下吧,例如alsa-utils或其他你需要的等等。

基本設定

freevo的設定檔共有3個,/etc/freevo/freevo.conf, /usr/share/freevo/freevo_config.py, ~/.freevo/local_config.py,不過/usr/share/freevo/freevo_config.py不建議去修改,因為這算是~/.freevo/local_config.py的全域設定,所以要改/usr/share/freevo/freevo_config.py內的參數請修改~/.freevo/local_config.py。

freevo.conf

首先執行freevo setup來產生/etc/freevo/freevo.conf,產生完後記得看一下他寫進去的那些東西,基本上都可以修改,以下是我的/etc/freevo/freevo.conf內容

比較需要注意的地方是display, geometry, tv這三個參數,tv這最簡單,在台灣的就設成ntsc。再來geometry代表的是你進入freevo後的顯示解析度,最後是display,這個表示你video輸出使用的driver,也就是mplayer -vo可使用的driver,在我的系統我試過fbdev/fbdev2, directfb, vesa都沒問題。建議使用fbdev2,因為在我測試的結果,同樣的設定fbdev無法顯示中文字幕,而directfb的畫質感覺沒fbdev2來的好。至於fbdev和directfb有什麼差別我也不是很瞭解,我只知道fbdev/fbdev2是kernel的native module,不過並不支援硬體scaling?這部份不知有哪會長輩可以糾正小弟。

local_config.py

再來是~/.freevo/local_config.py,先cp /etc/freevo/local_conf.py ~/.freevo/local_config.py,再來參考/usr/share/freevo/freevo_config.py可改的參數來修改。這部份因為太多參數可以改,所以我僅列出我有修改的部份,其他詳細的參數設定說明請上 [WWW] freevo wiki 查吧。

先列出我改過的部份

另外有注意到CACHE_IMAGES這參數吧,沒錯,可以預先產生cache來加快瀏覽目錄檔案的速度,所以要進入freevo可先執行freevo cache,就會幫你產生cache到OVERLAY_DIR 設定的目錄。不過在使用freevo cache時我發生了無法轉碼的錯誤,原因是有些real檔案內含的metadata包含GB2312或BIG5,不過我將dev-python/mmpython更新到0.4.9後就沒這問題發生,可能0.4.9已修正了unicode問題。

automount

如果需要看DVD/CD片需要automount幫你自動mount光碟,在這邊我使用ivman,安裝方式也請參考 [WWW] ivman-howto

到目前為止基本上freevo應該已經可以啟動了,輸入freevo試試。

中文設定

中文選單

如果您已經能近入freevo系統真的非常恭喜您,不過由於目前freevo還沒辦法看的到中文目錄與檔案,所以需要做少部份的設定。要顯示中文要先有中文字型,非常幸運的,目前Linux中文系統推行的還算不錯,中文字型當然首推[WWW] 螢火飛長輩提供的AR PL New Sung。

freevo預設所使用的字型放在/usr/shares/freevo/fonts/,所以把fireflysung.ttf放到這邊來就可以了嗎?很可惜不是這樣,除了放過來還需要修改skins下有設定到<font>的.fxd檔,也就是說當你換skins就得自己改.fxd,這感覺好像很麻煩,有簡單一點方法嗎?剛好在freevo的maillist上看到有問到設定字型的問題,[WWW] 有人提供了一個非常簡單的方法就是把/usr/shares/freevo/fonts/所有的字型全都link到你要的字型,所以我的情況我只需

這樣就可以備份兼link到/usr/share/fonts/fireflysung/fireflysung.ttf。

字型有了再將LOCALE='UTF-8'加到~/.freevo/local_config.py,重新啟動freevo試看看,中文應該出現了。

中文字幕

有中文選單那字幕呢?不知道是我設定有問題還是?我一直無法讓mplayer吃到~/.mplayer/config,但是很奇怪的是直接在console下mplayer test.avi卻都沒問題,而且在MPLAYER_ARGS_DEF中加入-font=/usr/share/fonts/fireflysung/fireflysung.ttf似乎也不行,找了好久終於在/usr/lib/python2.4/site-packages/freevo/video/plugins/mplayer.py中發現這兩個參數OSD_DEFAULT_FONTNAME, OSD_DEFAULT_FONTSIZE,真是神奇這兩個參數竟然沒出現在官網文件中。將這兩個參數加入後,中文字幕就出現了。

其他設定

Plugins (待補)

freevo有蠻多 [WWW] plugins 可以用,不過太懶了這部份先不寫。

TV-OUT

NB直接透過功能鍵就可以TV-OUT,所以不用設定,改天換裝PC再來試試看。

遠端控制 (待補)

原本NB上的IrDA弄不出來,打算買個無線鍵盤或電腦搖控器來用就好。[WWW] ATI Remote Wonder 似乎是不錯的選擇,2.6.5之後的kernel已經有 [WWW] native module

結語

freevo其實是功能還算不少的HTC軟體,當然還是沒有MythTV來的強大,但是就一般使用者而言,這些功能已經非常足夠了。除此之外,freevo比起MythTV還具備一些優點,例如可以直接使用FrameBuffer,還有[WWW] 不用Mysql和QT等。不過freevo可能還是欠缺一些您認為非常重要的功能,可以到 [WWW] Freevo Wiki-WishList 留下您寶貴的意見提供development team參考。

References

  1. [WWW] http://freevo.sourceforge.net/

  2. [WWW] http://www.mythtv.org/

  3. [WWW] http://www.gentoo.org.tw/doc/?catid=install

  4. [WWW] http://freevo.sourceforge.net/cgi-bin/doc/Index

  5. [WWW] http://gentoo-wiki.com/HOWTO_ivman

  6. [WWW] http://opendesktop.org.tw/

  7. [WWW] http://sourceforge.net/mailarchive/message.php?msg_id=9881615

  8. [WWW] http://freevo.sourceforge.net/cgi-bin/doc/Plugins

  9. [WWW] http://shop.ati.com/product.asp?sku=2321579

  10. [WWW] http://gatos.sourceforge.net/ati_remote.php

  11. [WWW] http://www.linuxdevcenter.com/pub/a/linux/2005/01/27/freevo.html

  12. [WWW] http://freevo.sourceforge.net/cgi-bin/doc/WishList

last edited 2005-12-21 18:34:01 by PingYeh