工控網(wǎng)首頁
>

應(yīng)用設(shè)計

>

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

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

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

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

2df71dded01d4093a80eeeff156de71e.png

a629ddf724d64b7396daf4b0dbdaf896.png

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

6762ff0f8ab3487f97287c490f391ee3.png

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

1d213e4897d040889edadbea996d7cce.png

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

60ca352b25cc4885906cd0654b3575a2.png

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

45e3aa0da9b5401f96327380874f4a7b.png

等系統(tǒng)重啟好,再去查看顯卡狀態(tài),哈,Nvidia 驅(qū)動已經(jīng)穩(wěn)穩(wěn)當當?shù)剡m配好啦,是不是還挺有成就感?

ba23d8263fc640d1917b3511c0f23e2e.png

還有什么關(guān)于操作系統(tǒng)的疑問,可以隨時來我們網(wǎng)站交流切磋

也歡迎免費下載體驗咱的國產(chǎn)嵌入式操作系統(tǒng)

https://www.onewos.com/

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

提交

查看更多評論
其他資訊

查看更多

工控解決方案|賦能新一代工業(yè)機器人的國產(chǎn)操作系統(tǒng)

工控獨家|基于實時linux的國產(chǎn)化PLC解決方案

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

工控聯(lián)合|Linux與EtherCAT的硬實時解決方案

工控重磅|望獲實時Linux系統(tǒng)和創(chuàng)龍科技TL3562-MiniEVM開發(fā)板適配成功