工控解惑|英伟达显卡适配难题?
- 关键词:国产操作系统,实时Linux,嵌入式操作系统
- 摘要:不管是国内网友还是国外网友,适配nvidia显卡,经常会遇到经典的nvidia_drv.so找不到符号的问题,例如: undefined symbol: noPanoramiXExtension。这是英伟达显卡适配过程中非常常见的错误,找不到符号,找不到谁的符号,那自然是xserver中的符号。虽然每个人的解决办法不同,很多时候我认为一点意义没有,最后,搞的越来越玄学!网友B的解决办法:哐哐xserver又是升级又是降级,说兼容性问题。网友A的解决办法:哐哐安装一堆nvidia-driver各种版本。
给你们看看常见的错误场景:当你执行 nvidia-smi 指令,转头再去查看 X 的运行日志,保准会瞧见这么一行扎眼的报错:Nvidia_drv.so : undefined symbol: noPanoramiXExtension。
这错误在英伟达显卡适配的时候频繁冒头,为啥会找不到符号呢?其实啊,是找不到 xserver 里的符号。这时候,就得钻进 xserver 的源代码里一探究竟。
耐着性子找啊找,嘿,在 os/utils.c 这个文件里发现了线索,旁边还有个注释写着:/* Xinerama 是默认关闭的,除非通过 +xinerama 开启 */,啥意思呢?就是说 xinerama 这个拓展功能,默认是关着的,没开启呢。
那咱就动手把它打开,再重新编译一遍。另外要注意,xserver 1.21 版本往上走,它会用 pkgconfig 来检测系统里有没有 xinerama,要是检测到有,就自动帮你打开,是不是还挺智能?那咱就顺着它的意思,先安装 xinerama,在终端敲一行:dnf install libxinerama1。
接着再回 xserver 代码里瞅瞅,执行一下 menson build,这下妥了,该有的都有了。下一步,麻溜地编译安装:ninja && ninja install,完事重启系统,输入 reboot。
等系统重启好,再去查看显卡状态,哈,Nvidia 驱动已经稳稳当当地适配好啦,是不是还挺有成就感?
还有什么关于操作系统的疑问,可以随时来我们网站交流切磋
也欢迎免费下载体验咱的国产嵌入式操作系统:
https://www.onewos.com/