Tag Archives

13 Articles
Memasang Python 3.6.4 pada Debian dan Turunannya
ID Python

Memasang Python 3.6.4 pada Debian dan Turunannya

Cara sebelumnya menggunakan pyenv, sebuah perkakas yang membantu untuk memasang Python 3. Python 3.6 menyatakan bahwa paket pyenv sudah kedaluwarsa, alias sudah tidak akan dipakai lagi. Ya, sudah, dari pada ada masalah, mari memasang dengan mengompilasi dari kode sumber. Sekalian saja, mengoptimasi pemasangan.

Seperti yang lain, pasang paket yang dibutuhkan:

sudo apt install -y build-essential libbz2-dev libssl-dev libreadline-dev libsqlite3-dev tk-dev libpng-dev libfreetype6-dev

Unduh kode sumber, ekstraksi, dan masuk ke direktori:

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
tar xvfJ Python-3.6.4.tar.xz
cd Python-3.6.4/

Konfigurasi dengan optimasi menyeluruh:

CXX="/usr/bin/g++" CFLAGS="-march=native -mtune=native -pipe" CXXFLAGS=$CFLAGS ./configure --enable-optimizations --with-lto --enable-shared  --with-system-expat --with-system-ffi --with-system-libmpdec --with-ensurepip=yes

Kompilasi:

make -j$(nproc)

Ada sekitar 406 tes yang harus dilewati. Untuk itu, sebaiknya saat kompilasi Anda menyapa keluarga Anda, gebetan Anda, atau pun rekan di sebelah Anda. Ingat! Anda tidak sendirian di dunia ini.

Pasang dengan nama alternatif agar tidak bentrok dengan Python yang telah terpasang di sistem:

sudo make altinstall

Konfigurasi Sebuah Lingkungan Python versi 3.6.4

Cara untuk membuat sebuah lingkungan terisolasi yang didukung oleh Python adalah dengan menggunakan perkakas venv. Perkakas pyenv sudah kedaluwarsa dan tidak disarankan pengembang Python.

Pasang sebuah lingkungan baru:

python3.6m -m venv ~/.local/python-3.6.4

Masukan direktori lingkungan lokal tersebut ke PATH dan simpan di ~/.bashrc agar tersimpan PATH baru tersebut.

echo "PATH=~/.local/python-3.6.4/bin:$PATH" >> ~/.bashrc
source ~/.bashrc

Jalankan Python versi 3.6.4

Untuk menjalankan Python yang sudah terpasang:

source activate

Untuk mematikan — mengembalikan ke Python versi sistem:

source deactivate

Selesai.

Resep: Jemalloc

Resep: Jemalloc

Pastikan bahwa:

sudo apt-get install build-essential autoconf

terpasang. Perkakas autoconf diperlukan untuk membuat makro-makro yang dibutuhkan. Hal ini karena versi VCS biasanya perlu menjalankan autogen.sh untuk membuat skrip configure.

Ambil dari GIT:

git clone https://github.com/jemalloc/jemalloc.git && cd jemalloc

Lakukan tiga langkah sulap seperti biasa:

./autogen.sh
./configure --prefix=/usr --enable-lazy-lock EXTRA_CFLAGS='-march=native -mtune=native'
make -j$(nproc)
sudo make install_bin install_include install_lib

Eh, empat, deh. Lupa. Kalau memasang dari repositori langsung, bukan versi terbit, harus dibuatkan makronya terlebih dahulu. Baris configure saya tambahkan parameter GCC untuk menggunakan kode-kode ke prosesor saya berhubung jemalloc untuk laptop. Baris make dijalankan sebanyak jumlah prosesor. Baris instalasi secara spesifik dijabarkan untuk hanya memasang pustaka dan binari jemalloc. Ada galat kompilasi dokumentasi di jemalloc yang menyebabkan pemasangan menyeluruh (sudo make install) menjadi gagal.

Kompilasi PHP 5.2 pada Debian Jessie

Kompilasi PHP 5.2 pada Debian Jessie

Seperti halnya mantan terindah, aplikasi penting sering kali tidak dapat dilupakan begitu saja. Ia menyeruak masuk kembali dan selalu saja menempati ruang pikiran. Di saat keyakinan melangkah untuk maju, kembali hati jatuh ke relung yang sama.

Inilah kisah dari seorang yang gagal move on dari PHP 5.2 untuk semua saudara/i yang juga gagal move on. CMUNGUDH!

Dari pada menambah ketidakjelasan di hati, berikut asumsi saya agar kita tidak salah paham:

  1. Unduh semua pada satu direktori. Ingat! Satu direktori, jangan terpisahkan.
  2. Semua dilakukan sebagai pengguna biasa, bukan yang berkuasa.
  3. Silakan cari paket-paket pengembang yang diperlukan, saya lupa soalnya. Itu ada di masa lalu. Saya berasumsi Anda sudah memasang paket-paket yang dibutuhkan. Nanti sambil konfigurasi bisa tahu, kok, paket apa saja.

Pasang Paket Yang Dibutuhkan

Lupa saya, tee hee…

Unduh PHP dan Semua Tambalannya

Pada satu direktori, mari unduh berkas-berkas yang dibutuhkan.

export PHP_VERSION=5.2.17

# PHP 5.2
wget "http://museum.php.net/php5/php-$PHP_VERSION.tar.bz2"

# PATCHES
wget https://github.com/TommyLau/docker-lnmpa/raw/master/php/5.2/php-5.2.17-libxml2.patch
wget https://github.com/TommyLau/docker-lnmpa/raw/master/php/5.2/php-5.2.17-openssl.patch

# PHP-FPM
wget "http://php-fpm.org/downloads/php-$PHP_VERSION-fpm-0.5.14.diff.gz" -O php-fpm.diff.gz

ABI dan API XML2 dan OpenSSL berubah pada Debian Jessie, sehingga perlu disesuaikan.

Tambal PHP 5.2

Ekstraksi PHP 5.2 dan masuk ke direktori hasil ekstraksi:

tar xvfj php-5.2.17.tar.bz2
cd php-5.2.17

Di direktori PHP, tambal dengan urutan sebagai berikut:

# Patches for Debian Jessie
patch -Np1 -i ../php-5.2.17-libxml2.patch
patch -Np1 -i ../php-5.2.17-openssl.patch

# Patch for PHP-FPM
zcat ../php-fpm.diff.gz | patch -Np1

Saya malas bikin berkas tambalan. Lakukan saja ini untuk memperbaiki skrip konfigurasi dalam mencari pustaka Freetype:

sed -i 's/freetype2\/freetype/freetype/' configure

Konfigurasi PHP 5.2 untuk Siap Dikompilasi

Pada proses ini, mungkin ada paket pengembangan yang lupa terpasang. Silakan ditelusuri saja.

CFLAGS="-O3 -pipe -march=native -mtune=native -fomit-frame-pointer" './configure'  '--prefix=/opt/php52' '--with-config-file-path=/opt/php52/etc' '--disable-debug' '--with-zlib' '--with-pcre-dir' '--with-gd' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-zlib-dir=/usr' '--with-freetype-dir=/usr' '--enable-gd-native-ttf' '--with-ldap' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-zip' '--with-mcrypt' '--with-xmlrpc' '--enable-mbstring=shared' '--with-openssl=shared' '--with-mysql=shared' '--with-gettext=shared' '--with-zend-vm=GOTO' '--enable-bcmath' '--with-snmp=/usr' '--with-xsl' '--enable-fastcgi' '--enable-fpm' '--with-mysqli' '--with-libdir=lib/x86_64-linux-gnu'

Yang terpenting ada dua:

CFLAGS=”-O3 -pipe -march=native -mtune=native -fomit-frame-pointer”
ini optimasi kompilasi. Lakukan baris ini bila kompilasi dilakukan pada mesin yang sama atau lingkungan yang sama dengan mesin tujuan.
‘–with-libdir=lib/x86_64-linux-gnu’
Debian Jessie menaruh pustaka 64-bit tidak lagi di /usr/lib64, tetapi di /usr/lib/x86_64-linux-gnu.

Anda dapat juga mengganti direktori pemasangan sesuai selera Anda. Misalnya, Anda penggemar FHS sehingga menggunakan /usr/local atau di tempat lain.

‘–prefix=/opt/php52’
Tempat pemasangan PHP 5.2, Anda dapat mengganti ini sesuai selera.
‘–with-config-file-path=/opt/php52/etc’
Konfigurasi berkas. Anda dapat menaruhnya di /etc/php52, misalnya, agar konsisten dengan Debian.

Sebelum kompilasi, ubah pustaka XML2 dan SSL yang hendak ditautkan ke PHP pada Makefile

sed -i 's/-lxml2 -lxml2 -lxml2/-lcrypto -lssl/' Makefile

Selanjutnya, PHP siap untuk dikompilasi.

Kompilasi dan Pasang PHP

Kompilasi dan PHP 5.2

make -j"$(nproc)"
sudo make install

Sampai sini saya pikir untuk konfigurasi PHP FPM dan pemasangan berkas init tidak perlu saya tulis, ‘kan?

Silakan tulis di komentar kalau memang perlu saya buatkan tutorial memasang skrip SystemD dan Sysvinit.

Ucapan Terima Kasih

Terima kasih kepada

Getting KF5’s Yakuake on Kubuntu

Ini adalah Yakuake versi yang belum dirilis dan berjalan pada sistem yang belum rilis pula, Kubuntu 14.10. Saya cuma mau menulis catatan saja. Itu sebabnya, saya tidak akan menulis dengan lengkap.

Pagi ini Yakuake saya rusak. Penyebabnya adalah Yakuake masih menggunakan Konsole dari KDE4, sedangkan Kubuntu telah mengganti dengan KF5 (nama resmi KDE5 adalah KF5). Ya, sudah, saya pun mencari kode sumber untuk dapat memasang Yakuake.

Saya mesti memasang:

 

sudo apt-get install extra-cmake-module libkf5notifyconfig-dev libkf5newstuff-dev libkf5parts-dev libqt5x11extras5-dev

Selanjutnya saya mengambil Yakuake dari cabang GIT untuk KF5:

git clone git://anongit.kde.org/yakuake.git -b frameworks

Ciptakan direktori untuk kompilasi dan masuk ke sana.

mkdir yakuake/bangun && cd yakuake/bangun
cmake ../     -DCMAKE_BUILD_TYPE=Release     -DCMAKE_INSTALL_PREFIX=/usr     -DLIB_INSTALL_DIR=lib     -DKDE_INSTALL_USE_QT_SYS_PATHS=ON     -DSYSCONF_INSTALL_DIR=/etc
make -j3
sudo make install

Selesai.

Referensi

Galat Heartbleed pada OpenSSL

Galat Heartbleed pada OpenSSL

Selagi Pemilu, ternyata muncul sebuah kehebohan tentang galat pada OpenSSL. Saya belum sempat menulis karena kehebohan Pemilu lebih terasa. Saya sudah memilih, loh.

Kehebohan tentang OpenSSL dikarenakan adanya sebuah modul di OpenSSL yang bernama Hearbeats. Modul ini menyebabkan OpenSSL membuka sampai 64KB memori untuk dibaca. Itu sebabnya, galat ini berbahaya karena bisa jadi 64KB memori itu berisi login, sandi, atau sertifikat X.509.

Cara mengatasinya?

Galat ini hanya ada pada OpenSSL versi 1.0.1 s.d. 1.0.1f dan 1.0.2-beta. Silakan tingkatkan ke versi 1.0.1g atau 1.0.2-beta1.

Atau cara kedua adalah dengan mematikan Hearbeats. Caranya dengan mengompilasi ulang OpenSSL Anda dengan menambah “-DOPENSSL_NO_HEARTBEATS” pada kompilasi untuk mematikan Heartbeats pada kompilasi.

Cara Paling Gampang

Anda sudah mengaktifkan repo keamanan distro Anda? Ya, tinggal:

$ sudo apt-get update && sudo apt-get dist-upgrade

Selesai.

Cara Agak Susah

Cara agak susah adalah dengan mengompilasi sendiri. Bisa ikuti cara BLFS.

Unduh OpenSSL-1.0.1g dan semuanya.

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
$ wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.1g-fix_parallel_build-1.patch
$ wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.1g-fix_pod_syntax-1.patch

Buka dan tambal paket.

$ tar xvfz openssl-1.0.1g.tar.gz
$ cd openssl-1.0.1g
$ patch -Np1 -i ../openssl-1.0.1g-fix_parallel_build-1.patch
$ patch -Np1 -i ../openssl-1.0.1g-fix_pod_syntax-1.patch

Kompilasi.

$ ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic
$ make

Saya pikir Debian tidak akan menggunakan pustaka statik. Maka, matikan saja dari pada mengotori sistem.

$ sed -i 's# libcrypto.a##;s# libssl.a##' Makefile

Selanjutnya pasang.

$ sudo make MANDIR=/usr/share/man MANSUFFIX=ssl install
$ sudo install -dv -m755 /usr/share/doc/openssl-1.0.1g
$ sudo cp -vfr doc/* /usr/share/doc/openssl-1.0.1g

Beres.

Cara saya

Hmm… cara saya terlalu rumit untuk ditulis di sini. Nanti saja.

Bacaan Lebih Lanjut

Gentoo Gagal Memasang libX11

Gentoo Gagal Memasang libX11

Terjadi kegagalan mengompilasi libX11. Pesan gagal:

=x11-libs/libX11-1.6.2 with x11-libs/libxcb-1.9.1-r1 – …/work/libX11-1.6.2/src/xcb_io.c:337:18: error: ‘xcb_ge_event_t’ has no member named ‘full_sequence’

Saya kira karena LTO atau graphite. Biar saya sudah mematikan kedua fitur tersebut dari GCC, tetap saja gagal. Setelah selidik punya selidik, ternyata menurut dokumentasi Gentoo, saya harus melakukan ini:

# emerge -1av x11-proto/xcb-proto x11-libs/libxcb
# emerge -1av x11-proto/xproto x11-proto/xextproto x11-libs/libX11 x11-libs/libXext

Hal ini terjadi karena konflik dari libxcb-x11 dari libX11.

Blankon 9 Jahitan 1: Infinality

Blankon 9 Jahitan 1: Infinality

Bagi saya huruf di BlankOn terlihat kabur (blurry) pada monitor saya (1600×900) Mungkin ada konfigurasi yang perlu diperbaiki. Mungkin ada paket yang perlu ditambahkan. Mungkin perlu banyak berdoa.

Untuk solusi grafik lebih jelas, Apple memberikan solusi dengan menambah resolusi dan menamainya Retina display. Sayangnya, monitor saya tidak sebagus itu. Dengan resolusi terbatas, saya pun berusaha membuat tulisan yang jelas, kriuk, dan indah.

Memasang Konfigurasi Fontconfig Infinality

Cara yang pertama adalah dengan memasang sekumpulan konfigurasi yang dibuat dengan konfigurasi Infinality. Ini seperti yang dikemukakan oleh WebUpd8:

echo "deb http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu raring main" | sudo tee /etc/apt/sources.list.d/infinality.list
echo "deb-src http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu raring main" | sudo tee -a /etc/apt/sources.list.d/infinality.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E985B27B
sudo apt-get update

Lalu pasang paket konfigurasi Infinality.

sudo apt-get install fontconfig-infinality

Saya mengikuti konfigurasi di komputer kerja saya (Gentoo) dengan memasang konfigurasi gaya infinality, Anda bisa pilih yang lain dengan membaca artikel. Berikut cara saya mengganti konfigurasi:

sudo bash /etc/fonts/infinality/infctl.sh setstyle infinality

Anda dapat mengganti gaya infinality dengan gaya-gaya berikut:

debug infinality linux osx osx2 win7 win98 winxp

Sampai di sini Anda bisa lihat perubahan, atau lebih afdol kalau keluar dari destop dan masuk kembali.

Memasang Freetype yang sudah ditambal

Anda bisa mengikuti cara di bawah ini sebagai bahan pembelajaran membangun paket Debian. Atau, silakan unduh paket yang sudah jadi pada http://kambing.ui.ac.id/jp/infinality/ dan pasang sendiri paket libfreetype6_2.4.12-0ubuntu0ppa1_amd64.deb.

Untuk tingkat lanjut, saatnya memasang Freetype yang ditambal dengan tambalan Infinality. Versi yang tersedia di repositori adalah untuk Ubuntu Raring. Untuk itu, saya sarankan  paket Freetype tersebut dikompilasi ulang khusus untuk BlankOn.

Pertama-tama persiapkan tempat untuk membangun paket:

mkdir -p ~/Bangun/DEB && cd ~/Bangun/DEB

Hal yang perlu diperhatikan di sini adalah Freetype yang dibentuk sebenarnya ditujukan kepada Ubuntu Raring (raring). Pada saat penulisan, Freetype yang ada di repositori versi 2.4.12, sedangkan BlankOn Suroboyo (suroboyo) versi 2.4.9.  Untuk itu, perlu diset versi yang akan dipasang adalah versi raring. Anda dapat menggunakan APT Policy atau gunakan cara jantan seperti saya. Ha… ha… ha….

Pasang paket-paket pengembangan yang diperlukan:

sudo apt-get build-dep -t raring libfreetype6

Setelah memasang paket-paket tersebut, unduh paket yang diperlukan:

apt-get source -t raring libfreetype6

Menambahkan parameter “-b” akan otomatis membangun paket kode sumber yang akan diunduh menjadi paket Debian. Namun, Anda tentunya mau jantan bukan? Tidak perlu menambahkan hal tersebut. Kita harus bangun sendiri paketnya.

Masuk ke dalam direktori kode sumber Freetype yang telah dipasang oleh apt-get:

cd freetype-2.4.12

Di dalam direktori tersebut, tanyakan paket apa saja yang diperlukan untuk membangun paket Debian.

dpkg-checkbuilddeps

BlankOn yang saya pasang membutuhkan paket-paket berikut ini:

sudo apt-get install docbook-to-man libx11-dev x11proto-core-dev libz-dev quilt

Lalu bangun paket Freetype:

dpkg-buildpackage

Ah, setelah saya lihat-lihat, ini juga gampang. Duh, ternyata sekarang Debian tidak sesulit dulu dalam membangun paket. Eh, iya, intinya ada tiga berkas berikut yang tersedia di atas direktori Freetype:

freetype2-demos_2.4.12-0ubuntu0ppa1_amd64.deb libfreetype6_2.4.12-0ubuntu0ppa1_amd64.deb libfreetype6-dev_2.4.12-0ubuntu0ppa1_amd64.deb

Tinggal dipasang saja:

sudo dpkg -i ../libfreetype6_2.4.12-0ubuntu0ppa1_amd64.deb

Dan muat ulang destop. Seharusnya ada perubahan.

Kompilasi Kernel BlankOn

Kompilasi Kernel BlankOn

cat > blankon-sources.list << .
deb-src http://kambing.ui.ac.id/blankon rote main extras
deb-src http://kambing.ui.ac.id/blankon rote-security main extras
deb-src http://kambing.ui.ac.id/blankon rote-updates main extras
.

sudo mv blankon-sources.list /etc/apt/sources.list.d/
sudo apt-get update

sudo apt-get install kernel-package fakeroot
apt-get source linux-3.2
cd linux-3.2.23

cp /boot/config-3.2.0-3-amd64 .config
make menuconfig

 Processor type and features  --->
    Processor family (Generic-x86-64) --->
        (X) Core 2/newer Xeon

Pilih-pilih yang lain! Kalau sudah puas pilih Exit beberapa kali dan Save.

make-kpkg clean
fakeroot make-kpkg --initrd --revision=24022013.jp1 kernel_image kernel_headers

Bermain bersama keluarga, menyapa Ayah/Ibu/Adik/Kakak, makan/bobok siang dulu. Lakukan itu sampai kompilasi habis.

sudo dpkg -i ../*.deb
Pembaharuan Gentoo

Pembaharuan Gentoo

Galat di

dev-libs/icu

Sepertinya sedang ada perubahan versi yang menyebabkan Gentoo gagal memasang versi terbaru. Setelah saya cari tahu, ternyata kegagalan menemukan pustaka dari pake “dev-libs/icu”, sebuah paket internasionalisasi. Ternyata saya memasang versi baru “48” sedangkan yang lama versi “46”. Anehnya, ini tidak terdeteksi oleh “

revdep-rebuild

“.

Cerita pendeknya, ternyata saya harus mengompilasi ulang “

dev-libs/libxml2

“.

$ emerge -av dev-libs/libxml2

Galat di

media-libs/mlt

Sistem saya berusaha memasang “xulrunner” yang menggunakan MLT. Ternyata versi 0.7.2 dari MLT memiliki galat ketika mengompilasi dukungan Ruby. Maka cara sementara membetulkannya adalah dengan mematikan dukungan Ruby.

$ USE="-ruby" emerge -av media-libs/mlt

Saya lupa, buat apa, yah, dibutuhkan dukungan Ruby?

Get Juicy Sound Out of OpenSound System 4 (OSS4)

Get Juicy Sound Out of OpenSound System 4 (OSS4)

Well, they said that 90% of the population would not notice the difference. But, since I have the right equipment, a good headset and a handful of ripped songs from original CD that I own, I think this could make the difference. To make it that nobody asking foolish question, I have set the requirement so that you could do this on your own:

  1. Know how to ask politely.
  2. Know how to compile.
  3. Can open a terminal.

If you can do that, then proceed.

Prerequisites

The new kernel configuration take OSS names as ALSA’s. This makes people can’t load OSS4 on vanilla kernel. If you compile your kernel, please make sure that OSS preclaimed is disabled. In menuconfig the option is in:

Device Drivers -> Sound card support -> Preclaim OSS device numbers

Make sure to uncheck there and you can have ‘alternative’ OSS implementation, i.e. OSS4.

Fortunately, the stock kernel from Debian and Ubuntu don’t implement that, cmiiw.

Compile the kernel, install it and you’re set. Oh, btw, don’t forget to install Mercurial, the DVCS. Opensound uses it instead of GIT (no flamewars intended).

Get the OSS4

The opensound source have moved to Sourceforge for some times now. So, the command:

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

Wait and you are done.

Configure OSS4

Go to the source directory and creates an empty directory to build the source. It is a new, and a good, convention to seperate build directory and source directory.

$ cd opensound && mkdir bangun-gentoo64 && cd bangun-gentoo64

Let’s configure it:

$ ../configure --config-vmix=FLOAT --config-midi=YES --enable-timings

There is a bug in installing OSS4 to my work machine (Gentoo 64bit). It failed to install because it failed to copy libraries into “/usr/lib”. Apperantly, the path is a symlink to “/usr/lib64”. So, if you are in the 64bit and having trouble, you could edit Makefile in your build directory (mine is “opensound/bangun-gentoo64”). Change

OSSLIBDIR="/usr/lib/oss"

into

OSSLIBDIR="/usr/lib64/oss"

There is also a bug in the configure script that define the wrong value of maximum GRC  quality. Open “kernel/framework/include/local_config.h” and change

#define CONFIG_OSS_GRC_MAX_QUALITY 3

into

#define CONFIG_OSS_GRC_MAX_QUALITY 7

As I found out, there is a bug that makes me can’t install OSS4 because it failed to find “ubuntu_version_hack.inc”. The problem is because it doesn’t get copied. According to cesium, edit the  “setup/Linux/make.local” file and change

cp -R prototype/* /

into

(cd prototype; find -L . -type f | cpio -pud /)

That’s on line 6, in my case.

Compile and Install

Now, compile it and install it:

$ make -j4 && sudo make install

I edited the “/etc/oss.conf” and change the “/usr/lib/oss” into “/usr/lib64/oss”.

Reboot and enjoy. To enable OSS4, just do:

$ sudo soundon

Fin.

Reference:

Cesium. OSS4 Forum. http://www.4front-tech.com/forum/viewtopic.php?f=3&t=3543#p14102

Re: Kompilasi MPlayer (Menjawab Iang)

Re: Kompilasi MPlayer (Menjawab Iang)

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*_[1920x1080_h264][CB5C7E26].mkv.
libavformat file format detected.
[matroska @ 0x1363a50]max_analyze_duration reached
[matroska @ 0x1363a50]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]  1920x1080  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] 1920x1080 => 1920x1080 Planar YV12

Mengompilasi Sendiri MPlayer

Mengompilasi Sendiri MPlayer

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.