2012年8月19日 星期日

在 Fedora 安裝 NVIDIA 驅動程式與自動升降頻設定

安裝 Fedora 時,很多週邊的驅動都不需要安裝,使用起來也很順暢,是很省事。但是,若有安裝一些較高階的顯示卡時,只使用預設的「開放原始碼 (Open Source)」的驅動程式,是有些浪費,雖然可以使用 RPM Fusion (參考 "Fedora 一定要加裝的套件資料庫 – RPM Fusion") 提供的安裝套件。有時,它版本的更新有時稍微慢些,但是畢竟有高手參與封裝套件,也是蠻方便的。
    想要自己安裝,步驟如下:

1. 下載 NVIDIA 的驅動程式

這個步驟不需要 root 身份,如果已知版本,可以直接下載
[SiB@Celeron-D ~]$ wget http://tw.download.nvidia.com/XFree86/Linux-x86_64/304.37/NVIDIA-Linux-x86_64-304.37.run
Linux 若為 32 位元版本,則為
[SiB@Celeron-D ~]$ wget http://tw.download.nvidia.com/XFree86/Linux-x86/304.37/NVIDIA-Linux-x86-304.37.run
若對 NVIDIA 的顯卡型號與所要下載的驅動程式版本有疑問,還是用瀏覽器由官方網站下載比較不會弄錯。否則,接下來的步驟就白費了。

2. 切換成 root 身份

以下操作都需先切換成 root 身份,請參考 " 在 Linux 中,切換為 root 以操作系統 " 一文。

3. 安裝 Fedora 的相關套件

要自行安裝 NVIDIA 的驅動程式,Linux 也要再安裝幾個套件才行,
[root@Celeron-D ~]# yum install kernel-devel gcc
其中,"kernel-devel" 是用來編譯與 Linux 核心相關的必要套件,"gcc" 為 C 編譯器。
注意:以後再要安裝新版的 NVIDIA 時,此步驟可省略。

4. 安裝 NVIDIA 驅動程式

在這步驟的命令,是直接執行從 NVIDIA 下載的程式,路徑可能與你的不同,請稍加修正。
[root@Celeron-D ~]# sh /home/SiB/NVIDIA-Linux-x86_64-304.37.run
其中,"sh" 是用以執行另一個程式的命令處理器,用這個方式執行程式,不需要調整、修改所執行程式的模式。安裝期間有些問題詢問,除了第一個版權問題要改按 [Accept] 鈕,和第一次安裝時在問 「 ... X configuration file ...(…設定『視窗組態檔』…)」要按 [Yes] 外,通常是用預設答案即可。

5. 設定自動升降頻

安裝好 NVIDIA 的驅動程式後,將 NVIDIA 的設定程式啟動,檢查是否安裝成功。要特別檢查「GPU 0 - (GeForce . . .)」→「PowerMizer」這個項目,看自動升降頻是否正常動作。
以上圖為例,「Adaptive Clocking:」這項已經「Enable (啟用)」了,「PowerMizer Settings」的「PreferredMode:」也設成「Adaptive (自適應)」。暫時停止操作 (數秒至數十秒不等) 使畫面靜止不動,看「Performance Levels」的「Performance Level」是否會變動。
    若不會變動,則是此項功能未自動啟用,要自行加參數令其強制生效才行。
[root@Celeron-D ~]# gedit /etc/X11/xorg.conf
找到這段文字
Section "Device"
    . . . . .
    Driver         "nvidia"
    . . . . .
EndSection
加上這一列文字
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3333; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
其中,"PowerMizerEnable=0x1" 是啟用「PowerMizer」功能也就是節能。 "PerfLevelSrc=0x3333" 是設定調節模式,"0x" 後第一對 33 是使用「電池電源」時的設定,第二對 33 是使用「市電電源」時的設定,33 表示啟用變頻,固定不調頻改成 22。 "PowerMizerDefault=0x3" 是使用「電池電源」開機時的預設節電等級,3 最省電。"PowerMizerDefaultAC=0x3" 是使用「市電電源」開機時的預設節電等級,3 最省電。
修改後那一段文字將如下:
Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce Go 6150"
    Option         "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3333; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
EndSection
先登出再登入,不用重開機
再檢查看看,剛才的設定是否成功,若可順利自動調整頻率,就恭喜你了。

變頻調整動作:

不需擔心設定成變頻調整模式時,桌面系統反應會不順暢。當有需使用 3D 特效的程式啟動,驅動程式會立即將頻率調升至最高,之後每約 15 秒檢查一下,如不需高速運行,會逐級降頻。程式一有需要,仍會立即升頻。

已測試版本:

  • Fedora: 14, 17
  • GNOME: 2, 3

2 則留言:

  1. 当然要从 NVIDIA 官方网站下载驱动程式才安全,在『Manual Driver Search』那一栏,以笔者的 FX5200 为例,选项为 GeForce→GeForce FX 5 Series→Linux 64-bit→Chinese (Traditional)。
    因为要修改编译「核心模组」的脚本,及修改一个 C 程式档,所以原有驱动程式的安装不可以让它自动作业,要分段执行。
    第一步先解压缩,

    [SiB@Celeron-D ~]$ sh NVIDIA-Linux-x86_64-173.14.36-pkg2.run -x 这是啥意思
    要不要-x

    回覆刪除
    回覆
    1. 如果沒有加上『 -x 』,解壓縮完成後,會開始執行編譯、安裝等後續步驟,最後會將解壓縮後的『驅動程式原始碼』所在目錄清除。
        加上後,只會解壓縮,並保留解壓縮後的『驅動程式原始碼』所在目錄,接著程式結束。也就是說,你可以修改有『驅動程式原始碼』(當然只有部份而已)。後續的編譯、安裝步驟,就請參考發文。

      刪除

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)