北京国科环宇科技股份有限公司

【工控适配】望获Linux系统适配英伟达显卡

供稿:北京国科环宇科技股份有限公司
发布时间:2025/4/24 13:16:41

不管是国内网友还是国外网友,适配nvidia显卡,经常会遇到经典的nvidia_drv.so找不到符号的问题,例如: undefined symbol: noPanoramiXExtension。

先说下论坛里网友的解决办法:

网友A的解决办法:哐哐安装一堆nvidia-driver各种版本

网友B的解决办法:哐哐xserver又是升级又是降级,说兼容性问题。

Archlinux 论坛网友的解决办法:[SOLVED] Nvidia driver not loading / Newbie Corner / Arch Linux Forums

Archlinux这个网友最后通过高人指导设置了一个环境变量:LD_BIND_NOW。

虽然每个人的解决办法不同,很多时候我认为一点意义没有,最后,搞的越来越玄学!

接下来我们就讲解下如何解决。

常见的错误例如:

执行nvidia-smi

2df71dded01d4093a80eeeff156de71e.png查看X的log后发现:

a629ddf724d64b7396daf4b0dbdaf896.pngNvidia_drv.so : undefined symbol: noPanoramiXExtension

这是英伟达显卡适配过程中非常常见的错误,找不到符号,找不到谁的符号,那自然是xserver中的符号。那么我们去xserver的源代码中看:

6762ff0f8ab3487f97287c490f391ee3.png耐心找定义,发现在os/utils.c中:

1d213e4897d040889edadbea996d7cce.png并给出注释:/* Xinerama is disabled by default unless enabled via +xinerama */

意思是xinerama拓展功能默认关闭,所有没有打开。我们打开它,重新编译。另外xserver 1.21版本 以上使用了pkgconfig的方式来检测系统是否包含xinerama,如何检测到会自动打开,那接下来就简单了,安装xinerama:
60ca352b25cc4885906cd0654b3575a2.pngdnf install libxinerama1

再去xserver代码中查看,执行menson build

45e3aa0da9b5401f96327380874f4a7b.png果然找到了,接下来直接编译安装:

ninja  && ninja install

reboot

系统重启后,查看状态:

ba23d8263fc640d1917b3511c0f23e2e.pngNvidia驱动已经正确适配。

如需了解更多信息,请访问 (北京国科环宇科技股份有限公司)官网 https://www.ucas.com.cn/

关键词:实时操作系统,嵌入式操作系统,Linux

联系我们

桌面版

北京国科环宇科技股份有限公司
地 址:北京市海淀区知春路甲63号北京卫星制造厂51号(卫星大厦)16层
邮 编:
电 话:82122848
传 真:
网 址:https://www.ucas.com.cn/
E-mail:sales@ucas.com.cn
联系人:

工控宝
您的贴身工控百宝箱!

点击下载