Blog entryGallium Berhasil Tundukkan GNOME Shell di ATI Radeon

xorg_logo.pngMungkin saya suka sekali berperang (mungkin lho cheeky), jadi beberapa pos belakangan selalu berisi kalah dan mengalahkan. Tapi tak apalah, toh 'perang' saya tidak memakan korban jiwa manusia seperti yang terjadi hari Jum'at kemarin. Perang yang saya lakukan tidak menakutkan, melainkan sangat menggairahkan cool.

Akhir minggu kemarin saya berhasil mengaktifkan kembali GNOME Shell dari GNOME 3.0 di Dekstop PC saya yang menggunakan kartu grafis ATI 760G (Radeon 3000). Sebelumnya jika saya menggunakan libdrm dan mesa standar dari Slackware{64}-Current, panel dari gnome-shell selalu mendapatkan sinyal HUP (SIGHUP) saat saya mengklik sembarang aplet di panel tersebut. Jelasnya saya curiga bahwa pastilah penyebabnya adalah mesing render 3D milik Xorg yang saya gunakan, dalam hal ini tentulah pustaka mesa.

Seorang kawan di milis GSB User menyatakan bahwa dia berhasil menjalankan gnome-shell di mesin dengan kartu grafis ATI menggunakan Arch Linux. Tetapi saat dia menggunakan Slackware (-Current), kejadian yang sama seperti yang saya alami terjadi. Andrew Swartz (kawan tersebut) bahkan tidak dapat login ke desktop GNOME-nya. Kemudian Andrew menulis pada pos berikutnya bahwa di Arch Linux dia menggunakan driver ATI, libdrm, dan mesa dari versi git. Saya menjadi semakin tertarik dengan 'perang' ini. Harus bisa, tidak boleh menyerah enlightened. Petunjuk dari Andrew jelas sangat berguna sebagai titik awal percobaan. Maka berangkatlah saya ke medan juang sejak hari Sabtu kemarin.

Pertama saya mencoba membangun ulang libdrm dan mesa menggunakan stok source code yang disediakan Slackware current. Saya edit sebagian skrip mesa.SlackBuild untuk mengaktifkan fitur Gallium pada beberapa model kartu grafis.

  --enable-gallium-i915 \
  --enable-gallium-i965 \
  --enable-gallium-radeon \
  --enable-gallium-r600 \
  --enable-gles1 \
  --enable-gles2 \
  --enable-shared-dricore \
  --with-driver=dri \
  --with-state-trackers=dri,glx,egl

Hasilnya kompilasi terhenti karena ternyata libdrm dari Slackware current, versi 2.4.23, tidak mendukung fitur Gallium untuk beberapa model kartu (nVidia). Saya harus meng-upgrade versi libdrm ke versi terbaru yaitu versi 2.4.25. Tetapi konsekuensinya saya tidak dapat menggunakan source code MesaLib versi 7.9.x yang ada di repo default Slackware current, atau MesaLib 7.10.x yang ada di direktori testing Slackware current. Saya harus menggunakan MesaLib versi git yang memiliki perubahan terakhir setelah libdrm 2.4.25 dikeluarkan. Tidak ada jalan lain, saya harus menarik source code MesaLib dari repo git freedesktop.org.

$ git clone git://anongit.freedesktop.org/git/mesa/mesa
$ cd mesa
$ git archive --format=tar --prefix=Mesa-7.10_REVISI/ HEAD | xz -9c >../MesaLib-7.10_REVISI.tar.xz

Note: Untuk mengetahui hash revisi dari HEAD, bisa dengan ini:
$ cd REPO_LOKAL_GIT
$ cat .git/logs/HEAD | awk '{ print $2 }' | cut -b1-7

Setelah itu saya mengubah lagi skrip mesa.SlackBuild untuk memisahkan proses pembangunan paket mesa dan mesa-demos karena saya tidak perlu membangun ulang mesa-demos secara terus menerus manakala saya meng-upgrade mesa. Jadi tidak perlu bekerja dua kali untuk hal yang sama sekali tidak perlu perubahan. Saya juga menambahkan TAG '_wls' pada skrip SlackBuild yang saya ubah tersebut, sehingga slackpkg dan slapt-get dapat mengidentifikasi paket-paket buatan saya tersebut, jadi saya tidak kuatir akan terhapus/terganti saat proses upgrade menggunakan slackpkg atau slapt-get.

Setelah libdrm versi 2.4.25 ter-install, saya lanjut untuk membangun mesa 7.10_9dacbe2. Setelah beberapa kali percobaan, termasuk harus kehilangan driver kartu grafis karena secara tidak sengaja terhapus maka inilah hasilnya:

gnome3-20110418.png

gnome-shell-trouble-02.png

gnome-shell-trouble-01.png

Untuk informasi lebih lengkap mengenai Gallium dan ATI Radeon di Xorg, silakan lihat di alamat-alamat berikut ini:

Selamat mencoba bagi yang berani devil

Comments

Pangky (not verified) wrote:

Mas walecha, apakah setelah melakukan semua di atas, masih perlu install driver resmi dari amd? Kebetulan saya coba install di laptop, dan hasinya garbled screen. Hmm...jadi intinya harus update mesa ya, sedangkan libdrm ambil dari folder testing sudah cukup. Berarti mesa dan libdrm yg lama harus di uninstall dan digantikan libdrm2-4-5 dan 2 paket mesa baru ya, yg satu demo, yg satu mesa-nya

11.05.2011 01:03
walecha wrote:

Wah ya jangan di-install dua2nya. Apa gunanya install Mesa versi devel bersamaan dengan driver proprietary AMD, karena akan saling timpa dan sistem bisa2 tidak berjalan.

Seperti yg sudah dijelaskan mas Henry di milis, driver proprietary akan menggantikan posisi driver dari sisi kernel, serta mengganti driver 3D milik Mesa.

Jika ingin mengkompilasi dan menggunakan driver asli Xorg, uninstall dulu driver proprietary-nya. Baru install driver Mesa versi kita.

11.05.2011 07:21
Pangky (not verified) wrote:

Mas walecha, ternyata di laptop saya pake libdrm dan mesa bawaan slack 13.37 normal, hanya ada bentrok masalah polkit/policykit. Wah, ini bentrok antara gnome dan kde (CMIIW)
errornya: "error registering polkit authentication agent, an authentication agent already exist", kalo di tempat mas walecha sendiri bagaimana?

12.05.2011 12:11
walecha wrote:

KDE sama GNOME nggak bentrok mas. Pesan kesalahan itu muncul akibat dari inisialisasi polkit oleh gnome-shell padahal GNOME sudah mengaktifkan polkit melalui gnome-session.

Kalau 3D rendering-nya sudah normal menggunakan paket libdrm dan mesa dari slackware ya sebaiknya jangan diganti. Di mesin ATI saya kan 3D rendering-nya ngaco kalo pake MESA punya Slackware. Makanya saya ganti dengan versi devel dan saya aktifkan driver gallium-nya.

12.05.2011 15:41
Pangky (not verified) wrote:

o gitu, bisa share solusinya mas?bingung kok bisa dua gitu polkitnya, gara2 itu gnome saya sering crash

12.05.2011 18:06

Lha kok bisa tahu kalo crash-nya gara2 itu? Sudah coba login ke GNOME3 dengan mode failsafe?

12.05.2011 18:34
Pangky (not verified) wrote:

Belum coba lewat safe mode. Errornya itu gara2nya sama, begitu masuk gnome asalkan saya ga pernah klik kanan (biasanya klik kanan pada tray icon) semua normal, mau ntn film, dengerin musik, dibiarkan idle, normal. Tapi begitu klik kanan pada tray misalkan untuk configure network manager, mengatur power management, langsung keluar dari gnome.
gnome-shell-calender-server: Get HUP on stdin...exiting
bla...bla...bla
error registering polkit authentication agent bla...bla...bla
gnome session: gnome shell desktop respawning too quickly

12.05.2011 22:14
walecha wrote:

Nah itu sama dengan punya saya. Coba dibaca lagi tulisan saya :) . Kalo soal polkit, itu karena gnome-shell restart akibat dapat sinyal SIGHUP yang diakibatkan render 3D-nya nggak beres, dan saat gnome-shell restart, gnome-shell akan mencoba mengaktifkan lagi polkit, padahal polkit sudah aktif. Jadi pesan kesalahan itu bisa diabaikan.

BTW sudah paham soal SIGHUP, SIGTERM, SIGKILL, dst? :)

13.05.2011 08:25
Pangky (not verified) wrote:

setelah di baca dari awal, ternyata memang sama ya, soalnya saya langsung baca ke intinya, harus upgrade drm dan mesa klo mau pake gnome 3. Oke deh, saya coba compile dulu libdrm sama mesanya, btw scriptnya sama seperti yg ada di folder testing kan mas?

13.05.2011 13:27
Masrur (not verified) wrote:

Saya minta dunkz.. contoh isi mesa.SlackBuild sebagai bahan perbandingan..
saya coba update ulang --enable-gallium-nouveau \

08.06.2011 08:34

Add new comment