Patch FGLRX 12.104 Untuk Kernel 3.10

 Widya Walesa  |  2013/07/09 14:35:21 WIB  |  2016/07/27 23:51:15 WIB

Hari ini saya mencoba menggunakan #Linux 3.10.0 yang sudah diluncurkan sejak Senin, 30 Juni 2013. Baru ada kesempatan untuk mengunduhnya saja. Meskipun sebenarnya saya sudah bermain-main dengan kernel 3.10.0-rc5 hingga rc7 tetapi untuk mencoba driver #radeon opensource yang baru. Jadi anggap saja versi 3.10 ini adalah akar pengganti rotan sebelum kernel 3.11 diluncurkan.

Seperti biasa, saya harus membangun ulang #FGLRX tiap kali mengganti kernel. Dan untuk kernel 3.10 ini saya harus mem-patch driver FGLRX agar dapat dibangun menggunakan header kernel yang baru. Saya memperoleh kode driver FGLRX yang telah disesuaikan untuk kernel 3.10 di repo github ini. Saya cukup mengunduh file yang yang tersedia di commit ae7de2751be17484bc98d82e1c1901e5d432e430, untuk kemudian saya buat #patch seperti ini:

# /bin/sh amd-catalyst-13.4-linux-x86.x86_64.run --extract /tmp/fglrx.tmp
# cd /tmp/fglrx.tmp/common/lib/modules/fglrx/build_mod/
# wget -O drm_proc.h.new "https://github.com/kolasa/fglrx-13.101/raw/ae7de2751be17484bc98d82e1c1901e5d432e430/drm_proc.h"
# wget -O firegl_public.c.new "https://github.com/kolasa/fglrx-13.101/raw/ae7de2751be17484bc98d82e1c1901e5d432e430/firegl_public.c"
# mkdir -p /etc/ati/patch
# diff -u drm_proc.h drm_proc.h.new >> /etc/ati/patch/patch-12.104-3.10.0-smp
# diff -u firegl_public.c firegl_public.c.new >> /etc/ati/patch/patch-12.104-3.10.0-smp
# cd /tmp && rm -rf fglrx.tmp

Setelah itu saya lanjutkan dengan membangun ulang fglrx-12.104:

# /bin/sh amd-catalyst-13.4-linux-x86.x86_64.run --buildpkg Slackware/Slackware
# mv fglrx-12.104-x86-1.tgz fglrx-12.104_3.10.0_smp-x86-1.tgz
# removepkg fglrx
# installpkg fglrx-12.104_3.10.0_smp-x86-1.tgz

Selesai.

Sampeyan juga bisa mengunduh patch yang saya buat di blog ini.

Selamat mencoba.

SSH bisa di Linux ndak ya?

 Widya Walesa  |  2013/07/08 03:45:35 WIB  |  2020/08/13 18:07:17 WIB

SSH bisa di Linux nda ya?

Hai para pengguna #Linux, apa pendapatmu mengenai pertanyaan tersebut? Pertanyaan tersebut sering saya jumpai di forum Ayo Belajar Linux di jejaring sosial Facebook. Terus terang sewaktu pertama kali saya membaca pertanyaan semacam itu di forum #ABL, saya cukup keheranan.

Waktu itu saya berpikir, oh ada juga distribusi Linux yang tidak bisa pakai #SSH. Mungkin ini distribusi yang sangat spesifik, misalnya untuk router atau modem. Tetapi begitu saya membaca komentar-komentar yang ada dalam topik tersebut, ternyata dugaan saya salah 100%. Penanya memakai distribusi Linux Ubuntu. Saya jadi bertanya-tanya lagi, apakah Ubuntu itu memang tidak bisa dipakai untuk remote login menggunakan SSH? Apa tidak menyertakan OpenSSH dalam reponya, ya? Setelah saya cek di daftar software Ubuntu, ternyata ada kok OpenSSH. Di distribusi #Slackware sudah pasti ada. Jadi ada apa ya?

Oh ternyata, yang mereka maksud itu adalah sebuah metode tunnelling. Wih, ternyata kemampuan dan tingkat pemahaman mereka itu sudah pada tinggi-tinggi semua. Tunnelling adalah hal wajib. Berarti mereka-mereka itu amat sangat membutuhkan sebuah sistem koneksi yang aman. Atau mereka butuh sebuah jalan untuk mengakses jaringan-jaringan privat milik mereka yang berada entah di mana. Hacker nih mestinya.

Oh ternyata (oh ternyata, lagi) yang sebenarnya mereka maksud itu adalah metode tunnel yang digunakan untuk mengakali koneksi internet mereka yang terbatas entah hanya dibatasi akses ke 11 situs atau yang lainnya (saya tidak tahu). Metode ini kebetulan memanfaatkan salah satu kemampuan dari SSH yaitu tunnelling.

Secara natural SSH memang bisa digunakan untuk menciptakan sebuah pipa koneksi tertutup antara dua mesin. Caranya adalah dengan membuka sebuah port pada saat melakukan remote SSH seperti ini (dari: man ssh):

$ ssh -L [local_address]:local_port:remote_address:remote_port

Pada saat kita mengirimkan sebuah data ke port lokal, SSH akan meneruskannya ke mesin remote, dan sebaliknya. Apabila kita mengakses internet dengan memanfaatkan port lokal tersebut sebagai proxy, maka akses internet kita akan diteruskan ke port remote melalui pipa SSH tersebut. Akses kita di internet akan dikenali berasal dari mesin remote tersebut, bukan dari mesin kita. Metode ini biasa saya gunakan untuk mengakses mesin-mesin kantor internal dengan membuka pipa koneksi ke gateway jaringan kantor. Metode ini saya gunakan selain openvpn, misalnya jika saya tidak sedang menggunakan laptop saya, karena saya tidak selalu membawa serta sertifikat SSL openvpn kantor.

Balik ke soal SSH tunnelling yang dimaksud oleh si penanya tersebut, jadi pertanyaan membingungkan ini sebenarnya cuma tanya bisa tidak mengakali koneksi internet terbatas dengan menggunakan fasilitas tunnel SSH di linux seperti yang biasa mereka lakukan di Windows. Entah mengapa mereka memilih bertanya seperti itu. Mungkinkah karena mereka itu tidak tahu? Sepertinya tidak mungkin, wong kalau dibandingkan dengan saya, saya malah tidak pakai metode akal-akalan seperti mereka itu. Apalagi ada tulisan soal inject-inject-an. Hal apa lagi itu?

Menurut saya, telah terjadi ketidakpahaman antara dua pihak karena topik yang kurang informatif atau kurang lengkap atau kurang tepat sasaran. Jadi jika sampeyan-sampeyan ingin mendapatkan informasi yang tepat, maka bertanyalah dengan lengkap. Berikan penjelasan yang bisa membantu orang lain memahami keinginan anda sehingga mereka bisa memberikan informasi yang memang anda butuhkan. Ingat, yang membutuhkan informasi tersebut adalah sampeyan, bukan saya atau yang lainnya. Bantulah diri anda dengan baik supaya hasilnya juga baik.

Jangan lupa, berbahasa adalah juga soal berbudaya. Jangan sampai kebiasaan anda yang tidak lengkap itu terbawa sampai sampeyan-sampeyan punya anak dan mengajari anak-anak sampeyan budaya tidak lengkap anda itu. Kasihan mereka.

Mencoba Fitur DPM Driver Radeon Linux

 Widya Walesa  |  2013/07/04 18:48:39 WIB  |  2016/03/18 23:17:07 WIB

Setelah membaca sebuah artikel yang tertulis di Phoronix yang berjudul AMD Has Massive Radeon Patch Set - Power Management!, saya tergoda untuk mencoba driver #radeon yang baru tersebut, meskipun belum ada rilis resmi dari #Kernel.org. Sampai saat ini, Kernel.org baru menerbitkan versi 3.10 sebagai versi stabil terakhir sedangkan menurut pengembang driver tersebut, driver radeon ini rencananya akan dimasukkan  ke #Linux versi 3.11.

 

Driver radeon yang baru ini diklaim memiliki fitur Dynamic Power Management (DPM) yang mampu mengatur daya dan kinerja GPU #AMD secara otomatis sehingga dapat menurunkan suhu rata-rata perangkat laptop berbasis AMD secara signifikan. Dukungan manajemen daya ini diterapkan pada kartu-kartu grafis seri R600 (Radeon HD 2000) hingga Southern Island (Radeon HD 7000). Kabar yang amat sangat baik bagi pengguna perangkat AMD yang selama ini sangat bergantung pada driver propietary AMD Catalyst (#FGLRX) untuk mendapatkan kinerja GPU yang baik dan suhu rata-rata perangkat yang normal. Oleh karena saya penasaran dengan fitur DPM ini, saya nekat mencoba membangun dan mengujicoba kernel yang tidak stabil tersebut.

Untuk membangun kernel dengan fitur DPM radeon tersebut, saya harus mengunduh tarball kode sumber kernel dari commit terakhir di repo git pengembang driver:

http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.11

Meskipun sebenarnya patch untuk radeon tersebut sudah masuk ke dalam mainline kernel:

https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=6ef92fbea2b5680204da5b8796e8972109d01bd3

Proses pembangunan berlangsung seperti biasa di #Slackware saya:

# tar xf linux-$VERSI_COMMIT_GIT.tar.gz
# cd linux-$VERSI_COMMIT_GIT
# cat /boot//boot/config-generic-smp-3.9.7-smp > .config
# make oldconfig
# make bzImage; make modules; make tar-pkg
# cp tar-install/boot/{System.map,config,vmlinuz}-3.10.0-rc7-wls /boot/
# cp -r tar-install/lib/modules/3.10.0-rc7-wls /lib/modules/

Yang saya ubah dari config standar Slackware hanya membuang driver-driver untuk perangkat yang tidak ada di laptop saya, lalu memasukkan driver filesystem ke dalam kernel supaya tidak ribet. Wong cuma ngetes. Kemudian setelah itu saya membuang paket fglrx terlebih dahulu, lalu membuka blacklist radeon, kemudian mengembalikan file-file dari paket mesa ke tempat aslinya. Setelah memasukkan kernel baru ke dalam boot loader, saya reboot laptop dan masuk ke kernel baru tersebut.

Proses boot berjalan normal tanpa hambatan, dan memang ada perbedaan dari log dmesg:

[   12.851405] [drm] Initialized drm 1.1.0 20060810
[   13.457957] [drm] radeon kernel modesetting enabled.
[   13.459245] [drm] initializing kernel modesetting (PALM 0x1002:0x9802 0x103C:0x3577).
[   13.459518] [drm] register mmio base: 0xF0400000
[   13.459636] [drm] register mmio size: 262144
[   13.461419] radeon 0000:00:01.0: VRAM: 384M 0x0000000000000000 - 0x0000000017FFFFFF (384M used)
[   13.461616] radeon 0000:00:01.0: GTT: 512M 0x0000000018000000 - 0x0000000037FFFFFF
[   13.461772] [drm] Detected VRAM RAM=384M, BAR=256M
[   13.461889] [drm] RAM width 32bits DDR
[   13.462565] [drm] radeon: 384M of VRAM memory ready
[   13.462650] [drm] radeon: 512M of GTT memory ready.
[   13.847112] radeon 0000:00:01.0: f2a9f200 unpin not necessary
[   14.116720] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xfa8e6118
[   14.116936] [drm] GART: num cpu pages 131072, num gpu pages 131072
[   14.119728] [drm] Loading PALM Microcode
[   14.199133] [drm] PCIE GART of 512M enabled (table at 0x0000000000040000).
[   14.199583] radeon 0000:00:01.0: WB enabled
[   14.199803] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000018000c00 and cpu addr 0xffacac00
[   14.199921] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000018000c0c and cpu addr 0xffacac0c
[   14.288817] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000177118 and cpu addr 0xfb0b2118
[   14.288999] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   14.289114] [drm] Driver supports precise vblank timestamp query.
[   14.289271] radeon 0000:00:01.0: irq 46 for MSI/MSI-X
[   14.289297] radeon 0000:00:01.0: radeon: using MSI.
[   14.289490] [drm] radeon: irq initialized.
[   14.306366] [drm] ring test on 0 succeeded in 1 usecs
[   14.306612] [drm] ring test on 3 succeeded in 1 usecs
[   14.361835] [drm] ring test on 5 succeeded in 1 usecs
[   14.361956] [drm] UVD initialized successfully.
[   14.382651] [drm] ib test on ring 0 succeeded in 0 usecs
[   14.382826] [drm] ib test on ring 3 succeeded in 0 usecs
[   14.403700] [drm] ib test on ring 5 succeeded
[   14.476715] [drm] radeon atom DIG backlight initialized
[   14.476886] [drm] Radeon Display Connectors
[   14.477003] [drm] Connector 0:
[   14.477129] [drm]   LVDS-1
[   14.477207] [drm]   HPD1
[   14.477285] [drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[   14.477439] [drm]   Encoders:
[   14.477560] [drm]     LCD1: INTERNAL_UNIPHY
[   14.477695] [drm] Connector 1:
[   14.477773] [drm]   HDMI-A-1
[   14.477849] [drm]   HPD2
[   14.477926] [drm]   DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c
[   14.478079] [drm]   Encoders:
[   14.478154] [drm]     DFP1: INTERNAL_UNIPHY
[   14.478270] [drm] Connector 2:
[   14.478386] [drm]   VGA-1
[   14.478464] [drm]   DDC: 0x64d8 0x64d8 0x64dc 0x64dc 0x64e0 0x64e0 0x64e4 0x64e4
[   14.478612] [drm]   Encoders:
[   14.478690] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   14.478828] [drm] Internal thermal controller without fan control
[   14.485433] [drm] Found smc ucode version: 0x00010601
[   14.489703] [drm] radeon: dpm initialized
[   14.913842] [drm] fb mappable at 0xE0378000
[   14.914042] [drm] vram apper at 0xE0000000
[   14.914161] [drm] size 4325376
[   14.914278] [drm] fb depth is 24
[   14.914357] [drm]    pitch is 5632
[   14.914882] fbcon: radeondrmfb (fb0) is primary device
[   15.483949] radeon 0000:00:01.0: fb0: radeondrmfb frame buffer device
[   15.484030] radeon 0000:00:01.0: registered panic notifier
[   15.486549] [drm] Initialized radeon 2.34.0 20080528 for 0000:00:01.0 on minor 0

Setelah beberapa saat saya mengecek temperatur laptop saya:

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +56.4°C  (high = +70.0°C)
                       (crit = +115.0°C, hyst = +115.0°C)

acpitz-virtual-0
Adapter: Virtual device
temp1:        +56.0°C  (crit = +120.0°C)

radeon-pci-0008
Adapter: PCI adapter
temp1:        +56.0°C  

Driver radeon + DPM tersebut bekerja dengan baik 'mendinginkan' laptop saya seperti halnya driver fglrx:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +58.0°C  (crit = +120.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +58.0°C  (high = +70.0°C)
                       (crit = +115.0°C, hyst = +115.0°C)

Hanya saja harus diingat bahwa driver ini masih dalam tahap pengembangan. Saya tidak bisa menggunakannya untuk menjalankan X. Slackware saya selalu mengalami hang jika saya menjalankan X. Saya sudah mencoba menggunakan Xorg versi 1.13 dan 1.14, hasilnya sama saja. Artinya, saya membutuhkan Xorg dengan versi yang lebih tinggi untuk dapat menggunakan antarmuka grafis di atas driver ini. Jadi perjalanan masihlah lama.

Menunggu dulu saja kalau begitu...

WLSBUILD - GNOME 3.8 For Slackware-Current

 Widya Walesa  |  2013/07/02 19:02:05 WIB  |  2016/07/27 23:58:00 WIB

As you all can see in the #Slackware-current ChangeLog.txt, Slackware now can support #GNOME 3.8 out of the box although you still have to install #PAM to be able building GDM which is a requirement for gnome-shell. But as I say before, and I have tried it my self, we can build our own GNOME 3.8 on top of Slackware-current with only two non-crucial package being rebuilt. Here is my GNOME 3.8.3 in action:

GNOME 3.8.3 - Gnome Shell Default Theme GNOME 3.8.3 - Gnome Shell using Nord theme GNOME 3.8.3 - Window Switcher

Slackware-current now shipped with all GNOME 3.8 main components. Those are (please report it to me if I'm missing something):

  • glib2
  • gtk+2
  • gtk+3
  • at-spi2-core
  • at-spi2-atk
  • gstreamer
  • gst-plugins-base
  • polkit
  • polkit-gnome
  • gobject-introspection
  • pygobject
  • gsettings-desktop-schemas
  • libwnck
  • libgnome-keyring
  • gnome-keyring
  • GConf
  • dconf
  • sg3_utils
  • libatasmart
  • udisks
  • libproxy
  • glib-networking
  • NetworkManager
  • ModemManager
  • libsoup
  • libtasn1
  • upower
  • gnome-keyring
  • libcanberra
  • gvfs
  • seamonkey (For building, seamonkey-solibs for runtime)
  • pygtk
  • icu4c
  • gnome-icon-theme (already have gnome-icon-theme-symbolic)
  • gnome-themes-standard
  • mozilla-nss
  • js185
  • gucharmap
  • sane
  • bash-completion
  • itstool

The two packages that is need to be rebuilt are gst-plugins-good and network-manager-applet. I have to rebuilt network-manager-applet because it was built against #GTK+2, but gnome-shell 3.8 needs it to be built using #GTK+3. As for gst-plugins-good, I need to built it with #pulseaudio support. Other than that, I only need to install bunch of additional dependencies that not exists in Slackware-current tree:

  • setuptools
  • rarian
  • gc
  • libdaemon
  • avahi
  • nss-mdns
  • python3
  • orc
  • usbmuxd
  • libimobiledevice
  • ifuse
  • json-c
  • speex
  • pulseaudio
  • alsa-plugins
  • libburn
  • libisofs
  • libisoburn
  • libiec61883
  • libdc1394
  • libavc1394
  • libdv
  • libshout
  • libvpx
  • vala
  • gstreamer-1 (v 1.0.x, Not the 0.10)
  • gst-plugins-base-1
  • gst-plugins-good-1
  • gst-plugins-ugly-1 - Optional
  • gst-plugins-bad-1 - Optional
  • gst-libav - Optional
  • geoclue
  • libwebp
  • webkitgtk
  • python-isodate
  • python-rdflib
  • xapian-core
  • python-logilab-common
  • python-logilab-astng
  • pylint
  • heimdal (For building, heimdal-libraries for runtime)
  • liboauth
  • libnice
  • telepathy-glib
  • telepathy-logger
  • telepathy-mission-control
  • farstream
  • telepathy-farstream
  • telepathy-gabble

Note on #gstreamer related packages, I have to renamed those packages with additional suffix '-1' to distinguish them with original gstreamer packages. While Slackware's gst* is using version 0.10.x, my gst* packages is using version 1.0.x which is requirement for GNOME 3.8. You can have those packages #SlackBuild from SlackBuilds.org or using my SlackBuild at GitHub.

You also can find my complete list of my GNOME 3.8 SlackBuild at #Github. Don't forget to read the README.TXT for building instruction. But please note that GDM was not able to runs normally in my machine. Probably because it hits bug as described here:

So for now I'm using sddm which is using Qt but more robust and simple rather than GTK-based display manager.

Feel free to contact me here if you have any question about my GNOME 3.8 SlackBuild. Enjoy...

Kafir Hanya Gara-gara Kata Alien

 Widya Walesa  |  2013/06/05 06:22:33 WIB  |  2020/08/13 22:35:05 WIB

Sebenarnya saya sudah ingin mematikan komputer dan tidur, tetapi komentar-komentar aneh bin ajaib di salah satu tautan dari #Kompas.com di jejaring sosial #Facebook berhasil memicu munculnya tulisan ini.

Tautan dari Kompas.com itu sebenarnya berisi tentang keberhasilan Tim Ilmuwan Eropa memfoto sebuah #planet asing berjarak 300 tahun cahaya dari bumi. Planet asing ini dianggap mirip dengan bumi tetapi karena belum diketahui karakteristiknya secara mendetail disebutlah planet tersebut sebagai Planet Alien. Istilah #Alien sendiri menurut Merriam-Webster adalah sebutan untuk sesuatu/hal yang benar-benar asing, tidak pernah diketahui sebelumnya, tidak ada padanannya dengan yang sudah ada, aneh, dan sejenisnya. Jaman dahulu kala, bangsa-bangsa non-kulit putih disebut alien oleh orang-orang #Eropa karena kebudayaannya yang asing menurut mereka.

Ajaibnya, kata alien inilah yang malah menjadi topik baik di tulisan ini, maupun di komentar-komentar orang-orang tersebut. Segala ayat dari kitab suci dan cacian jadi satu dalam baris-baris komentar untuk menyangkal keberadaan alien. Padahal bukan itu topik utama artikel tersebut. Kata alien itu hanya istilah untuk menggambarkan ke-asing-an planet yang baru ditemukan tersebut. Jadi kata alien dalam artikel tersebut bukan menggambarkan sebuah mahluk hidup yang rupanya seperti dalam film #E.T. misalnya.

Dengan menyebutkan kutipan ayat-ayat suci tetapi salah tujuan dan maksudnya, tidaklah membuat mereka-mereka itu menjadi pintar. Terus terang saya malu karena beberapa menyebutkan ayat-ayat suci Al Qur'an untuk menolak isi artikel tersebut yang sebenarnya tidak nyambung sama sekali dengan isi artikel. Boleh jadi tingkat pemahaman mereka-mereka itu memang hanya sebatas judul artikel tanpa mau tahu isi artikelnya. Yang artinya mereka-mereka itu tidak perlu sebuah telaah/pembacaan yang lengkap untuk mengetahui suatu hal. Yang demikian ini memang khas #Indonesia. Tak heran mudah sekali orang-orang Indonesia itu bereaksi negatif (suudzon) terhadap suatu hal, hanya berdasarkan sampulnya. Tak heran tayangan-tayangan infotainmen berisi gosip-gosip ratingnya tinggi.

Mudah-mudahan di antara mereka ada yang baca tulisan ini supaya mereka bisa belajar untuk menjadi pribadi yang lebih baik. Aamiin.