升级xserver到1.4,关于pkg_config

本文记录了在Red Hat Enterprise Linux 5 (RH5)上为Intel 965GME芯片组配置双屏显示的过程。包括解决驱动不兼容问题、更新X server版本、编译安装自定义驱动等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近需要在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的正确做法是什么,应该会有脚本自己去解决依赖关系,然后自动完成编译吧,我这个方法似乎太傻了,不过,今天就到这里了,明天再重新编译下内核在看看......

<think>我们正在操作嵌入式开发板(如用户提到的imx6ull),通常使用Linux系统。用户希望永久设置环境变量PKG_CONFIG_PATH,添加路径/usr/local/lib/pkgconfig,并导出变量。根据引用[1][3][4],常见做法是修改shell配置文件(如~/.bashrc或/etc/bash.bashrc)来永久设置环境变量。由于是开发板,可能希望设置对所有用户生效(系统级)或仅当前用户生效(用户级)。这里我们按照用户级设置(~/.bashrc)来操作,因为开发板通常只有一个主要用户(如root或普通用户),但也可以根据需求选择系统级。步骤:1.使用文本编辑器(如vi或nano)打开配置文件。开发板上可能没有gedit,所以使用命令行编辑器(如nano或vi)。2.在文件末尾添加:exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH3.保存并退出编辑器。4.使用source命令使配置立即生效,或者重新登录。具体操作(假设使用nano编辑器,因为vi对于新手可能较难):注意:如果使用sudo,则修改的是root用户的配置;如果不加sudo,则是当前用户的配置。例如,为当前用户设置:```bashnano~/.bashrc```在文件末尾添加:```bashexportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH```然后按Ctrl+O保存,按Enter确认,再按Ctrl+X退出。最后执行:```bashsource~/.bashrc```如果希望系统所有用户生效(需要root权限):```bashsudonano/etc/bash.bashrc```同样添加上述export行,保存退出,然后执行:```bashsource/etc/bash.bashrc```注意:引用[4]中提到了四种方法,这里我们采用的是第一种:通过exportPKG_CONFIG_PATH来添加路径。验证:```bashecho$PKG_CONFIG_PATH```应该显示包含/usr/local/lib/pkgconfig。另外,引用[4]还提到了LD_LIBRARY_PATH,但用户只要求PKG_CONFIG_PATH,所以不需要设置。如果开发板没有nano,可以使用vi:打开文件:vi~/.bashrc按i进入插入模式,添加export行,按Esc退出插入模式,输入:wq保存退出。考虑到开发板资源有限,可能只有vi,所以也可以提供vi的操作步骤。因此,回答将包含两种编辑器的操作:nano和vi。</think>### 如何在嵌入式开发板命令行设置永久环境变量 #### 设置 PKG_CONFIG_PATH 环境变量的完整步骤: 1. **打开配置文件** ```bash nano ~/.bashrc # 用户级配置(推荐) # 或 sudo nano /etc/bash.bashrc # 系统级配置(需root权限) ``` 2. **添加环境变量配置** 在文件末尾添加: ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ``` ![环境变量配置示例](https://via.placeholder.com/600x200?text=export+PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH) 3. **保存并退出** - **Nano编辑器**: - 按 `Ctrl+O` → 回车确认保存 - 按 `Ctrl+X` 退出 - **Vi编辑器**: - 按 `Esc` → 输入 `:wq` → 回车 4. **立即生效配置** ```bash source ~/.bashrc # 用户级配置 # 或 source /etc/bash.bashrc # 系统级配置 ``` 5. **验证配置** ```bash echo $PKG_CONFIG_PATH # 应显示:/usr/local/lib/pkgconfig:... ``` #### 关键说明: 1. **路径选择**: - `~/.bashrc`:仅影响当前用户[^3] - `/etc/bash.bashrc`:影响所有用户[^4] - 推荐优先使用用户级配置 2. **变量语法**: ```bash export PKG_CONFIG_PATH=[新路径]:$PKG_CONFIG_PATH ``` - `:` 分隔多个路径 - `$PKG_CONFIG_PATH` 保留原有配置 3. **作用原理**: - `PKG_CONFIG_PATH` 帮助 pkg-config 工具查找 `.pc` 文件[^4] - 添加 `/usr/local/lib/pkgconfig` 使编译器能找到该路径下的库配置 4. **持久化机制**: - 每次登录 shell 时自动加载 `~/.bashrc` - 修改后需 `source` 立即生效或重启终端 #### 相关问题 1. **如何添加多个库路径到 PKG_CONFIG_PATH?** ```bash export PKG_CONFIG_PATH=/path1:/path2:$PKG_CONFIG_PATH ``` 2. **环境变量修改后编译仍然报错怎么办?** - 检查路径是否存在:`ls /usr/local/lib/pkgconfig` - 确认 `.pc` 文件权限:`ls -l /usr/local/lib/pkgconfig/*.pc` 3. **嵌入式系统没有 nano/vi 编辑器怎么办?** ```bash echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc ``` 4. **如何临时测试环境变量而不永久保存?** ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH # 仅当前终端会话有效 ``` 5. **LD_LIBRARY_PATHPKG_CONFIG_PATH 有什么区别?** - `PKG_CONFIG_PATH`:编译时查找库头文件和链接信息[^4] - `LD_LIBRARY_PATH`:运行时查找动态库[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值