升级xserver到1.4,关于pkg_config
2007-12-17 20:00
288 查看
最近需要在intel 965gme的芯片组上作dualhead的试验,于是安装了 RH5,结果发现RH5自带的驱动不支持965gme 里面的集成显卡,没办法,只好更新驱动,去intellinuxgraphics.org的网站上去下了最新的驱动,发现不能build过,该驱动使用了 pkg-config进行配置。我之前也没有注意到pkg-config,后来查了一些资料。原来pkg-config就是用来获取系统已经安装了的一些包的信息,比如头文件的位置,库文件的位置,已及编译时需要设置的一些标志等。默认的pkg-config的配置文件在/usr/lib/pkg-config下。
正准备编译刚下载的 driver,根据里面的readme,需要xserver 1.2以上,用X -version看下现在正使用的xserver,版本是1.1,看样子要更新xserver了 ,去www.x.org看看,发现xorg-server这个包有1.4版的了,干脆就升到最新的吧,下载过来,tar解压,./configure --prefix=/usr 发现缺少另外的包,又到x.org上下载相应的包来安装,再配置,又缺包,在下载,在编译.....,如此反复了好多次,不过好在,缺少的包在x.org上都能下到,它提示哪个就装哪个就好了。有点注意的是,比如在安装xrandr的时候,提示需要xrandr >=1.2.0,其实,它提示的xrandr是libxrandr,要到lib目录里面去下载,刚开始在这个地方奇怪了好久,也就是说他提示的名字如果是一个library的名字,也不会包含开头的lib。还有一点要注意的事,作./configure的时候,最好使用 --prifix=/usr,默认的是/usr/local,这样做的原因是系统本身自带的一些库就是在/usr下,使用这个参数可以将系统里面原来旧的覆盖掉。还有就是使用这个参数后,会把pkg-config的配置文件*.pc安装到/usr/lib/pkg-config下面,否则默认会安装到/usr/local/lib/pkg-config下,这时需要做export PKG_CONFIG_PATH=/usr/local/lib/pkg-config/:$PKG_CONFIG_PATH,才能让pkg-config找到这些非标准路径下的配置文件。因为我刚开使对pkg-config不熟,在这里也走了一下弯路。
好不容易将xorg-server编译成功,安装后,使用X -configure,结果产生了好多错误,一看原来xserver的那些驱动模块加载不上,abi版本不对,这些模块全部要重新编译,天哪,这下工程就大了,我干脆把/usr/lib/xorg/modules/下的 drivers和input目录重新命名,然后去x.org下了xf86-video-vesa-xxx.bz2,xf86-video-intel-xxx.bz2, xf86-input-keyboard-xxx.bz2,xf86-input-mouse-xxx.bz2,暂时就需要这几个吧,分别编译安装,后来发现在xorg.conf里面使用vesa 的 driver可以正常启动xserver,使用intel driver却不行,原来是RH5的kernel是2.6.18的,还没有965gme的agp驱动,看了下,要2.6.22以上的kernel才行,这下连内核都要重新编译了:(
还有个问题,刚才在启动xserver的时候,发现glx模块也无法加载,看样子,整个xserver及其下面的所有组件都要重新编译一次,哎,这样似乎太麻烦了,不知道升级xserver的正确做法是什么,应该会有脚本自己去解决依赖关系,然后自动完成编译吧,我这个方法似乎太傻了,不过,今天就到这里了,明天再重新编译下内核在看看......
正准备编译刚下载的 driver,根据里面的readme,需要xserver 1.2以上,用X -version看下现在正使用的xserver,版本是1.1,看样子要更新xserver了 ,去www.x.org看看,发现xorg-server这个包有1.4版的了,干脆就升到最新的吧,下载过来,tar解压,./configure --prefix=/usr 发现缺少另外的包,又到x.org上下载相应的包来安装,再配置,又缺包,在下载,在编译.....,如此反复了好多次,不过好在,缺少的包在x.org上都能下到,它提示哪个就装哪个就好了。有点注意的是,比如在安装xrandr的时候,提示需要xrandr >=1.2.0,其实,它提示的xrandr是libxrandr,要到lib目录里面去下载,刚开始在这个地方奇怪了好久,也就是说他提示的名字如果是一个library的名字,也不会包含开头的lib。还有一点要注意的事,作./configure的时候,最好使用 --prifix=/usr,默认的是/usr/local,这样做的原因是系统本身自带的一些库就是在/usr下,使用这个参数可以将系统里面原来旧的覆盖掉。还有就是使用这个参数后,会把pkg-config的配置文件*.pc安装到/usr/lib/pkg-config下面,否则默认会安装到/usr/local/lib/pkg-config下,这时需要做export PKG_CONFIG_PATH=/usr/local/lib/pkg-config/:$PKG_CONFIG_PATH,才能让pkg-config找到这些非标准路径下的配置文件。因为我刚开使对pkg-config不熟,在这里也走了一下弯路。
好不容易将xorg-server编译成功,安装后,使用X -configure,结果产生了好多错误,一看原来xserver的那些驱动模块加载不上,abi版本不对,这些模块全部要重新编译,天哪,这下工程就大了,我干脆把/usr/lib/xorg/modules/下的 drivers和input目录重新命名,然后去x.org下了xf86-video-vesa-xxx.bz2,xf86-video-intel-xxx.bz2, xf86-input-keyboard-xxx.bz2,xf86-input-mouse-xxx.bz2,暂时就需要这几个吧,分别编译安装,后来发现在xorg.conf里面使用vesa 的 driver可以正常启动xserver,使用intel driver却不行,原来是RH5的kernel是2.6.18的,还没有965gme的agp驱动,看了下,要2.6.22以上的kernel才行,这下连内核都要重新编译了:(
还有个问题,刚才在启动xserver的时候,发现glx模块也无法加载,看样子,整个xserver及其下面的所有组件都要重新编译一次,哎,这样似乎太麻烦了,不知道升级xserver的正确做法是什么,应该会有脚本自己去解决依赖关系,然后自动完成编译吧,我这个方法似乎太傻了,不过,今天就到这里了,明天再重新编译下内核在看看......
相关文章推荐
- 关于pkg-config和libtool的相关知识链接 200
- 关于pkg-config的使用示例
- 关于pkg-config与LD_LIBRARY_PATH与/etc/ld.so.conf文件的区别与作用
- [源码包编译]关于/etc/ld.so.conf、ldconfig、pkg-config、PKG_CONFIG_PATH的一篇文章
- Linux configure关于交叉编译的参数设置 (转)+补充一下关于 pkg-config 在交叉编译中的使用(转) + 动态.so库的环境设置, 使用 ld.so.conf(转)
- 使用pkg-config升级和切换glib库
- 关于Androidstudio版本升级导致项目打开停留在gradle构建解决
- INSTALL PKG-CONFIG FOR MAC OSX
- 关于iOS 蓝牙OAD升级
- Linux内核升级之制作initrd.img及其new-kernel-pkg(.sh)使用
- 关于MyBatis的配置文件SqlMapConfig.xml的标签说明
- 关于ccflow jflow 工作流引擎流程 标题生成规则的升级通告
- struts升级到最高版本后遇到的问题。关于actionmessage传递问题。
- struts升级到最高版本后遇到的问题。关于actionmessage传递问题。
- pkg-config ldconfig
- 【solr】关于solr schema.xml 和solrconfig.xml的解释
- 关于dbUtils升级的那些坑
- pkg-config的用法
- PKG_CONFIG_PATH变量 与 ld.so.conf 文件
- ld.so.conf 文件与PKG_CONFIG_PATH变量