Re: Kompilasi MPlayer (Menjawab Iang)

Posted on July 27th, 2010 in celoteh, linux | 4 Comments »

Karena jawabannya cukup panjang, saya putuskan untuk menjadikan ini sebuah entri baru. Untuk lebih jelas, saya mencoba merunut apa yang saya sudah lakukan.

#1 Mengunduh MPlayer subversion harian dari situsnya.

#2 Mengonfigurasinya dengan parameter baku tanpa embel-embel

$./configure --prefix=/usr

#3 Mengubah berkas config.mak

Konfigurasi mengubah CFLAGS, CXXFLAGS, dan DEPFLAGS dengan mengubah nilai "-march=native" menjadi "-march=core2" dan menambahkan "-msse4.1".

#4 Buat dan pasang seperti biasa.

 

#Hasil dengan keluaran video baku (-vo xv)

Dengan menggunakan Xv, memutar film menghabiskan CPU sekitar 60%. Hasil keluaran dengan nama film sengaja disamarkan disisipkan di akhir entri ini.

#Hasil dengan menggunakan video vdpau (-vo vdpau)

Sayangnya, dengan menggunakan VDPAU, malah menghasilkan 70~80% lebih. Apakah ada yang salah  dengan konfigurasi kompilasi? Kemungkinan, sih, karena memakai blob NVIDIA versi 256.25 (beta).

#Lampiran Keluaran Xv:

MPlayer SVN-r30554-4.4.4 (C) 2000-2010 MPlayer Team

Playing *CENSORED*_[1920×1080_h264][CB5C7E26].mkv.
libavformat file format detected.
[matroska @ 0×1363a50]max_analyze_duration reached
[matroska @ 0×1363a50]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (h264), -vid 0, x264
[lavf] stream 1: audio (aac), -aid 0, -alang jpn, AAC
[lavf] stream 2: subtitle (unknown), -sid 0, -slang eng, ASS
VIDEO:  [H264]  1920×1080  0bpp  23.976 fps    0.0 kbps ( 0.0 kbyte/s)
Clip info:
 title: *CENSORED*
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
FAAD: compressed input bitrate missing, assuming 128kbit/s!
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback…
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1920×1080 => 1920×1080 Planar YV12

Inception

Posted on July 26th, 2010 in review | No Comments »

This movie is a festival-type film on mainstream. Talking about lucid dreams and the power of maintaining loop invariance of its recursiveness. I would love to say that this film is a post-modernist film. Well, what ever….

Love: A Geeky Way

Posted on July 26th, 2010 in celoteh | 6 Comments »

i-love-you.png

I Hate Vendor-Locked Solution!

Posted on July 23rd, 2010 in celoteh, frontpage, linux, rant, tips, ubuntu | 1 Comment »

Ugh, ingin rasanya mencak-mencak. Tapi saya sadar, blog ini dikonsumsi oleh khalayak ramai. Jadi, saya coba curhat dengan mengerem saja. Kalau mau baca curhatan saya silakan, kalau tidak, ya, silakan lewat saja.

Saat ini saya sedang berbulan madu dengan Gentoo. Saya berhasil memasang KDE4.4, Netbeans, MPlayer, yakuake, dan qmmp. Sungguh luar biasa! Saya bisa mendengarkan musik, memainkan berkas film kualitas HD, dan menjalankan Netbeans 6.9 tanpa membuat PC bernyanyi Poco-poco.

Pengetahuan kompilasi optimal dengan Gentoo ini lalu saya konversikan ke instalasi Debian/Ubuntu saya. Lumayan, pada mesin Celeron, MPlayer yang dikompilasi ulang menurunkan beban CPU dari ~90% menjadi ~1% saja. Saya berencana untuk mengompilasi ulang beberapa paket di Debian/Ubuntu (Hey, itu sebabnya ada deb-src). Entahlah, saya harus membaca-baca dulu spesifikasi SSSE3.

Sayangnya, bulan madu dengan kompilasi berjalan tidak mulus. Saya menemukan kesulitan ketika saya hendak mengompilasi salah satu komponen e-Akses, saya menemui kegagalan. Padahal, saya sudah mengorbankan kesucian 64 bit dengan memasang emulasi 32 bit. Oh, tidak, ternyata gara-gara sebuah komponen tertutup yang terkompilasi 32 bit.

Dasar vendor!

Haduh, itu pustaka dikompilasi dengan 32 bit. Sudah begitu, pustaka itu menggunakan libstdc++5, sebuah pustaka kuno! Ayolah, zaman begini masih pakai pustaka tersebut? Padahal, distro-distro terbaru (termasuk Ubuntu semenjak Lucid) sudah tidak lagi memaketkan libstdc++5 — sudah bertahun-tahun pindah ke libstdc++6!

Benar kata [ARLIED], mengapa pembuat perangkat keras masih saja menyembunyikan pustaka yang hendak mengakses perangkat keras mereka? Bukankah mereka seharusnya membuat perangkat keras? Terkadang, saya juga tidak habis pikir dengan alasan perlindungan kekayaan intelektual. Terhadap apa? Bukankah disain perangkat keras mereka sudah dilindungi hak cipta?

Saat ini, pasar solusi berbasis GNU/Linux meningkat. Hal ini karena adanya inovasi dan implementasi sistem embedded. Perangkat Windows, .NET, dan segala macam yang ringkih tidak lagi menjadi dominasi. Semua semakin menginginkan efisiensi dan performa, termasuk dari segi biaya.

Coba kita lihat peta GNU/Linux dan FOSS secara umum dalam percaturan perangkat keras.

Nokia yang sudah mengakuisisi Trolltech berniat membuat implementasi Meego yang lebih dahsyat dengan menggunakan Qt. Nokia ditemani Intel akan membuat solusi yang menarik, Untuk sementara, ponsel N900 cukup memuaskan dahaga para pengilik FOSS. Berbagai perkakas kecil yang dibuat dari Qt semakin memperkaya ponsel Symbian ini. Oh, ya, tahukah Anda bahwa kernel Symbian sudah dirilis ulang sebagai kode terbuka (open source)?

Siapa yang tidak tahu Google? Dia dan Androidnya, yang walau pun cukup dimaki-maki karena sering kali mengembangkan di belakang layar lalu merilis penuh, memberi napas baru kepada FOSS. Android telah memberi kesan kepada khalayak bahwa FOSS bukan aplikasi main-main.

Lalu bagaimana Indonesia?

Saya terus terang senang dengan IGOS, POSS, Aria Hidayat, mdamt, dan orang-orang lainnya yang telah mengharumkan nama FOSS di Indonesia. Tetapi, selama perguruan tinggi di Indonesia tidak menangkap ombak ini, pergerakan FOSS di Indonesia hanya usaha perorangan saja. Bayangkan, masakkan masih ada seorang praktisi IT yang ngeri menggunakan GNU/Linux? Lagipula, masakkan sampai sekarang Indonesia masih menganggap bahwa GNU/Linux hanyalah subtitusi Windows.

Yang benar saja!

Ada falsafah, pengajaran, dan kualitas yang dikejar dalam FOSS. FOSS tidak sekedar berbicara mengenai perangkat lunak gratis. FOSS mengajarkan kreativitas. FOSS mengajarkan humanitarian dan etika akademik. FOSS mengajarkan penghargaan setinggi-tingginya kepada manusia, bukan perusahaan.

Lihat Brazil. Oh, jangan, lihat yang paling dekat saja: Malaysia. Walau pun mereka terlambat masuk, sekitar 2008, sekarang ini mereka berpindah ke FOSS dengan perlahan tapi pasti.

Ugh, kok, makin melebar? He… he… he…

Maksud saya, sayang sekali Indonesia tidak secara terstruktur berpindah ke FOSS. Bayangkanlah, seandainya itu bisa terjadi, kita bisa membuat industri solusi elektronik yang cerdas. Bukan hanya mengimpor dari Cina.

Seandainya itu tidak terjadi, saya tidak akan mencak-mencak. Karena, saya tahu, saya mendapat dukungan penuh dari vendor (yang notabene bangsa sendiri) yang merilis perangkat kerasnya untuk dikembangkan semakin keren secara bersama-sama.

Anda tidak tahu, mungkin ada fungsionalitas dari produk Anda yang belum Anda pikirkan sebelumnya dan ada orang lain dalam komunitas yang menemukan fungsionalitas itu.


Referensi:

[ARLIED] http://airlied.livejournal.com/73115.html

Intel i8xx Fix on Ubuntu Lucid

Posted on July 22nd, 2010 in linux, tips, ubuntu | 2 Comments »

[PHORONIX] Baru saja mengumumkan kabar baik mengenai GPU Intel, terutama i8xx. Seperti yang kita ketahui bersama, Lucid "dianugerahi" dengan galat pada driver GPU Intel. Hal ini karena memang Intel sedang merestrukturisasi driver-nya. Dimulai dengan penggabungan driver -i910 dan -i810 menjadi satu -intel. Lalu kemudian, Intel berusaha mengembangkan GEM/UXA untuk mendukung KMS. Sayangnya, hal ini menyebabkan regresi terhadap GPU lama seperti seri i8xx.

Baru kemarin [PHORONIX] memberitakan bahwa pengembang Ubuntu menambal driver mereka dengan versi lama. Saya sudah mencobanya dan memang sistem menjadi stabil. Silakan kunjungi [RAOF] untuk info lebih lanjut. Intinya, berikut yang dapat dilakukan.

$ sudo add-apt-repository ppa:raof/aubergine

$ sudo apt-get update

$ sudo apt-get dist-upgrade

Ya, ada beberapa langkah yang dilewati, seperti misalnya mengimpor kunci. Tapi, intinya, driver Intel akan ditatar.

Referensi:

[PHORONIX] Phoronix. http://www.phoronix.com/scan.php?page=news_item&px=ODQzMQ

[UBUNTU] Ubuntu Mailing https://lists.ubuntu.com/archives/ubuntu-x/2010-July/000905.html

[RAOF] https://edge.launchpad.net/~raof/+archive/aubergine

Mengompilasi Sendiri MPlayer

Posted on July 20th, 2010 in linux, tips, ubuntu | 7 Comments »

Dari  perjalanan di Gentoo dan pengembangan sebuah aplikasi in-house, saya menemukan bahwa MPlayer lebih bagus kalau dikompilasi sendiri.

Saya asumsikan bahwa Anda telah memasang MPlayer. Kita tinggal menimpa yang lama dengan yang baru. Memang, cara ini tidak disarankan dan lebih baik apa bila dibuatkan paketnya dengan menggunakan checkinstall. Apabila Anda seorang purist, silakan pasang: (bagi yang malas, silakan lewati)

$ sudo apt-get install checkinstall

Setelah itu, pasang saja semua kebutuhan MPlayer: (Peringatan: banyak paket terpasang!)

$ sudo apt-get build-dep mplayer

Setelah itu, unduh dari http://mplayerhq.hu kode sumber terbaru. Saya mengunduh snapshot hari ini dan mengekstrasinya:

$ tar xvfj ~/Unduhan/Mplayer/mplayer-checkout-snapshot.tar.bz2

$ cd mplayer-checkout-2010-07-20

MPlayer secara unik mendeteksi prosesor yang kita pakai. Kita harus memastikan variabel CFLAGS dan sejenisnya tidak termuat agar skrip konfigurasi dapat menentukan dengan benar konfigurasi untuk kompilasi MPlayer. Cukup jalankan:

$ ./configure --prefix=/usr

Saya sedikit curang dan mengganti konfigurasi pada berkas config.mak pada baris yang mengandung CFLAGS, CXXFLAGS, dan DEPFLAGS (sekitar baris 30 s.d. 32). Saya mengganti setiap yang mengandung "-mcpu=native -mtune=native" menjadi "-mcpu=core2 -mtune=native -msse4.1". Maklum, saya takut nanti MPlayer tidak teroptimasi untuk SSE 4.1.

Pasang ke sistem:

$ sudo make install

atau 

$ sudo checkinstall

Nikmati berkurangnya pemakaian CPU! Untuk pengguna laptop yang memiliki vdpau sangat diuntungkan dengan kompilasi sendiri.

Perjalanan Saujana dalam Gentoo

Posted on July 20th, 2010 in review, tips | No Comments »

Setelah ditinggal pergi Sabtu-Minggu, akhirnya Gentoo 64bit telah selesai memasang KDE4.4. Perjalanan terganggu ketika saya gagal masuk ke dalam sistem. Setelah berguru kepada Mbah Gugel dan bersemedi berjam-jam, akhirnya saya putuskan bahwa masalahnya ada pada perangkat keras, Acer Aspire. Sebelum Anda menuduh Acer jelek, saya perlu kemukakan bahwa komputer yang saya gunakan adalah sebuah PC bermerek yang sudah dimodifikasi. Saya hapus instalasi Windows Vista Premium (asli, karena bermerk). Omong-omong, bisakah di Indonesia kita minta refund untuk sistem operasi mahal itu?

Saya memasang sendiri 2 GB memori (bakunya 1 GB). Lalu, saya memasang kartu pengendali SCSI. Nah, ternyata, kartu pengendali inilah yang menyebabkan komputer ini gagal memuat Gentoo yang terpasang pada SATA. Anehnya, BIOS hanya mengenali SCSI saja. Akhirnya demi Gentoo, saya mencopot SCSI saya. Sebuah keputusan berat, namun cukup berarti. Akhirnya saya bisa memuat Gentoo. Mungkin saya perlu menambal BIOS dengan firmware yang baru. Beberapa modifikasi saya buat pada berkas /etc/make.conf untuk dapat mengompilasi secara optimal.

# Konfigurasi kompilasi

Saya mengubah kompilasi saya dengan menambahkan perintah sebagai berikut:

CFLAGS="-O2 -pipe -march=core2 -mtune=native -msse4.1"

Sebenarnya bisa saja ditambahkan "-fomit-frame-pointer" untuk membuang simbol-simbol debug. Tapi, saya rasa ini cukup aman untuk konfigurasi saya (CPU Core2 Duo E7400)

# Pemasangan Sun JDK

Pemasangan SUN Oracle JDK cukup rumit. Ternyata, kita harus menambah variabel berikut pada berkas /etc/make.conf atau pada berkas /etc/portage/package.license, yaitu:

 

ACCEPT_LICENSE="dlj-1.1"

Jika ada lisensi lain yang diperlukan dapat ditambahkan dengan pemisahan menggunakan spasi. Setelah ada dibuat seperti demikian, kita baru bisa memasang dengan normal paket sun-jdk.
 
Saya mengunduh driver NVIDIA Beta dari situs NVIDIA. Lalu, saya mengunduh driver Omnikey 5321 dari situsnya (wow, mereka menatar driver Linux). KDE 4 berjalan stabil, bagus, dan responsif. Masih banyak kilikan lainnya yang saya belum paparkan, tetapi rasanya itu perlu di episode selanjutnya. :D

Trying Gentoo: A Compiling Distro

Posted on July 16th, 2010 in admin, linux, review | No Comments »

Sambil menunggu KDE 4.4 selesai dipasang, saya memutuskan untuk mengisi blog ini. Ada sekitar 220+ paket yang perlu dipasang. Komputer kerja saya (Core2 Duo 2GB) pun terasa lambat. Entah saat ini sudah paket ke berapa. Sudah selesai ganti-ganti tema blog, menyampah di jejaring sosial, dan menjalani blog-blog orang, ternyata kompilasi masih saja berjalan.

Sebelum ada yang marah-marah, perlu saya beritahukan kalau saya adalah seorang pengguna Debian. Jadi, kalau saya membandingkan dengan Debian/Ubuntu, itu semata-mata demi petualang-petualang lain yang mungkin juga sama dengan saya.

Berbicara tentang kompilasi, dulu saya pernah memasang Linux From Scratch (LFS). Waktu yang dibutuhkan sekitar sebulan lebih. Dari LFS ke BLFS paket GNOME, saya membutuhkan waktu beberapa minggu. Proses yang lama itu termasuk untuk mengunduh paket-paket kode sumber. Instalasi kala itu sangat lama, terutama ketika membuat bootstrapping.

Apakah bootstrapping?

Bootstrapping adalah sebuah fase untuk menciptakan lingkungan perantara sebelum benar-benar memasang sistem. Fase ini diperlukan agar sistem yang kita buat itu dikompilasi dengan ABI (Application Binary Interface) yang sama. Untuk menjaga konsistensi, pustaka dasar seperti GCC dan GLIBC harus dikompilasi oleh pustaka dengan versi yang sama. Selain itu, harus dipastikan bahwa setiap pustaka dasar itu menaut kepada dirinya sendiri, bukan pustaka induk mau pun pustaka lingkungan perantara. Itu sebabnya, GCC dikompilasi sekitar 3 kali dan proses kompilasi itu diulang lagi kemudian.

Jika Anda seorang bintang porno (istilah Gentoo untuk orang-orang yang suka hardcore, benar-benar membangun dari dasar), proses penciptaan lingkungan perantara ini dinamakan Stage 1 dan Stage 2. Untungnya, Gentoo tidak membiarkan saya kembali ke zaman pra sejarah tersebut. Gentoo sudah membuat sebuah lingkungan hasil bootstrapping-nya sendiri yang diberi nama Stage 3.  Stage 3 adalah sebuah lingkungan dasar yang bisa dibuka dan dipasang langsung ke sebuah partisi kosong. Semacam debootstrap pada Debian.

Kalau di Debian/Ubuntu, saya akan lakukan seperti ini:

$ debootstrap lucid /mnt/target http://kambing.ui.ac.id/ubuntu

Sedangkan kalau di Gentoo:

$ tar xvfj /tmp/stage3-latest.tar.bz2 -C /mnt/target

Saya masih mereka-reka sistem pemaketan Gentoo. Yang saya baca, mereka menggunakan Portage. Portage menggunakan Ebuild. Intinya, sebuah skrip untuk mengunduh dan memasang paket. Yang saya suka, mereka mengizinkan kita untuk mengatur sendiri parameter-parameter yang diperlukan. Kebetulan, sewaktu zaman jahiliyah dulu, saya suka memain-mainkan parameter GCC. 

Untuk kompilasi, saya pasang berikut di berkas /etc/make.conf saya:

CFLAGS="-march=core2 -msse3 -mtune=native -O2 -pipe"

CXXFLAGS="${CFLAGS}"

Saya tidak tahu, apakah penggunaan SSE 4.1 didukung oleh GCC 4.4? Ada, sih, parameternya dengan menggunakan -msse4.1. Tapi, saya masih belum yakin kalau itu didukung penuh. Saya juga tertarik untuk mencoba LLVM, tapi belum sempat belajar. Saya juga mau coba pakai EGLIBC bukan GLIBC. Ugh, banyak juga, yah, keinginan….

Berhubung Core2 Duo punya dua inti, buat 2 kompilasi paralel:

MAKEOPTS="-j2"

Pasang server terdekat (benar-benar dekat, tinggal nyerosot sebentar):

SYNC="rsync://kambing.ui.ac.id/gentoo-portage"

DIST_MIRRORS="http://kambing.ui.ac.id/gentoo"

Lalu tinggal jalankan emerge seperti di dalam buku panduan Gentoo. Untuk beberapa entri mendatang saya akan membahas petualangan di dunia kompilasi saya. Jadi, mohon maaf jika bahasa semakin kotor. Saya akan menyelipkan entri yang ringan juga agar blog ini tidak berat.

Bacaan dan bahan menarik yang saya mau buat:

http://psykil.livejournal.com/tag/gentoo

http://www.linuxfromscratch.org/pipermail/hints/2002-June/000969.html

 

 

Ubuntu Kernel Collections

Posted on July 15th, 2010 in admin, linux, ubuntu | 1 Comment »

Untuk mengambil kernel-kernel Ubuntu:

http://kernel.ubuntu.com/~kernel-ppa/mainline/

OSS4 Moving To Sourceforge

Posted on July 15th, 2010 in linux, tips | No Comments »

OSS4 is moving its code to Sourceforge. They still use mercurial. To obtain the code in new place:

$ hg clone http://opensound.hg.sourceforge.net/hgweb/opensound

Further reading:

http://www.opensound.com/wiki/index.php/Building_OSSv4_from_source