UbuntuHelp:FixVideoResolutionHowto/zh

 

目錄

[隱藏]

[編輯]簡介

本文獻給屏幕分辨率或屏幕刷新頻率有問題(閃屏)的人,不管他們爲什麼碰到這樣的問題,一個可能的原因是你的硬件(顯卡/顯示器)沒有被系統正確的檢測。 一個解決方法對這個人有用而另一個方法對另一個人有用。我希望在這裏給出幾個不同的解決方法,按我曾經見過的問題出現的頻率和解決的成功率降序列出,那可能僅僅幫了很少人。希望可以通過這種方式爲每一個人提供一個答案。讓我們從最常見的解決辦法開始。 對ATI用戶我建議看看本頁底部的《ATI – 刷新頻率和分辨率快速設置》部分。

[編輯]重新運行自動檢測腳本

我不能保證這個方法對大部分人有用,但可以保證這是最快和最簡單的一個。我們要做的就是運行像你剛安裝完你的系統的時候一樣的腳本來試着檢測你的顯示硬件。有時候這確實有用,特別是當顯卡或顯示器和你安裝Ubuntu的時候不一樣的時候。運行如下的命令,如果你先輸入sudo -v打開了一個sudo會話的話,那麼你可以只是簡單的拷貝、粘貼下面的文本。

對Ubuntu 6.06(Dapper Drake):

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom
 sudo sh -c 'md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum'
 sudo dpkg-reconfigure xserver-xorg

將顯示一個配置頁面,問你是否想自動探測顯示硬件。選擇yes,接着你將等待一段時間接受自動檢測到的配置。完成後,關閉你打開的窗口和桌面上運行的程序,按CTRL-ALT-Backspace重啓桌面環境。你會被要求重新登錄GNOME界面,希望所有問題都解決了。如果沒有解決,嘗試下一個方法。

[編輯]未能識別的顯示器類型

用你熟悉的文本編輯器打開/etc/X11/xorg.conf。我假定你用nano做爲編輯器,因爲它很直觀。

sudo nano /etc/X11/xorg.conf

現在尋找Section “Monitor”項。一旦你找到這一項,看看是不是在Section "Monitor"項和EndSection之間的文本之間應該有分別以HorizSync和VertRefresh開頭的兩行。如果沒有這兩行,不用擔心,這說明我們可能已經發現問題了。 你得從你的顯示器說明書中、命令行或者從網上爲你的顯示器找到這兩段數據。用google搜索按你的顯示器型號去找,在Lapis論壇上也有很多型號的列表。 我們需要水平同步頻率(通常用kHz標示)和垂直刷新率(通常Hz標示)。這兩個數值通常是像下面給出範圍“30-98kHz”或者“50-160Hz”。 如果你的顯示器支持的話,你也可以運行如下的命令(如果不能運行,請安裝'xresprobe'包): sudo ddcprobe | grep monitorrange

返回數值的前面一對是你的HorizSync值(水平同步頻率),第二對是VertRefresh 值。 有兩種方法輸入你的顯示器信息到文件中,一種是運行下面的命令重新生成文件,運行中會要求你上面的兩段數值。

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom
 sudo sh -c 'md5sum /etc/X11/xorg.conf > /var/lib/xfree86/xorg.conf.md5sum'
 sudo dpkg-reconfigure -plow xserver-xorg

另一種方法只是簡單的用文本編輯器打開/etc/X11/xorg.conf 文件,添加上面的數據到文件中。 不過首先我們得備份一下這個文件以防錯誤的發生:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

加入兩行到xorg.conf文件的Section "Monitor"段中,例如,我的顯示如下。 注意:只是加入HorizSync和VertRefresh開頭的那兩行,不要改變任何原來的文本內容。我文檔中的這一小段只是個例子,你的硬件信息可能不是那樣的。更重要的是如果你的顯示器沒有被正確識別的話,它會被標成“Generic Monitor”(通用顯示器),這種情況下,不要改變任何另外的東西,否則圖形界面不會被裝載並報告不能找到顯示器。

Section "Monitor"
 Identifier "FLATRON 995F"
 Option "DPMS"
 HorizSync 30-96
 VertRefresh 50-160
 EndSection

現在保存文件,關閉所有打開的程序,按CTRL-ALT-Backspace重啓圖形界面. 如果一切正常,你將會被提示重新登錄你的系統。 注意:-如是你用的是XFree86那麼你就得編輯/etc/X11/XF86Config-4。 如果你在分辨率的下拉框中只找到800X600,那麼編輯Section“Monitor”中的Modes行,加入需要的分辨率可以解決這個問題。

SubSection "Display"
 Depth 24
 Modes "1024x768" "800x600" "640x480"
 EndSubSection

如果還是不能解決,把你用不着的分辨率刪除應該完全可以解決這個問題了。

[編輯]Intel圖形驅動 (i810)不能使用高分辨率

對Intel顯卡有一個普遍存在的問題就是雖然xorg.conf文件中加入了上面的內容,但是分辨率仍然不能使用。這經常出現在i810的顯卡上,但是更新的驅動上不存在這樣的問題。 安裝更新的Intel顯卡驅動 不幸的是,更新的驅動在6.10以後的版本(Edgy, Feisty等)中才有,但是6.06.1 (Dapper)中沒有。如果你有Edgy以後的版本,你可以用如下命令安裝更新的Intel顯卡驅動:

sudo apt-get install xserver-xorg-video-intel

然後編輯/etc/X11/xorg.conf 文件,把Driver i810"改爲Driver "intel"。你可以用如下命令編輯xorg.conf文件:

sudo nano /etc/X11/xorg.conf  或者sudo gedit  /etc/X11/xorg.conf

你也可以用GUI(圖形界面)編輯,方法如下: ALT+F2

gksudo gedit /etc/X11/xorg.conf

用舊i810驅動加915resolution 這個問題有時出現在裝有集成Intel圖形芯片的手提電腦上,這種電腦不具有標準分辨率。背景:好像Video Bios(vBios)已經把正確的分辨率傳給液晶顯示屏使其自動設置分辨率了,但是有時候分辨率沒有被正確的傳送並且導致正確的分辨率不能實現。 最好的解決是用“915resolution”軟件來解決,查看UbuntuHelp:i915Driver你可以在內存中用這個軟件覆蓋vBios設置來解決問題。這是915resolution軟件開發者的表述: “915resolution是一個可以修改Intel800,900系列圖形芯片的視頻BIOS的工具。” 在Ubuntu上安裝915resolution前確定你已經選擇了"universe"源和類型(在Breezy上用855resolution替代915resolution):

sudo apt-get install 915resolution

一旦程序安裝完成,你可以用這個程序列出可用的vBios模式:

sudo 915resolution –l

結果應該看起來像:

Intel 800/900 Series VBIOS Hack : version 0.5.2
 Chipset: 845G
 BIOS: TYPE 1
 Mode Table Offset: $C0000 + $269
 Mode Table Entries: 27
 Mode 30 : 640x480, 8 bits/pixel
 Mode 32 : 800x600, 8 bits/pixel
 Mode 34 : 1024x768, 8 bits/pixel
 Mode 38 : 1280x1024, 8 bits/pixel
 Mode 3a : 1600x1200, 8 bits/pixel
 Mode 3c : 1920x1440, 8 bits/pixel
 Mode 41 : 640x480, 16 bits/pixel
 Mode 43 : 800x600, 16 bits/pixel
 Mode 45 : 1024x768, 16 bits/pixel
 Mode 49 : 1280x1024, 16 bits/pixel
 Mode 4b : 1600x1200, 16 bits/pixel
 Mode 4d : 1920x1440, 16 bits/pixel
 Mode 50 : 640x480, 32 bits/pixel
 Mode 52 : 800x600, 32 bits/pixel
 Mode 54 : 1024x768, 32 bits/pixel
 Mode 58 : 1280x1024, 32 bits/pixel
 Mode 5a : 1600x1200, 32 bits/pixel
 Mode 5c : 1920x1440, 32 bits/pixel

如果你的屏幕分辨率沒有出現在上面列表中,你可以改寫你屏幕永遠用不到的數值。例如,如果你想修改mode 41爲2400X1600,編輯/etc/default/915resolution文件。

Ubuntu
 gksudo gedit /etc/default/915resolution
Kubuntu
 kdesu kate /etc/default/915resolution

你的文件應該看起來像:

#
 # 915resolution default
 #
 # find free modes by /usr/sbin/915resolution -l
 # and set it to MODE or set to 'MODE=auto'
 #
 MODE=41
 #
 # and set resolutions for the mode.
 XRESO=2400
 YRESO=1600

這保證了你的vBios mode 41啓動時X-windows初始化前在內存中被改寫了。現在你的分辨率可以使用了,以後你的系統重啓後vBios會自動被設置爲正確的分辨率。

[編輯]錯誤的默認色深設置

有時候自動圖形界面設置設置了一個你硬件不能正確處理的過高的色深值。如果你遇到的是這種情況,首先備份你的/etc/X11/xorg.conf文件。

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

現在打開你最熟悉的文本編輯器。我假設你現在用的是nano,它相對來說較容易使用,當然你可以使用你喜歡的任意一款文本編輯器。

sudo nano /etc/X11/xorg.conf

在文件中搜索關鍵詞DefaultDepth(注意這是一個單詞),Hoary設置的默認色深是典型的"24",但就如所說的,一些硬件不能使用那麼高的色深。十分安全的改變這個值爲16測試一下你的視頻問題是不是解決了。如果這個改變沒有解決任何問題,簡單的把它改回去就可以了。 一旦改變了DefaultDepth的值,保存文件,關閉桌面上所有程序,按CTRL-ALT-Backspace重啓圖形界面。如果一切順利,在進入GNOME時你會被提示重新登錄,希望可以用一個更高的色深。

[編輯]ATI – 刷新頻率和分辨率快速設置

對那些用ATI顯卡和fglrx驅動的人來說,試着在一個終端中運行:

sudo aticonfig

按照屏幕上的指示操作,重新啓動GDM後可以解決這個問題。 例如現在的一個設置:

1個普通顯示器
 沒有視頻輸出

我會運行下面的命令:

sudo aticonfig --initial --input=/etc/X11/xorg.conf
 sudo aticonfig --resolution=1600x1200,1280x1024,1024x768
 sudo aticonfig --force-monitor=crt1,notv

運行aticonfig命令後,你需要重啓GDM。 重啓GDM用下面的命令:

/etc/init.d/gdm restart

問題應該解決了。 如果你的GDM用了一個比你桌面高的分辨率,你可以滾動到本頁的底部看" GDM用了和我的電腦不同的分辨率"來解決問題。

[編輯]GDM看起來沒問題,但是Gnome看起來有問題

有點不一樣的是,這個問題存在於vanilla 5.10在虛擬機中的安裝。因爲這不是在一個一般的設備中,我通過如下命令在設置管理中把它設爲VESA,分辨率1024X768:

sudo dpkg-reconfigure xserver-xorg

確認你正確的配置了你的硬件。 這些設置允許GDM給出一個正常的登錄屏幕。但是,完成登錄導致顯示失敗。 修正這個問題,你可以以普通用戶運行gconf-editor工具並在Gnome's XML中修改設置註冊表,這等同於/etc/X11/xorg.conf設置:

startx gconf-editor

瀏覽編輯器中desktop/gnome/screen/default/%d ,%d這裏正確的應該是0.選擇這個模式改變成你選擇的分辨率,確定頻率也同樣適合你的顯示設備。 退出編輯器,嘗試再次登錄GDM。

 

[編輯]GDM用了和我的電腦不同的分辨率

這個問題是很容易解決的,按照如下方法: 1)備份一下你的xorg.conf

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

2)打開xorg.conf

gksudo gedit /etc/X11/xorg.conf

3)找到你的Screen項:

Section "Screen"

你會發現有若干項,類似:

SubSection "Display"
 Depth 24
 Modes "1280x1024" "1024x768"
 EndSubSection

GDM將用“Modes”行的第一個,所以改變它爲低一點或者高一點(請確認你的顯示器和顯卡都支持這個分辨率) 保存這個文件,關閉所有運行着的程序,重啓GDM(/etc/init.d/gdm restart);另一個方法是logout,在登錄屏幕處按Ctrl-Alt-Backspace。看看是不是一切運行正常了。 如果設定的顯示分辨率(比方說“1152x864”)不同於虛擬機的屏幕分辨率,在xorg.conf文件的Display分項中加入匹配的行:

Virtual 1152 864

如果這些改變沒有用,你可以用:

sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf

恢復你的系統到以前的狀態。

[編輯]你用的是nvidia驅動(二進制驅動)

當用nvidia驅動的時候, xorg似乎檢測不到可能存在的分辨率。 就我來說,我可以使用的唯一的分辨率就是我的LCD的內定的分辨率(1680X1050) 以下是你如何修正這點的方法: 1)像在上面例子中一樣備份一下你的/etc/X11/xorg.conf 。 2)打開/etc/X11/xorg.conf 3)添加下面的行到你的"Screen"項中:

Option "UseEdidFreqs" "false"

如果失敗了,試着運行下面的命令:

sudo nvidia-settings

Under Video Configuration 設置你的分辨率和刷新率,點擊apply(應用),然後保存X Config。

[編輯]結束

到此爲止,這是我收集的所有對這個問題的可能的解決辦法。如果上面沒有一個方法解決你的問題,考慮把你的問題貼到Ubuntu支持論壇上或者IRC上的#ubuntu IRC頻道 irc.freenode.net.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章