本说明书描述了如何在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你需要微软的授权证书。


xqw3 于 2010-03-09 22:49:27发表:
学习