Archlinux ATI Grafik Kart Kurulumu

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

Konu başlıkları

Desteklenen Cihazlar

Burdan gerekli bilgilere ulaşabilirsiniz

Kurulum

Xorg 7 yayınlanması ile birlikte Archlinux Arch kernelleri için önceden derlenmiş fglrx paketlerini extra depoları altında yayınlamaya başladı.Eğer kernel26 ve,veya kernel26beyond kullanıyorsanız sadece hazırlanmış paketi kurmanız yeterli.Ama kendinizin derlediği bir kerneli kullanıyorsanız kendiniz paket haline getirmelisiniz.

Stok Kerneller

kernel26

kernel26 çekirdeği için hazırlanmış fglrx modulu ati-fglrx paketi içinde yer almaktadır.Kurmak için:

   # pacman -Sy ati-fglrx

kernel26beyond

kernel26beyond çekirdeği için hazırlanmış fglrx modulu ati-fglrx-beyond paketi içinde yer almaktadır.Kurmak için:

   # pacman -Sy ati-fglrx-beyond

Notlar

  • -beyond kernel yama seti -archck yama setinin yerini almıştır.Bu yüzden -archck için önceden derlenmiş paket bulmanız olanaksız.Ama kendiniz paket haline getirebilirsiniz. #Özel Kerneller
  • Bu paketler sadece kernel modulunu içermektedir ve ati-fglrx-utils paketi ile birliklikte kurulmaktadır.ati-fglrx-utils paketi kernelden bağımsızdır.Xorg için gerekli kütüphanleri ve Ati'nin geliştirdiği yardımcı(aticonfig vb) uygulamaları içermektedir.
  • Paketleri kurup , gerekli yapılandırmayı yaptıktan sonra sisteminizi yeniden başlatmanız gereklidir.
  • Eğer kernel26 ve kernel26beyond sistemde kurulu ise her ikisi için ayrı ayrı ati-fglrx modul paketleri kurmanız gerekecektir.Paketler birbiri ile çakışmadığından her hangi bir sorun oluşturmayacaktır

Özel Kerneller

Kendinizin derlediği çekirdekler için fglrx modulunu kendiniz paket haline getirmelisiniz. ABS ile detaylı bilgi için ABS.

PKGBUILD

  • Konsoldan root hakları abs komutunuzu vererek abs ağacını güncellemeliyiz.
  • Ve meta dosyalarının olduğu dizine gidiyoruz.
    •  cd /var/abs/extra/modules/ati-fglrx 

PKGBUILD'i Düzenlemek ve Derlemek

Yapmamız gereken üç küçük değişiklik var:

 gedit PKGBUILD 
İlk Değişiklik

PKGBUILD içerisindeki pkgname=ati-fglrx olan yeri pkgname=ati-fglrx-Çekirdek-adı şeklinde değiştirmelisiniz.

İpucu! Paketin adını ati-fglrx-Çekirdek-adı olarak belirledik.Pakete istediğiniz adı vermekte özgürsünüz.Örğ: ati-modulum
İkinci Değişiklik

PKGBUILD içerisinde kernel26'yı bağımlılıklar(depends=) içerisinden silmelisiniz.

Son Değişiklik

PKGBUILD içerisinde _kernver=2.6.17-ARCH olan yeri _kernver=`uname -r` şeklinde değiştirmelisiniz.

İpucu! `uname -r` şeklinde düzenlememiz sayesinde otomatik olarak kernelimizin adı belirlenecektir.İsterseniz kendinizde uname -r çıktısını çekirdek versiyonu olarak belirleyebilirsiniz.


Dosya: Örnek bir PKGBUILD
 
# Maintainer: James Rayner <iphitus@gmail.com>
# Real Maintainer: Cerebral

pkgname=ati-fglrx-modulum
pkgver=8.27.10
pkgrel=1
pkgdesc="ATI precompiled drivers for r350, r300, r250 and r200 chipsets. Drivers for the Linux kernel."
arch=(i686 x86_64)
url="http://www.ati.com"
license=""
depends=('ati-fglrx-utils' )
makedepends=()
conflicts=('ati-drivers-module' 'ati-drivers-arch' 'nvidia')
install=ati-fglrx.install
_kernver=`uname -r`
source=(http://www2.ati.com/drivers/linux/ati-driver-installer-$pkgver-x86.run)

md5sums=('72f69477c66d8b2d1a580c7885afa892')
    


[ "$CARCH" = "x86_64" ] && source=(http://www2.ati.com/drivers/linux/64bit/ati-driver-installer-$pkgver-x86_64.run)
[ "$CARCH" = "x86_64" ] && md5sums=('a755a02cd7bb71697ac4c249d0e32eb0')

build() {
    cd $startdir/src

    [ "$CARCH" = "i686" ] && _arch="x86"
    [ "$CARCH" = "x86_64" ] && _arch="x86_64"

    chmod a+x ati-driver-installer-$pkgver-${_arch}.run
    ./ati-driver-installer-$pkgver-${_arch}.run --extract archive_files

    cp $startdir/src/archive_files/arch/${_arch}/* $startdir/src/ -r 
    cp $startdir/src/archive_files/common/* $startdir/src/ -r 

    if [ "$CARCH" == "x86_64" ]; then
      cp $startdir/src/archive_files/x690_64a/* $startdir/src/ -r
    else
      cp $startdir/src/archive_files/x690/* $startdir/src/ -r
    fi

    cd $startdir/src/lib/modules/fglrx/build_mod/
    # Build the kernel module
    cp 2.6.x/Makefile .
    make -C /lib/modules/${_kernver}/build SUBDIRS="`pwd`" modules || return 1

    # Install the kernel module
    install -m 644 -D $startdir/src/lib/modules/fglrx/build_mod/fglrx.ko \
        $startdir/pkg/lib/modules/${_kernver}/video/fglrx.ko

    sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/ati-fglrx.install

}
  


Bütün bunlardan sonra paketimiz derlenmeye hazır makepkg komutu ile paketi derledikten sonra kurmalıyız.

 pacman -A paket-adı.pkg.tar.gz 


Notlar

  • Sadece kernelimiz için gerekli modulu kurmamız ve ati-fglrx-utils kernel'den bağımsız olduğu için onu depolardan kurmamız yeterlidir.
  • 2.6.16 kernellerine fglrx modulu derlemek için bir yama gereklidir.Bu yama abs ağacınız(/var/abs/extra/modules/ati-fglrx) içerisinde yer almaktadır.

Yapılandırma

Ati son sürücüleri ile birlikte fglrxconfig daha düzgün , kolay ve daha güncel olan aticonfig ile değiştirdi.Aticonfig ile yapılandırmayı düzenlemek için:

İpucu! aticonfig --help komutu ile aticonfig uygulaması için fazladan seçenekleri görebilirsiniz
 aticonfig --initial --input=/etc/X11/xorg.conf 

Aticonfig ile xorg.conf dosyanızı kolayca düzenleyebilirsiniz.Aticonfig'in düzgün çalışması için ilk önce düzgün yapılandırılmış bir xorg.conf dosyası gereklidir.Eğer henüz xorg.conf dosyanız yoksa :

 pacman -S hwd 
 hwd -xa 

Kendiniz el ile düzenlemek isterseniz :

 gedit /etc/X11/xorg.conf 


Dosya: örnek bir xorg.conf düzenlemesi
 
Section "Device"
	Identifier  "ATI Graphics Adapter 0"
	Driver      "fglrx"  # daha önce '''ati''' yada '''radeon''' yazan yeri '''fglrx''' ile değiştirmeliyiz.
	Option	    "UseInternalAGPGart" "no"
	Option	    "KernelModuleParm" "agplock=0"
        BusID       "PCI:1:0:0"
        Option      "DesktopSetup" "horizontal"
        Option      "VideoOverlay" "on"
        Option      "UseFastTLS" "2"
EndSection
  

Bütün bunlardan sonra startx komutu ile x yapılandırmanızın doğru olup olmadığını deneyebilirsiniz.

Opengl özelliğinin devrede olduğunu görmek için:

Not: mesa-apps paketini kurmuş olmalısınız.
 glxinfo | grep direct 

Eğer çıktı direct rendering: yes şeklinde ise herşey sorunsuz yapılandırılmış demektir

Bazı Sorunlara Çözümler

Direct Rendering Çalışmaması

Direct rendering çalışırken bazı sorunlar(Opengl uygulamalarında düşük fps almak vb) ile karşılaşıyorsanız:

 LIBGL_DEBUG=verbose glxinfo 
  • libGL error: XF86DRIQueryDirectRenderingCapable returned false Eğer bu şekilde uyarı alıyorsanız :
    • Flgrx modulu yüklenmeden önce yonganıza ait agp modulu yüklendiğinden emin olun.Hangi agp moduluna ihtiyacınız olduğunu belirlemek için:
 hwdetect --show-agp 

AGP  : agpgart amd64-agp Buna benzer bir çıktı verecektir.Belirlediğimiz modulu rc.conf içerisindeki MODULES= kısmaına eklemeliyiz,bu sayede fglrx modulu yüklenmeden önce agp modulu yüklenmiş olucaktır.

  • libGL error: failed to open DRM: Operation not permitted
  • libGL error: reverting to (slow) indirect rendering
    • Bunun için , xorg.conf dosyanızda şu satırların olduğundan emin olun:
Dosya: xorg.conf
 
    Section "DRI"
        Mode 0666
    EndSection
  


  • libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so
  • libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed
  • (/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)
  • libGL error: unable to find driver: fglrx_dri.so
  • Bazı şeyler doğru kurulmamıştır.Öncelikle ati-fglrx-utils paketini tekrar kurmayı deneyin.Eğer uyarı /usr/X11R6/lib/modules/dri/fglrx_dri.so şeklinde ise ilk önce düzgün şekilde girdiğinizden emin olun.Eğer herhangi(gdm, kdm, xdm) bir Grafik tabanlı giriş yöneticileri kullanıyorsanız her girişinizde /etc/profile'in baz alınmış olduğuna dikkat edin.Bunu ~/.xsession veya ~/.xinitrc içerisine source /etc/profile ekleyerek çözebilirsiniz.
  • fglrx: libGL version undetermined - OpenGL module is using glapi fallback
    • Bu hatanın nedeni sisteminizde birden fazla libGL.so bulunmasından kaynaklanmaktadır.
 sudo updatedb 
 locate libGL.so 
  • Çıktı şu şekilde ise sorun yok demektir.
Kod: locate libGL.so
 
    /usr/lib/libGL.so
    /usr/lib/libGL.so.1
    /usr/lib/libGL.so.1.2
  
	
  • Eğer bunlardan başka /usr/X11R6/lib/libGL.so.1.2 gibi dosyalar varsa silin:
 sudo rm /usr/X11R6/lib/libGL.so.1.2 

Sistem çakılmaları/kitlenmeleri

  • Sistem kitlenmelerinin önüne geçmek için xorg.conf dosyanızın altındaki "Device" bölümüne aşağıdaki satırları ekleyin:


Dosya: xorg.conf
 
  Dosya içeriği,
Section "Device"
	Identifier  "ATI Graphics Adapter 0"
	Driver      "fglrx"
        Option "UseInternalAGPGART"         "no"
        Option "KernelModuleParm"           "agplock=0" 
  

  • Bu sorun radeonfb framebuffer modullarından kaynaklandığı önceden beri bilinmektedir.Eğer çekirdeğiniz radeonfb desteği ile derlenmiş ise başka bir kernel(radeonfb kapalı) tercih etmelisiniz.
Not:' kernel26archck radeonfb desteği ile derlenmiştir.

Bağlantılar