工控網首頁
>

應用設計

>

工控解惑|英偉達顯卡適配難題?

工控解惑|英偉達顯卡適配難題?

不管你是來自國內,還是遠在海外的網友,只要給電腦適配 NVIDIA 顯卡,大概率會碰到那個經典難題:nvidia_drv.so 文件里找不到對應的符號,就像彈出個報錯提示:undefined symbol: noPanoramiXExtension,是不是看著就頭大?
咱先來瞅瞅論壇里各路網友的 “自救” 大招:
網友 A 那叫一個簡單粗暴,瘋狂下載安裝各種版本的 nvidia-driver,心里想著,“我多裝幾個,總有一個能行吧!”
網友 B 則把目光瞄準了 xserver,又是給它升級,又是讓它降級,嘴里念叨著 “肯定是兼容性搗的鬼”。
再看看 Archlinux 論壇這位網友,在標題為 [SOLVED] Nvidia driver not loading / Newbie Corner / Arch Linux Forums 的帖子里分享經驗,說自己在高手指導下設置了個環境變量 LD_BIND_NOW,這才把問題給摁住了。
不過說實話,雖說大家辦法各異,但有時候我忍不住吐槽,這些招啊,好多都治標不治本,越折騰越讓人迷糊,跟玄學似的。
得,咱不扯那些沒用的了,下面就好好講講到底該咋解決這個麻煩事兒。

給你們看看常見的錯誤場景:當你執行 nvidia-smi 指令,轉頭再去查看 X 的運行日志,保準會瞧見這么一行扎眼的報錯:Nvidia_drv.so : undefined symbol: noPanoramiXExtension。

2df71dded01d4093a80eeeff156de71e.png

a629ddf724d64b7396daf4b0dbdaf896.png

這錯誤在英偉達顯卡適配的時候頻繁冒頭,為啥會找不到符號呢?其實啊,是找不到 xserver 里的符號。這時候,就得鉆進 xserver 的源代碼里一探究竟。

6762ff0f8ab3487f97287c490f391ee3.png

耐著性子找啊找,嘿,在 os/utils.c 這個文件里發現了線索,旁邊還有個注釋寫著:/* Xinerama 是默認關閉的,除非通過 +xinerama 開啟 */,啥意思呢?就是說 xinerama 這個拓展功能,默認是關著的,沒開啟呢。

1d213e4897d040889edadbea996d7cce.png

那咱就動手把它打開,再重新編譯一遍。另外要注意,xserver 1.21 版本往上走,它會用 pkgconfig 來檢測系統里有沒有 xinerama,要是檢測到有,就自動幫你打開,是不是還挺智能?那咱就順著它的意思,先安裝 xinerama,在終端敲一行:dnf install libxinerama1。

60ca352b25cc4885906cd0654b3575a2.png

接著再回 xserver 代碼里瞅瞅,執行一下 menson build,這下妥了,該有的都有了。下一步,麻溜地編譯安裝:ninja && ninja install,完事重啟系統,輸入 reboot。

45e3aa0da9b5401f96327380874f4a7b.png

等系統重啟好,再去查看顯卡狀態,哈,Nvidia 驅動已經穩穩當當地適配好啦,是不是還挺有成就感?

ba23d8263fc640d1917b3511c0f23e2e.png

還有什么關于操作系統的疑問,可以隨時來我們網站交流切磋

也歡迎免費下載體驗咱的國產嵌入式操作系統

https://www.onewos.com/

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

工控解決方案|賦能新一代工業機器人的國產操作系統

工控獨家|基于實時linux的國產化PLC解決方案

工控聯盟|國科環宇成為高端裝備制造聯合實驗室初始成員單位

工控聯合|Linux與EtherCAT的硬實時解決方案

工控重磅|望獲實時Linux系統和創龍科技TL3562-MiniEVM開發板適配成功