ATI

Jump to: navigation, search


Geeko 因為許可協議的緣故, 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..}

加入套件庫到 YaST:

Susemini.png
Version:
10.3
http://www2.ati.com/suse/10.3
Susemini.png
Version:
10.2
http://www2.ati.com/suse/10.2
Susemini.png
Version:
10.1
http://www2.ati.com/suse/sle10

請注意上面的 URL 無法使用網頁瀏覽器瀏覽,您必須使用 YUM/REPO-MD 相容的套件管理員。

步驟 2 - 安裝套件

開啟一具備 root 權限的終端機, 並根據您系統的版本安裝以下兩個套件:

Susemini.png
Version:
10.3
zypper install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'`
Susemini.png
Version:
10.2
yast2 --install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'`
Susemini.png
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-defaultKernel-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

使用 ldconfigaticonfig 來設定 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 顯示卡) ,現在只能使用 XorgXgl。一旦 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

現在加入 BerylKDE

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 發展與塑造我們所需的驅動程式。

ATi Linux Platform Bugs

Beryl


Beryl

Comments

如果任何人想要編輯此頁讓它看起來更好,儘管放手去做。

<keyword>ATI,fglrxinfo,fglrx,beryl,compiz,xgl,beryl-manager,sax2</keyword>

Contents