compile ATi open source driver

最近opensource driver 在R6xx/R7xx 更新蠻多的
可是自從6.13.1釋出後,一直等不到新版出現

所以就打算自己動手編,怎麼編照理說應該不用特別寫出來
可是中間會碰到一兩個卡卡的地方,所以還是寫這篇做註記

1.必須要更新macros

git clone git://anongit.freedesktop.org/git/xorg/util/macros
cd macros

順便指定安裝位置(編譯時需要)

./autogen.sh --prefix=/opt/xorg
make install

然後再指定macros的安裝路徑

export ACLOCAL="aclocal -I /opt/xorg/share/aclocal"

2.編譯driver (注意紅字

git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati
cd xf86-video-ati
./autogen.sh --prefix=/usr
make
sudo make install

簡單安裝fglrx

ATi 昨天釋出Catalyst 10.6版
這版對Linux最大的變動在於使用Direct2D的Code來加強Compiz的效果(效能?)

過去我安裝官方版的都是先移除Ubuntu內建的,再重開機到recovery mode 安裝
今天找到一個簡易的方法,可以直接在X-Windows下直接操作

1.先備份原本的xorg.conf

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf-backup

2.將下載回來的Driver 作成deb檔
(記得ati-driver-installer-10-6-x86.x86_64.run 權限要改成可執行)

sudo ./ati-driver-installer-10-6-x86.x86_64.run --buildpkg Ubuntu/lucid

3.移除原有的驅動程式

sudo apt-get remove --purge fglrx-kernel-source xorg-driver-fglrx fglrx-modaliases libamdxvba1

4.安裝剛剛作好的deb檔案

sudo dpkg -i ./fglrx*.deb

此方法是參考自ubuntu官方討論區

安裝後感覺Compiz真的變很順了

DPMS is working?

上一篇提到KMS啟用後再啟用dypm(DPMS)在節能時會產生freeze的問題
更新到2.6.34 rc(drm-next)後,這個問題已經解決了
順道一提:2.6.34 正式版也快要出了

不過不能確認到底DPMS有沒有正常作用?
(沒有功率表、sensor、溫度計…等裝置可以測量)

Radeon HD 4670 待機10W,全速70W
有作用沒作用應該會明顯的反應到溫度上,可以確認的是’機殼、出風口溫度有變低’
(Radeon HD 4670沒有風扇控制功能,沒辦法從風扇轉速知道有無DPMS)

ATi hardware decode

今天花了一點時間再研究
mplayer-vaapi 的patch 為什麼會不能用在官方版本上

結果發現其中之一的patch寫錯 應該是 .c 的寫成 .h
修改了之後,就成功的編譯出可以硬解的mplayer

另外上次忘了說要硬解還需要background api support
所以除了libva,libva-dev外,還要安裝xvba,vdpau

如果不想編譯的話,這邊有我編的版本
mplayer-vaapi-100423 (AMD64 for K8-SSE3 above)

Hardware decode on Linux !

之前提到的ATi Hardware decode on Linux?

今天有機會可以使用fglrx看看硬解的效果如何
注意:要硬解ATi部份只能使用fglrx的driver,xorg-video-ati目前不行

1.首先準備環境:安裝libva1,libva-dev (請挑自己OS的版本)
2.下載解壓縮mplayer-vaapi (mplayer-vaapi-*-FULL)
用patch的方式編譯目前似乎有問題
3.按照readme寫的,進解壓縮的目錄下 執行 ./checkout-patch-build.sh
編譯好的mplayer 就在mplayer-vaapi下面
4.到 mplayer-vaapi下,執行./mplayer -vo vaapi -va vaapi 影片,就可以播放

可是目前播放似乎跟windows一樣畫面會破圖

沒破圖的話是這樣

問題應該是出在驅動程式上, windows可以透過驅動程式降級到9.12可以解決
L5.1 的影片 ref. frame = 5  會有問題,這跟驅動程式有一些關聯
每增進一些遊戲上的效能 在硬解方面的能力就會降低一些.

ubuntu 10.04 可能會碰到的問題

今天發現的問題

ubuntu 10.04 使用的linux kernel 是2.6.32
這個版本支援R700的UMS,不支援R700的KMS
但ubuntu 10.04 預設是使用KMS
如果手上的顯示卡是R700
使用ubuntu 10.04時就會發生xserver crash的現象

解決方法有兩種:
1.安裝2.6.33以後的linux kernel,繼續使用KMS
2.不要用KMS,改用UMS 繼續用2.6.32的kernel

How to turn back frome KMS to UMS

之前忘了寫,如果覺的KMS太慢或者bug問題
想要轉回UMS 只要

sudo gedit /etc/modprobe.d/radeon.conf

加入下面這一行 0 代表UMS,1 代表KMS)

options radeon modeset=0

然後

sudo update-initramfs -u

重開機後就變回UMS了
由於目前啟用KMS就不能使用Radeon HD 4670的動態節能
切回UMS可以支援節能,但是這個功能在R600、R700上使用有問題
有可能會造成當機,所以不管是KMS還是UMS 這項功能最好都關掉吧!

Section "Device"

	Option		"ClockGating"	"off"
#it could cause freeze on system
	Option		"DynamicPM"	"off"
#it could cause freeze on system
EndSection

目前R600、R700 節能的功能預計是在 Linux kernel2.6.35 完成
到時候sensor 應該可以偵測了,慢慢等今年夏天吧!

Previous Older Entries