歡迎您光臨本站 註冊首頁

VIA S3 UniChrome Linux 顯示驅動源代碼編譯指南-vivi整理

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

1.摘要

本說明書描述了如何在Fedora Core Linux 4/5/6編譯 VIA UniChrome family Linux顯示驅動程序源代碼,硬體視頻的mpeg2/4以及硬體視頻的疊加。其他的發行版本只支持2D,TV-OUT,硬體視頻的mpeg2/4以及硬體視頻的疊加。這份信息和源代碼文件提供了「AS IS」,以適合各種不同的情況。

2.安裝環境(kernel 2.6.X)
2.1 Xorg SDK RPM/DEB軟體包,Xorg源碼包。
Fedora Core Linux 4.0: xorg-x11-6.8.2-31.src.rpm
Fedora Core Linux 5.0: xorg-x11-server-sdk-1.0.1-8.i386.rpm
Fedora Core Linux 6.0: xorg-x11-server-sdk-1.1.1-47.fc6.i386.rpm
2.2 3D Mesa源文件rpm或者是安裝VIA DRI library的補丁包。
Fedora Core Linux 5.0: mesa-6.4.2-6.src.rpm
Fedora Core Linux 6.0: mesa-6.5.1-7.fc6.src.rpm
2.3 VIA unichrome family 顯示驅動版本:4.1.0072。
該驅動的源代碼包含3個檔案目錄:
via(頭文件,2D XServer 以及 V41驅動源文件)
VIA-WMILIB(mpeg動態鏈接對象代碼)
3D(VIA DRM/AGP/DRI 源文件和Fedora Linux Core 4/5/6的3D DRI 動態鏈接對象代碼)
Utility(VIA/S3G TV 公用顯示器)

3.按照下面的步驟編譯Xorg源:(只對於Xorg<7.0的情況)
*This step is only for Fedora Core Linux 4.
# rpm -ivh xorg-x11-6.8.2-31.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bc xorg-x11.spec
# cd /usr/src/redhat/BUILD/xorg-x11-6.8.2/
# mv xc/ /usr/src/
提示:根據你的系統情況,安裝需要1到2個小時的時間。

4.為VIA顯示驅動準備內核源,或者是重建內核(AGP)。
*The sample is default kernel in Fedora Core Linux 5.
# rpm -ivh kernel-2.6.15-1.2054_FC5.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild -bp kernel-2.6.spec --target=i686
# mv /usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 /usr/src/
# ln -sf /usr/src/linux-2.6.15.i686 /usr/src/linux
*The sample is default kernel in Fedora Core Linux 6.
# rpm -ivh kernel-2.6.18-1.2798.fc6.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild -bp kernel-2.6.spec
# mv /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386 /usr/src/
# ln -sf /usr/src/linux-2.6.18.i386 /usr/src/linux
註:根據系統情況,需要10到15分鐘的安裝過程。

5.修改「makefile」文件,以適合你系統的內核版本。
# vi /usr/src/linux/Makefile (make sure the "EXTRAVERSION" value
in Makefile is the same as OS kernel version "#uname -r".
e.g. "EXTRAVERSION= -1.2054_FC5" in FC5,
"EXTRAVERSION= -1.2798.fc6" in FC6)
# make modules_prepare (configure the run time settings of kernel source
by this command in /usr/src/linux folder)

6.使用一個腳本建立CLE266CN400CN-CX700CN800驅動,並且選擇「72」版本和CPU的類型。驅動的2進位文件將創建在/CLE266CN400CN-

CX700CN800XORG40072文件夾中。
# tar zxvf CLE266CN400CN-CX700CN800XORG40072-kernel-src_[date].tgz
# cd CLE266CN400CN-CX700CN800XORG40072-kernel-src_[date]/src
# ./makedriver drm (Other distributions only build 2D/MPEG driver
without the "drm" parameter)

7.手工編譯3D Mesa源以及一些VIA DRI 補丁。確認系統默認的mesa源碼包rpm準備就緒。用戶需要下載meas library,然後進行編譯。
*The sample is in Fedora Core Linux 5 (MesaLib 6.4.2).
# cp /usr/bin/makedepend /usr/X11R6/bin/ (Need "makedepend" binary tool)
# rpm -ivh mesa-6.4.2-6.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bc mesa.spec
# cd /usr/src/redhat/BUILD/Mesa-6.4.2/src/mesa/drivers/dri
# cp -a [Driver-Package-Name]/src/3D/DRI_FC5 via
# cd via
# make
# cp -a via_dri.so /CLE266CN400CN-CX700CN800XORG40072/XServer (Replace
the pre-compiled via_dri.so code )
註:這個過程需要10到15分鐘。

8.如果用戶想使用CN700,CX700(M/M2), VX700(M/M2), VN800 and CN800 IGPs的AGP特性(高性能),那麼用戶需要重建內核源以及安裝VIA的AGPGART的Fedora Core Linux 4/5/6補丁。「makedriver」腳本為內核源代碼樹複製了一些新的AGP文件。如果用戶跳過這一步,VIA驅動將使用PCI特性來工作。

The sample is in Fedora Core Linux 5.
# cd /usr/src/linux
# make; make modules_install
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.15-1.2054_FC5_VIA
# cd /boot/
# mkinitrd initrd-2.6.15-1.2054_FC5_VIA.img 2.6.15-1.2054_FC5
註:這個過程需要1到2個小時。
請確保用戶的IDE(DMA)功能可以在VT8237A/VT8251/CX700(M/M2)/VX700(M/M2)晶元上正常工作。如果不可以,請在重建內核之前打上IDE驅動補丁。

重新啟動計算機,新的內核將被建立。用「dmesg」命令在X 窗口終端檢查CN700/CX700(M/M2)/CN800/VN800/VX700(M/M2)的agpgart模塊的支持情況。
# dmesg | grep agpgart
agpgart: Detected VIA CX700 chipset
agpgart: AGP aperture is 128M @ 0x80000000
agpgart: Found an AGP3.5 compliant device at 0000:00:00.0.
apggart: X tried to set rate=x12. Setting to AGP3 x8 mode.
agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode
agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode

9.證實"via_drv.so", "libddmpeg.so", "via_v4l_drv.ko","via.ko", "via_dri.so", and "Utility"已存在。使用「install」腳本安裝這些

驅動以及VIA/S3G TV顯示。
# ./vinstall (select 1. VMI-ONLY path or 2. V4L path)
使用命令「lsmod」檢查該模塊是否載入成功。
如果用戶看見「via」和「via_v41_drv」模塊,則說明V4L驅動路徑載入成功。如果用戶選擇的是VMI-ONLY,那就只有「via」一個模塊。
注意:在Fedora Core Linux 4,有「videodev.ko」驅動。
它將取代系統默認的videodev驅動。
VMI-ONLY path is a non-kernel dependency way to enable the VIA 2D/3D/
HW MPEG/TV features.
其他的發行版本只有2個二進位代碼(via_drv.so和libddmpeg.so)

10.安裝依賴於DRI package的libraries還原包。
*This step is only for Fedora Core Linux 4.
# tar zxvf DRI-Xorg.tgz
# cd DRI
# ./minstall

附錄:Fedora Core Linux 4.0 dependency packages:
bash-3.0-31.i386.rpm
bison-2.0-6.i386.rpm
cpp-4.0.0-8.i386.rpm
expat-devel-1.95.8-6.i386.rpm
flex-2.5.4a-34.i386.rpm
fontconfig-devel-2.2.3-13.i386.rpm
freetype-devel-2.1.9-2.i386.rpm
gcc-4.0.0-8.i386.rpm
glibc-devel-2.3.5-10.i386.rpm
kernel-2.6.11-1.1369_FC4.src.rpm
libstdc++4.0.0-8.i386.rpm
libpng-devel-1.2.8-2.i386.rpm
ncurses-devel-5.4-17.i386.rpm
pam-devel-0.79-8.i386.rpm
rpm-4.4.1-21.i386.rpm
rpm-build-4.4.1-21.i386.rpm
xorg-x11-devel-6.8.2-31.i386.rpm
xorg-x11-libs-6.8.2-31.i386.rpm
zlib-devel-1.2.2.2-3.i386.rpm
Fedora Core Linux 5.0 dependency packages:
bash-3.1-6.2
bison-2.1-1.2.1
cpp-4.1.0-3
expat-1.95.8-8.2
flex-2.5.4a-37.4
fontconfig-devel-2.3.94-1
freetype-devel-2.1.10-5.2.1
gcc-4.1.0-3
glibc-devel-2.4-4
kernel-2.6.15-1.2054_FC5.src.rpm
libstdc++4.1.0-3
libpng-devel-1.2.8-2.2.1
ncurses-devel-5.5-19
pam-devel-0.99.3.0-2
rpm-4.4.2-15.2
rpm-build-4.4.2-15.2
xorg-x11-server-sdk-1.0.1-8
zlib-devel-1.2.3-1.2.1

imake-1.0.1-3
mesa-libGLU-6.4.2-6
mesa-libGLU-devel-6.4.2-6
freeglut-devel-2.4.0-4
libXp-devel-1.0.0-2.2
openmotif-2.3.0-0.1.9.2
openmotif-devel-2.3.0-0.1.9.2
mesa-6.4.2-6.src.rpm (MesaLib 6.4.2 source package)
Fedora Core Linux 6.0 dependency packages:
bash-3.1-16.1
bison-2.3-2.1
cpp-4.1.1-30
expat-1.95.8-8.2.1
flex-2.5.4a-41.fc6
fontconfig-devel-2.4.1-3.fc6
freetype-devel-2.2.1-10.fc6
gcc-4.1.1-30
glibc-devel-2.5-3
kernel-2.6.18-1.2798.fc6.src.rpm
libstdc++4.1.1-30
libpng-devel-1.2.10-7
ncurses-devel-5.5-24.20060715
pam-devel-0.99.6.2-3.fc6
rpm-4.4.2-32
rpm-build-4.4.2-32
xorg-x11-server-sdk-1.1.1-47.fc6
zlib-devel-1.2.3-3

imake-1.0.2-3
mesa-libGLU-6.5.1-7.fc6
mesa-libGLU-devel-6.5.1-7.fc6
mesa-6.5.1-7.fc6.src.rpm (MesaLib 6.5.1 source package)
註:在安裝操作系統以後,使用「rpm -qa | grep gcc」(rpm base) 或者 "dpkg -l | grep gcc" (deb base) 命令來核實系統是否安裝了上面的這些軟體包。

4. 安裝資料
  4.1 不要在CD的目錄下安裝程序

  (提示:就是不要cd到CD的掛載目錄下運行安裝程序)

  如果這樣做的話,就會在換CD時出現CD不能推出的問題,用下面的命令來安裝CD:

  wine /media/cdrom0/setup.exe

  4.2 需要用到「wine eject」

  如果安裝程序時你需要更換CD片,而系統卻說不能退出CD,那就打開一個新終端,輸入:

  wine eject d:

  4.3 安裝InstallShield的bug補丁

  這個補丁可以解決一些CD的安裝問題。

  4.4 使用uninstaller

  使用命令「uninstaller」來卸載安裝的程序,不要使用程序在菜單裡面創建的卸載快捷方式,因為他們有時候不能正常工作,而uninstaller可以。

  4.5 安裝.msi文件

  有些windows的安裝程序是使用msi來安裝的,那就用下面的命令來安裝:

  wine msiexec /i install.msi

  或者

  wine start install.msi

  4.6 不要安裝DirectX

  Wine有它自己的DirectX庫,安裝微軟的DirectX會破壞wine的DirectX庫和Wine。

  但是,d3dx9_##.dll和d3dx10_33.dll可以從Windows里複製過來使用,可能會在啟動某些遊戲時有所幫助。但是使用這些dll你需要微軟的授權證書。

[火星人 ] VIA S3 UniChrome Linux 顯示驅動源代碼編譯指南-vivi整理已經有627次圍觀

http://coctec.com/docs/linux/show-post-187527.html