天天看點

ubuntu安裝AMD私有顯示卡驅動

工作中遇到裝有A卡的筆記本運作startx後無法進入圖形桌面,好生頭痛<p>    手動運作startx,發現Xorg列印了大量錯誤,其中一條資訊如下:</p>
modprobe:Error:could not insert ‘fglrx’:Function not implemented      

        網上查了下,是AMD顯示卡驅動沒有裝上,于是下載下傳了amd驅動源碼編譯。我下載下傳的驅動源碼是fglrx.13.0,進入目錄後一般以root使用者直接運作./make.sh即可(可能遇到需要從fglrx13.0/patch/獲得更新檔檔案對fglrx打更新檔)。但是問題筆記本和我用的ubuntu的核心不是同一個,這時,編譯生成的fglrx.ko是無法再問題筆記本上運作的,分析他的makefile檔案(位于fglrx13.0/2.6.x/),他通過變量

KDIR=/lib/modules/$(KVER)/build      

指定核心源碼樹的位置,是以,對于要編譯生成不同核心版本的fglrx.ko,需要修改這個變量的路徑,使之指向正确的源碼樹。

KDIR=~/Desktop/linux-3.16.0      

編譯完後,将fglrx.ko檔案複制到問題機/lib/modules/`uname -r`//kernel/drivers/video下,然後運作depmod -ae,(通過modinfo fglrx.ko 發現fglrx.ko依賴于amd_iommu_v2.ko)。重新開機機器,還是有問題:

radeon 0000:01:00.0:Direct firmware load failed with error -2      

看架勢是radeon驅動加載固件時失敗了,百度找到下面連結:

​​About Firmware​​

按他的說法,固件應該不依賴核心,是獨立運作的二進制檔案,可以直接拷貝到/lib/firmware下使用。本着将信将疑的态度,嘗試着把ubuntu發行版中固件一股腦的拷貝到問題筆記本/lib/firmware下,然後開機startx後果然可以進入桌面!

    你以為,就這麼結束了?問題還曲折着!第二天開那問題機,居然又進不了桌面,這回又報錯:

drm: radeon_acpi_init Error: Cannot find a backlight controller      

​​Error: Cannot find backlight controller for radeon acpi graphics card​​

這個網址建議把kernel啟動項參數從"quiet splash" 改為"nomodeset"。阿門,暫時又可以了。順便來看下nomodeset是什麼意思:

Setting "nomodeset" disables KMS. Kernel Mode Setting (KMS) provides faster mode switching for X and console. 
It also provides native-resolution VTs on some laptops and netbooks which, prior to this, would use some standard mode, 
e.g. 800×600 on a 1024×600 panel.