ATI
因為許可協議的緣故, ATI 驅動並不能被整合進 openSUSE 發行版內。而這篇教學將幫助你正確地安裝ATI驅動。如果你的 ATI 是 ATI Radeon XPress 200M, 或這篇說明在你的系統操作失敗, 請參考ATI Radeon Xpress. |
簡單方法
用簡單方法來安裝有專利的驅動有"簡單"和更新kernel時不需要重新編譯kernel模組的好處。請注意很多較舊版本的 ATI 顯示卡對於標準免費的驅動有很好的支援。如果你有這樣的一張顯示卡, 考慮繼續沿用該驅動。
不幸的是, AMD 並不建議使用任何 非-HD 的顯示卡使用 10.3 的 8.41.7 版的 fglrx,這驅動程式已知無法運作在 AGP 4 代和 5 代的 radeon 系列(像是 AGP x700, x1300, x1600 等等)
openSUSE 10.3
您可以使用單鍵安裝,這樣會安裝最新版本的 fgrlx:
- 安裝 8.42.3 或更新版的驅動程式
- 安裝 8.40.0 ATI 驅動程式 (有人建議使用 8.40.0 版效能會較好)
- 開啟終端機然後輸入 "sudo aticonfig --initial"。 這將設定 X 使用 ATI 驅動程式。
- 使用 CTRL+ALT+BACKSPACE 重新啟動 X 視窗管理員。這將花上 2-20 秒。另一種方法,您可以重新啟動 openSUSE。
- 跳過以下所有步驟,您可以開始使用 openSUSE 了!
參考 http://www.ati.com/online/rss/atilinuxdriver.rss?OTC-rssfeedlinux 的相容性列表。
openSUSE 10.3, 10.2, 10.1
步驟 1 - 加入安裝來源
{在 10.3 中,加入套件庫的名稱已改為 'Software Repositories' (軟體套件庫) Marc..}
Version: 10.3
|
http://www2.ati.com/suse/10.3 |
Version: 10.2
|
http://www2.ati.com/suse/10.2 |
Version: 10.1
|
http://www2.ati.com/suse/sle10 |
請注意上面的 URL 無法使用網頁瀏覽器瀏覽,您必須使用 YUM/REPO-MD 相容的套件管理員。
步驟 2 - 安裝套件
開啟一具備 root 權限的終端機, 並根據您系統的版本安裝以下兩個套件:
Version: 10.3
|
zypper install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'` |
Version: 10.2
|
yast2 --install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'` |
Version: 10.1
|
yast2 --install x11-video-fglrx ati-fglrx-kmp-`uname -r | awk -F"-" '{print $NF}'` |
步驟 3 - SaX2
開啟一具備 root 權限的終端機, 執行:
sax2 -r
步驟 4 - 重新啟動 X
登出您的桌面並登入來重新啟動 X server, 或者, 使用更大膽的方法: Ctrl+Alt+Backspace。
步驟 5 - 檢查是否正常運行
開啟一終端機, 執行:
glxgears
困難方法
用困難方法安裝的好處是您總是能使用最新版本的驅動。
Disclaimer
感謝那些寄 email 讓我知道他們憑著這篇教學, 讓他們的驅動能正常運行的人。如果您在安裝時有疑問, 寄封email給我, 我將盡快給您回覆。
如果您有任何問題, 關心的事項, 或批評意見, 請在這給我您的想法 here.
--Nick
32-bit 使用者
照著教學作前, 請確定您已經安裝下列的套件:
- kernel-source
- qt3
- compat
- compat-libstdc++
- libstdc++
- libstdc++-devel
- libgcc
- xorg-x11-libs
- xorg-x11-devel
- Mesa
- Mesa-devel
- fontconfig
- fontconfig-devel
- expat
- freetype
- freetype2
- freetype2-devel
- zlib
- zlib-devel
- gcc
注意: libdrm 必須為 2.3 的版本 --StephaneZ 18:52, 11 March 2007 (UTC)
通過 YaST 來檢查您 Kernel-default 和 Kernel-source 套件的版本號碼, 兩者必須是相同的, 如果沒有, 使用 YaSY 來更新最新的kernel。
64-bit 使用者
在照著教學作之前, 請確定你已經安裝以下 32-bit 的套件, 和在上個 32-bit 欄位內所列相對應的 64-bit套件 :
- kernel-source
- compat-32bit
- qt3-32bit
- libstdc++
- libgcc
- xorg-x11-libs-32bit
- xorg-x11-devel-32bit
- Mesa-32bit
- Mesa-devel-32bit
- fontconfig-32bit
- expat-32bit
- freetype2-32bit
- zlib-32bit
- gcc
注意: libdrm 必須為 2.3 的版本 --StephaneZ 18:52, 11 March 2007 (UTC)
非必要 - Install Xorg 7.2 Final
如果您使用 openSUSE 10.2 或者您想要更新 X 的版本到7.2, 跟著下面的步驟作, 然後繼續照著正常的步驟安裝。
openSUSE 10.2 已經安裝 Xorg 7.2 RC2
。您可以繼續沿用, 但大部分的使用者喜歡有最終釋出的版本, 所以在這, 將不在贅言如何取得最終的釋出。
注意: 最新的 ATI 驅動並不支援 Xorg 7.2。 它只能支援7.1.1和更舊的版本。(指 8.35.x 或更舊版本)
注意: 可用於 Xorg 7.2 的 ATI 驅動程式已經可以取得, 專為 HD 2xxxx 顯示卡的 8.41.7 可在此 (下載),以及為其他型號(包含 (Mobility) FireGL,已在我的筆記型電腦上測試)的 8.40.4 可在此(下載) --Divinespear 14:55, 10 October 2007 (UTC)
警告: 8.41.7 驅動程式在舊的顯示卡上會有問題。請參閱上面的簡單方法。 --Divinespear 14:59, 10 October 2007 (UTC)
額外注意: 驅動的最新版本 (至少對於 64-bit 的驅動)並沒有在主要的 ATI Linus driver 頁面中出現(http://ati.amd.com/support/drivers/linux64/linux64-firegl.html)。 最新的版本可能能在'之前釋出'的網頁: http://ati.amd.com/support/drivers/linux64/radeonprevious-linux64.html 中找到,
在 2007/6/15 當時, 最新的 May driver發表, 其安裝指導提到它在 "XOrg 6.7, 6.8, 6.9, 7.0 7.1 or 7.2;" 應能正常運作。然而, 這篇教學的作者尚未讓它能運作。
經由 YaST
在 YaSY 裡, 只要加入這套件庫到安裝來源。
type: http (if this doesn't work change it to ftp) server: ftp.skynet.be directory: /pub/software.opensuse.org/xorg72/openSUSE_10.2/
現在, 開啟 Install Software, 選擇 Install from Source, 並選定先加入的來源。更新所有較舊版本的套件, 或者就只更新 Xorg 這東西。
經由 Zypper
步驟 1 - 加入來源
# zypper service-add http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ Xorg72 Determining http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ source type... http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ is type YUM Added Installation Sources: [x]* Xorg72 (http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/)
步驟 2 - 更新來源
# zypper refresh ... ... ... Refreshing Xorg72 URI: http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ DONE ... ... ...
步驟 3 - 更新系統
注意:這將更新所有釋出新版本的系統套件。
# zypper update --type=package --no-confirm --skip-interactive [到 Starbucks 逛逛並喝個咖啡休息一會再繼續 ]
注意:在2007/5/5, 官方的ATI驅動並不支援 Xorg 7.2 和以上的版本(driver version 8.36.5) (source?)Change log indicates support as of 8.33.6
注意: 在上面也提供了一個簡單 libdrm version 2.3 的存取。 --Ginnsu 01:39, 21 March 2007 (UTC)
建議 - 為新的驅動程式準備核心
這個步驟並不是必須的, 但做了也沒任何的損害。如果在您之前已經嘗試過安裝 ATI 驅動, 那麼在正式安裝步驟之前, 確定下列的步驟您已經先完成了。
在 X 打開終端機, 並執行下列的命令:
# su password # cd /usr/src/linux # make mrproper # make cloneconfig # make modules_prepare # make clean
如果在之前曾安裝過驅動, 那個請繼續下列的命令, 如果沒有, 請跳過此步驟。
執行這些指令來正常的清除之前的驅動:
# rpm -e $(rpm -qa | grep fglrx)
現在, 可以繼續下去了
安裝 - 取得並安裝 ATI 顯示卡驅動
現在,您可以像這樣使用在 www2.ati.com 的 YUM 套件庫:
YaST -> 軟體 -> 安裝來源 -> 新增
通訊協定: http 伺服器名稱: www2.ati.com 伺服器上的目錄: suse/10.2
來加入 ATI http 伺服器當作額外的安裝來源。
現在, 到
YaST -> 軟體 -> 安裝移除程式
來安裝 ATI/fglrx 驅動。選擇以下的套件:
x11-video-fglrxG01 ati-fglrxG01-kmp-<kernel-flavor>
<kernel-flavor> 決定於您自身系統安裝的kernel。用 "uname -r" 來確認已安裝的是 default/smp/bigsmp kernel。 使用 "sax2 -r" 來設定 X.Org 。
或者
您可以照著下面的教學來手動的產生和安裝驅動套件...
步驟 1 - 取得最新的 ATI 驅動程式
請到 ATI 的官方網站下載安裝程式
注意: 針對 32-位元 Linux 的最新與之前的驅動程式可以在 這個 ATI 網頁上找到。
步驟 2 - 產生針對不同發行版本的驅動程式套件
使用 root 身分執行安裝程式。
# sh ati-driver-installer-8.37.6-x86.x86_64.run --listpkg
或是,您可以用這個偷懶的方法
# sh ati*.run --listpkg
這將列出您可以建構的驅動程式的發行版本:
SuSE/NLD9-IA32 SuSE/SLES9-IA32 SuSE/SUSE91-IA32 SuSE/NLD9-AMD64 SuSE/SLES9-AMD64 SuSE/SUSE91-AMD64 SuSE/SUSE100-IA32 SuSE/SUSE92-IA32 SuSE/SUSE93-IA32 SuSE/SUSE100-AMD64 SuSE/SUSE92-AMD64 SuSE/SUSE93-AMD64 SuSE/SLED10-IA32 SuSE/SLES10-IA32 SuSE/SUSE101-IA32 SuSE/SLED10-AMD64 SuSE/SLES10-AMD64 SuSE/SUSE101-AMD64 SuSE/SUSE102-IA32 SuSE/SUSE102-AMD64 SuSE/SUSE103-IA32 SuSE/SUSE103-AMD64
現在執行下面命令並在後面加上您的發行版本:(以 openSUSE 10.3 32-位元為例)
# sh ati*.run --buildpkg SuSE/SUSE103-IA32
64-位元的使用者執行:
# sh ati*.run --buildpkg SuSE/SUSE103-AMD64
ATI 的驅動安裝程式為為您的系統建立一個驅動程式套件,放在:
/usr/src/packages/RPMS/i386
如果您是使用 64-位元版本,它將放在
/usr/src/packages/RPMS/x86_64
步驟 3 - 安裝驅動程式套件
如果您運行在 runlevel 5,以 root 的身分在任一個 console 輸入下面指令切換到 runlevel 3 (您可以按 Ctrl-Alt-F1 [F1 到 F6]) 或您可以在 X 的 console 中執行 init 3
。
# init 3
這樣將關閉 X 並帶您回到 TTY 1
登入並切換到包含驅動程式套件的目錄。
# cd /usr/src/packages/RPMS/i386
64-位元使用者
# cd /usr/src/packages/RPMS/x86_64
安裝驅動程式套件
# rpm -Uvh fgl*.rpm
在安裝完成之後,您需要執行 aticonfig 工具
# ldconfig # aticonfig --initial --input=/etc/X11/xorg.conf
注意: 如果您之前曾嘗試安裝任何 ATI 驅動程式,rpm 的移除命令無法將安裝檔案從上述目錄中移除,您必須手動移除它們或輸入完整的檔名,否則您會遭遇到檔案衝突的函式庫錯誤.. --davetharrison 10:44, 25 April 2007 (GMT)
驅動程式已安裝了,現在進入步驟 4。
步驟 4 - 設定新安裝的 ATI 驅動程式
在您安裝完驅動程式之後現在需要做些設定。當您完成安裝驅動程式後,請執行此命令。
# sax2 -r -m 0=fglrx
這會強迫 sax2 使用 fglrx 的驅動程式。請設定您的螢幕解析度然後儲存並離開
注意:
如果 sax2
得到全黑的螢幕,試試下面的方法,若還是無效,請照著疑難解答的章節步驟做。
注意:
最新的 ATI 驅動程式使用在某些 x1000 系列的顯示卡上( x1400, x1600, x1600 pro)會有問題:
載入驅動程式時,如果 sax 停止,而且您在 /var/log/SaX.log 裡找到像是這樣的訊息:
(EE) fglrx(0): PreInitDAL failed (EE) fglrx(0): PreInit failed
那麼您必須 在 console 裡停用 framebuffer.
編輯 /boot/grub/menu.lst
並在 kernel 行中移除 vga=xxx
的敘述。
請參閱 https://bugzilla.novell.com/show_bug.cgi?id=222993
sax2 將啟動它的 X 設定程式。您可以在此做更多的調整。
停用 Composite 擴充
啟用 Composite 擴充在某些情況下會停用 ATI 驅動程式對 DRI 和 3D 加速的支援。
注意: 如果您計劃要使用 Beryl (在本教學後面會提到),請不要進行此步驟。
解決方案: 要停用 Composite 擴充,編輯/新增下面幾行到 /etc/X11/xorg.conf
檔案的最後:
Section "Extensions" Option "Composite" "false" EndSection
注意: 很明顯的此預設值為啟用,所以只移除此行來停用 Composite 將無效。此設定需要直接明白的設成 false。
其他在 xorg.conf 中的重要設定
要讓 fglrx 驅動程式得到最佳及最穩定工作效果,在 xorg.conf 中的 "Device" 段落中設定下列參數:
Option "BlockSignalsOnLock" "on" Option "KernelModuleParm" "locked-userpages=0" Option "OpenGLOverlay" "off" Option "UseFastTLS" "2" Option "UseInternalAGPGART" "no" Option "VideoOverlay" "on" Option "mtrr" "off" Option "no_accel" "no" Option "no_dri" "no" Option "EnablePrivateBackZ" "no" Option "backingstore" "true"
其中 UseFastTLS "2" 是一個很重要的參數。在安裝完 fglrx 後,執行 glxgears 5 分鐘然後切換到 console 10(Ctrl-Alt F10),是個不錯的主意。如果您在 console 10 看到任何關於 fglrx 和 kernel context 0 的錯誤,這個值 "2" 將對您有些幫助。這個初始值是被調整成 "0" - 很明顯的這有點冒險。我這是從我的 Radeon 9600XT 得到的經驗。
步驟 5 - 重新開機/殺掉 fglrx 然後重新啟動 X
如果您想要知道目前為止您的努力是否成功,您得要確認不會有任何舊的 fglrx 驅動程式還在運作。 所以您必須要重新開機或,較快一點的,只要卸載正在運作的 fglrx:
# lsmod | grep fglrx
如果上面這個指令有任何輸出,您必須作 rmmod fglrx 來移除舊的模組。然後您可以再次重新啟動 X11,已存在的最新模組會被載入,在 xorg.conf 中的最新設定也會被讀入。
如果有任何情況讓您無法卸除模組,您可以重新開機
# reboot
進行上面兩項措施的任一項後,您應該可以讓 3D 運作了。
測試
確認您正運行 ATI 的 3D 驅動程式而非 MESA,在 X 中的 console 執行這個命令。
glxinfo
結果應看起來像這樣:
quiksilver:~> glxinfo name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer client glx vendor string: ATI client glx version string: 1.3 client glx extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_ARB_get_proc_address, GLX_SGI_video_sync, GLX_ARB_multisample, GLX_ATI_pixel_format_float, GLX_ATI_render_texture GLX extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_ARB_multisample OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X850 PRO Generic OpenGL version string: 2.0.6286 (8.33.6) OpenGL extensions: GL_ARB_multitexture, GL_EXT_texture_env_add, GL_EXT_compiled_vertex_array, GL_S3_s3tc, GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_multisample, GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects, GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_blend, GL_ARB_vertex_buffer_object, GL_ARB_pixel_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ARB_draw_buffers, GL_ATI_draw_buffers, GL_ATI_element_array, GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader, GL_ATI_map_object_buffer, GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_ATI_vertex_array_object, GL_ATI_vertex_attrib_array_object, GL_ATI_vertex_streams, GL_ATIX_texture_env_combine3, GL_ATIX_texture_env_route, GL_ATIX_vertex_shader_output_point_size, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_texgen_reflection, GL_EXT_texture3D, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_EXT_vertex_shader, GL_HP_occlusion_test, GL_NV_blend_square, GL_NV_occlusion_query, GL_NV_texgen_reflection, GL_SGI_color_matrix, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays glu version: 1.3 glu extensions: GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat ---------------------------------------------------------------------- 0x23 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x24 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x27 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x28 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x2b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x2c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x2d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x2e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x2f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x30 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x31 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x32 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x33 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x34 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x35 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x36 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x37 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x38 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x39 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x3a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x3b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x3c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x3d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x3e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x3f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x40 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x41 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x42 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x43 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x44 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x45 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x46 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x47 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x48 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x49 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x4a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x4b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x4c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x4d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x4e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x4f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x50 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x51 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x52 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x53 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x54 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x55 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x56 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x57 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x58 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x59 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x5a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x5b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x5c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x5d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x5e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x5f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x60 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x61 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x62 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 6 1 None
注意裏面所說的是:
OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X850 PRO Generic OpenGL version string: 2.0.6286 (8.33.6)
而非:
OpenGL vendor string: Mesa project: www.mesa3d.org OpenGL renderer string: Mesa GLX Indirect OpenGL version string: 1.2 (1.5 Mesa 6.5.1)
這就是您正運行在 3D 模式的證明。
如果您的 OpenGL vendor 這行是: Mesa project... 請照著疑難排解的步驟做。 如果您在這行確定得到了 ATI,下面還有一些測試要做。
另一個要檢查的命令是:
fglrxinfo
要測試 3D 執行:
fgl_glxgears
這裡是我的測試結果:
quiksilver:~> fgl_glxgears Using GLX_SGIX_pbuffer 4217 frames in 6.0 seconds = 702.833 FPS 4465 frames in 5.0 seconds = 893.000 FPS 4705 frames in 5.0 seconds = 941.000 FPS 5775 frames in 5.0 seconds = 1155.000 FPS 6706 frames in 5.0 seconds = 1341.200 FPS 6443 frames in 5.0 seconds = 1288.600 FPS 7914 frames in 5.0 seconds = 1582.800 FPS 6078 frames in 5.0 seconds = 1215.600 FPS 6561 frames in 6.0 seconds = 1093.500 FPS
恭喜您現在已成功的安裝驅動程式並正確運行 3D!如果您尚未成功,照著疑難排解的步驟作。
使用 ATI 提供的最新驅動程式 (8.42.3 of November 21st, 2007) fgl_glxgears 剛開始無法正常運作。 原因是有兩個版本的 libGL.so.1.2 安裝在系統中,一個是從 fglrx 而來,放在 /usr/X11R6/lib ,而另一個是從 Mesa 來,放在 /usr/lib。 這個問題可以用下面方法解決: 切換到 runlevel 3 (init 3),到 /usr/lib,刪除 libGL.so.1.2 (只要刪除這一個!) 然後建立一個軟連結到 fglrx 提供的函式庫: ln -s /usr/X11R6/lib/libGL.so.1.2 /usr/lib/libGL.so.1.2。 完成後, fgl_glxgears 應該就可以工作了。
疑難排解
如果 sax2
凍結或變黑,或您在 OpenGL vender 字串得到的是 Mesa,請依照下面步驟:
確認您已經升級到 libdrm 版本 2.3 --StephaneZ 18:52, 11 March 2007 (UTC)
首先檢查您的 sax 紀錄,它在 /var/log/SaX.log
,看看發生的什麼錯誤導致螢幕變黑當掉。
也檢查一下 Xorg
的紀錄檔 /var/log/Xorg.0.log
,看看關於 fglrx
模組的錯誤。
>cat /var/log/Xorg.0.log | grep "(EE)"
疑難排解 - 步驟 1
切換到 runlevel 3 執行下面命令:
# cd /usr/src/linux # make mrproper # make cloneconfig # make modules_prepare # make clean
正確的移除之前的驅動程式,執行此命令:
# rpm -e $(rpm -qa | grep fglrx)
疑難排解 - 步驟 2
執行下面命令,重新安裝驅動程式:
# rpm -Uvh --force fgl*.rpm
疑難排解 - 步驟 3
使用 ldconfig
和 aticonfig
來設定 xorg.conf
,執行:
# ldconfig # aticonfig --initial --input=/etc/X11/xorg.conf
然後檢查 其他在 xorg.conf 中的重要設定
在您執行完這兩個指令後重新開機到 Runlevel 3。您可以在開機選單的開機選項裡輸入 init 3
來進入 Runlevel 3。
疑難排解 - 步驟 4
現在我們要確認核心模組已經就位:在命令提示後輸入:
# fglrx-kernel-build.sh
接著:
# sax2 -r -m 0=fglrx -b /usr/share/doc/packages/fglrx/sax2-profile
如果這一行對您沒用,用下面的:
# sax2 -r -m 0=fglrx
注意: 如果 sax2
仍會造成螢幕變黑並鎖死,請用下面的套件庫更新 sax2
到最新版本,再執行一次試試看。
如果 sax2 在載入螢幕或開啟測試螢幕時失敗,且在 sax.log 檔中有 "PreInitDAL failed",請檢查 PreInitDAL 失敗問題
注意:您需要重新開機使變更能生效。
type: http server: ftp-linux.cc.gatech.edu directory: /pub/suse/suse/update/10.2
重新啟動電腦,看是否可以運作。用本教學中的測試檢查。
疑難排解 - 更多
更多的疑難排解步驟(由已移除的 ATI 驅動程式頁面摘取):
--Nick 21:30, 12 April 2007
即使 fglrx 已載入,3D 仍無法運作
症狀: 當在 sax2 測試伺服器時產生崩潰,記錄檔中包含有 Error: No screens found
這個問題是由於 OSS Radeon 驅動程式和 fglrx 之間不相容所引起。 執行:
lsmod | grep radeon
接著
lsmod | grep fglrx
如果這兩個模組都被載入,您必須先移除 radeon 模組,使用
#modprobe -r radeon
來移除,然後,重新啟動您的系統。
3D 無法在一般使用者運作但可以用 root 運作
這個問題發生在我的 ATI Radeon X1300 全新安裝 openSUSE 10.2 使用 fglrx 8.36.5-1.i386 時
bash 使用者:
LIBGL_DEBUG=verbose glxinfo
尋找類似
undefined symbol: __glXFindDRIScreen
的錯誤
移除 /usr/lib
中的 libGL.so*
檔案,並用 /usr/X11R6/lib
的符號連結取代這些檔案
ln -s /usr/X11R6/lib/libGL.so libGL.so ln -s /usr/X11R6/lib/libGL.so.1 libGL.so.1 ln -s /usr/X11R6/lib/libGL.so.1.2 libGL.so.1.2
您可能也需要啟用 POSIX 分享記憶體。
[fglrx] API ERROR: could not register entrypoint for...
下載 http://www.ground-impact.com/libGL.so.1.2
取代原來在 /usr/X11R6/lib
中的 libGL.so.1.2
[fgl_glxgears] 當使用一般使用者運行時回報 "Permission denied"
Issue: 下列輸出是以一般使用者運行時:
# fgl_glxgears Using GLX_SGIX_pbuffer FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) ...
解決方案: 啟用 POSIX 分享記憶體。
試著加入下面一行到 /etc/fstab
:
tmpfs /dev/shm tmpfs defaults 0 0
然後使用掛載:
mount /dev/shm
注意: 這一行可能看起來和其他行有點不一樣,但這是正確的順序。
--StephaneZ 18:33, 30 December 2006 (UTC)
使用 Xv 影片輸出驅動程式播放影片失敗
There are a few causes of this ranging from ATI's driver to running Xgl
vice Xorg
解決方案:使用 gl2 做為影片輸出驅動程式。
Mplayer 使用者: mplayer -vo gl2 <file>
GMplayer 使用者: echo "vo_driver = \"gl2\"" >> .mplayer/gui.conf
Xine 使用者: echo "video.driver:opengl" >> .xine/config
AIGLX error __driCreateNewScreen
ATI 的驅動程式不支援 AIGLX
(除非您有一張 r300 之前的 ATI 顯示卡) ,現在只能使用 Xorg
或 Xgl
。一旦 ATI 決定支援 AIGLX 這段就會被移除。
如果您在 Xorg.0.log
中發現類似
(EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727) (EE) AIGLX: reverting to software rendering
解決方法是將下面加入到 /etc/X11/xorg.conf
Section "ServerFlags" Option "AIGLX" "off" EndSection
cp: missing destination file operand
當您執行:
./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
您可能會得到以下面這段開頭的訊息:
cp: missing destination file operand after
您需要在命令前設定 LC_ALL=C
已解決此問題
# LC_ALL=C ./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
ATI + Beryl + XGL + openSUSE 10.2
在這裡我想和各位分享如何使用 ATI 顯示卡讓 Beryl 運作。
注意: 在您照下面步驟做之前,確認您已經照上面所述完成與測試。
步驟 1 - 安裝 Beryl
在 YaST 加入下面的套件庫到您的安裝來源。
類型: http (如果這行不通,改成 ftp) 伺服器: ftp.skynet.be 目錄: /pub/software.opensuse.org/X11:/XGL/openSUSE_10.2/
安裝下面的 snapshots 套件:
aquamarine-snapshot beryl-core-snapshot beryl-manager-snapshot beryl-plugins-snapshot beryl-settings-snapshot beryl-vidcap-snapshot emerald-snapshot emerald-themes-snapshot
另外,您必須移除所有 compiz
套件(忽略所有相依性)因為和 XGL
一起用會有問題
步驟 2 - 設定
使用雙顯示的使用者必須加上下面 "Xinerama"
的敘述到您的 Xorg 設定,以便讓 Beryl
能正常工作或修正系統像在蜜糖裡運作(譯註:大概說很慢)。
開啟 /etc/X11/
中的 xorg.conf
加入下面的旗標:
Section "ServerLayout" Option "Xinerama" "on" EndSection
執行下面命令 (以一般使用者,而非 root) 來啟動 beryl-manager
> beryl-manager
這將載入一個像寶石的圖示在您的系統匣管理員。 在圖示上按右鍵,在進階選項中確認下面所列是被核取的:
Composite Overlay Window -> "Don't use COW" 或 "use COW" 或 "Automatic" (檢查看哪一個最好) Rendering platform -> Force XGL Binding -> XGL Binding Rendering -> XGL Rendering
現在加入 Beryl
到 KDE
Another composite manager is already running
似乎 KDE 已經運行了自己的 composite 管理員特效 (使用 kompmgr),所以 Beryl 就無法運作。 要停用 KDE 的視窗效果,請開啟控制中心停用半透明特效:
K 選單 -> 設定桌面(個人設定)。 然後到桌面 -> 視窗行為。
到最後一個標籤,"半透明",然後取消核取"使用半透明/陰影"。現在您可以再次執行 beryl-manager
,您會發現一切都完美了。
使 Beryl 自動啟動
- 如果使用 KDE:
只要輸入 (以一般使用者,而非 root):
ln -s /usr/bin/beryl-manager ~/.kde/Autostart/beryl-manager ln -s /usr/bin/beryl ~/.kde/Autostart/beryl
- 如果使用 GNOME:
到 GNOME 的控制中心 -> 工作階段。 到最後一個標籤 "啟動程式"。 在那裡加入下面所列:
beryl-manager beryl
步驟 3 - 啟用 XGL 然後重新開機
從 YaST 到系統,執行sysconfig編輯器。
Sysconfig 編輯器 -> Desktop -> Display Manager -> DISPLAYMANAGER_XSERVER.
將 XSERVER 由 Xorg
改成 Xgl
在您改完後按完成然後重新開機,或您可以用 root 開啟一個 console 執行:
# rcxdm restart
或,如果您使用 gdm
# rcgdm restart
當您再次回到 X, Beryl 應該會自動啟動,您應該會看到寶石圖示在您的系統匣。在上面按右鍵選擇視窗管理員為 Beryl。您應該會看到 Beryl 啟動動畫,這表示 Beryl 已正常運作了。
如果您無法讓 beryl 運作,請您參考 Beryl 或連絡我 here.
--Nick
附加參考
使用 GNOME 和 XGL 的使用者:
如果您在 gdm 載入後 X 伺服器有問題,並且收到 "X Server is already running..." 的訊息,您必須修改 /etc/opt/gnome/gdm/custom.conf 這個檔案: look for the following:
[daemon]
GdmXserverTimeout=30 #您要插入這行或將之修改為 30
[servers]
0=inactive #插入或修改 0 為 inactive
1=Xgl #插入或修改 1 為 Xgl
[server-Standard] #修改標準伺服器設定如下:
name=Xgl
command=/usr/bin/Xgl :1 -ac -accel glx=pbuffer -accel xv=pbuffer
chooser=false
handled=true
flexible=true
priority=0
--taril
更多的安裝協助
如果您覺得這裡的指引不夠,go fly a kite(放風箏?),然後參考底下的 ATI 協助列表。.
ATI Linux 驅動程式非官方 Wiki http://wiki.cchtml.com
一個很棒的指引 (2007-04-20): http://linux.wordpress.com/2007/04/20/opensuse-102-amdati-drivers-installation/
新的官方 ATI 安裝程式教學 (March 28, 2007) https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/linux_8.35.5-inst.html
(open)SUSE consult 的(由 SUSE 維護的)官方 ATI 驅動程式安裝與設定教學 ATI Installer HOWTO.
在安裝完 rpm 後,參考 /usr/share/doc/packages/fglrx/
中的 README.SUSE 檔。
回報錯誤
一個非常好且實際的作為:幫助 ATI 發展與塑造我們所需的驅動程式。
Beryl
Comments
如果任何人想要編輯此頁讓它看起來更好,儘管放手去做。
<keyword>ATI,fglrxinfo,fglrx,beryl,compiz,xgl,beryl-manager,sax2</keyword>