Activating Fujitsu P1510 screen rotation on Ubuntu 9.04 Jaunty

Posted in ubuntu on July 9, 2009 by rvshiro

It’s quite tempting to make the screen rotation and all the 5-buttons under the P1510 to work properly as they should be. I’ve been unable to work around these features on earlier version of Ubuntu (7.10 and 8.04).

After browsing around to find appropriate driver, I found it on at :

and you can download the file fjbtndrv-2.0.1.tar.gz here

Here are the steps I’ve taken to install the driver on Fujitsu P1510 with Jaunty Jackalope :

$ tar -zxvf ./fjbtndrv-2.0.1.tar.gz

$ cd ./fjbtndrv-2.0.1.tar.gz

$ sudo apt-get install libxi-dev libxtst-dev lib libxrandr-dev libhal-dev

$ ./configure

$ make

$ sudo make install

$ sudo depmod -a

$ sudo modprobe fsc_btns

$ sudo reboot now

It must be no errors on the process.

Now you can have the function button to work. However, I only need the first 3 buttons … so I don’t really care for the other 2. When the screen folded for tablet, it will change the orientation from landscape to portrait… Also the scrolling button A & B work flawlessly.. However, I still see that when I’m in tablet mode, the touchscreen pointer doesn’t work properly. It has different coordinate with the pointer, but mouse works ok without problem.

Thanks to Robert Gerlach for maintaining the driver and others


Fujitsu P1510 touchscreen under Jaunty Jackalope

Posted in Fujitsu P1510, Jaunty, linux, touchscreen, ubuntu on July 4, 2009 by rvshiro

I have a 3-years old Fujitsu Lifebook P1510 that’s been running 7.10 with touchscreen enable flawlessly… Now it’s time to upgrade to 9.04. But the problem is the Xorg version is different.

Lucky I found the way to make it work again under Ubuntu 9.04 Jaunty Jackalope. Here are the steps that I did :

Step 1. Make a an executable file under bash shell script.

$ sudo gedit ~/

Then copy & paste the following


cd /tmp

sudo apt-get install -y setserial xserver-xorg-dev x11proto-core-dev x11proto-fonts-dev build-essential pkg-config libxrandr-dev

sudo setserial /dev/ttyS0 port 0x0220 irq 4 autoconfig

echo -e ‘/dev/ttyS0 irq 4 port 0x220 autoconfig’ | sudo tee /etc/serial.conf


tar -jxf xf86-input-fujitouch-0.6.5.tar.bz2

cd xf86-input-fujitouch-0.6.5

wget | patch -p0 < fujitouch.diff

./configure –prefix=/usr && make && sudo make install

exit 0

Save it

Step 2. Run the script

$ ~/

Wait until it’s finished. There must be no errors.

Step 3. Edit the xorg.conf using your favourite text editor (vi, nano, gedit, etc)

$ sudo gedit /etc/X11/xorg.conf

Then add the following text on the last line of xorg.conf

Section “InputDevice”
Identifier “touchscreen”
Driver “fujitsu”
Option “Device” “/dev/ttyS0”
Option “DeviceName” “touchscreen”
Option “MinX” “82”
Option “MinY” “146”
Option “MaxX” “4036”
Option “MaxY” “3999”
Option “SendCoreEvents” “On”

Section “ServerLayout”
Identifier    “Default Layout”
Screen        “Default Screen”
InputDevice     “touchscreen” “CorePointer”

Save it and you’ve done.

Restart your GDM (your notebook) and you’ll get the touchscreen come to life


nb. This howto might be work with the new Fujitsu P1610 as well but not with P1620.

Bluetooth internet connection using mobile phone under Ubuntu 8.10

Posted in Asus N10Jc, bluetooth, internet, intrepid, linux, Nokia, ubuntu on January 26, 2009 by rvshiro

Hardware use :
1. Asus N10Jc (BT-ready)
2. Nokia E66 (3G mobile phone with BT-ready)
3. A valid 3G-enable GSM simcard (Indonesia Telkomsel Flash)

The idea is not so new as I believe anyone has known about it already ….  So, now I’d like to have an internet connection using Nokia E66 via Bluetooth connection under Ubuntu 8.10 on N10Jc.

Before we do the next step, make sure the following parts are already install / ready i.e.:
1. Bluetooth program ($ sudo apt-get install bluetooth bluez)
2. wvdial ($ sudo apt-get install wvdial)
3. A valid 3G / GPRS connection account from your mobile operator

As you know, BT applet has been installed automatically the 1st time you install Ubuntu on Asus N10Jc. So there’s no need to talk about installing this BT applet and I assume, your Asus BT has been running properly ….
If you’re not sure, you can open the terminal (xterm) and write :

$ lsusb

the result will look like this :

Bus 004 Device 002: ID 0b05:1712 ASUSTek Computer, Inc. BT-183 Bluetooth 2.0+EDR adapter

Meaning you BT is running properly.

Next is to activated the phone’s  bluetooth that will be used, in this case is Nokia E66. Just press / choose the following keys on Nokia E66 :

Menu -> Connectivity -> Bluetooth -> On

After all BT turn on, please do the following :

$ sudo hcitool scan

Note the mac address and device name.

Next is to make a backup copy of your rfcomm.conf, by typing :

$ sudo cp /etc/bluetooth/rfcomm.conf /etc/bluetooth/rfcomm-ori

Then type

$ sudo gedit ./

Copy – paste the following script and save it


echo “Setting up Bluetooth Connection ” # Scan MAC Address
mac=`hcitool scan | grep device-name | awk ‘{print $1}’`
echo “Mac Address : $mac ”

# Scan channel DUN
channel=`sdptool search DUN | grep “Channel:” | awk ‘{print $2}’`
echo “Channel : $channel ”

echo “Editing /etc/bluetooth/rfcomm.conf ”
rm /etc/bluetooth/rfcomm.conf
echo “rfcomm0 {” >> /etc/bluetooth/rfcomm.conf
echo “bind yes;” >> /etc/bluetooth/rfcomm.conf
echo “device ${mac};” >> /etc/bluetooth/rfcomm.conf
echo “channel ${channel};” >> /etc/bluetooth/rfcomm.conf
echo “}” >> /etc/bluetooth/rfcomm.conf

# Binding rfcomm to device
echo “Bind rfcomm0 to device $mac on channel $channel ”
rfcomm release 0
rfcomm bind 0 $mac $channel

# Dial up using wvdial
echo “Open up ppp for bluetooth ”

You should replace the “device name” above with the result from “sudo hcitool scan” (in this case, my device name is E66) .
Make sure it’s executable by changing the permission as follow :

$ sudo chmod +x ./

We also need to modified wvdial.conf.

$ sudo gedit /etc/wvdial.conf

Then just copy – paste the below setting :

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,”IP”,”internet
Modem = /dev/rfcomm0
Phone = *99#
Modem Type = Analog Modem
Stupid Mode = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Username = “xxxx
Password = “xxxx

Make sure you input, appropriately, the bold parts above for the wvdial.conf.
1. APN name
2. Phone number
3. Your user name given by your mobile operator
4. Your password given by your mobile operator

Now, it’s finished…

To execute / connect it just type in terminal :


The Nokia E66 will prompt you, whether to connect or not, answer ‘Yes’. And it will execute the script.

To stop the connection, just press Ctrl-C.

Happy browsing ….

nb. you might try with other notebooks and mobile phones. There’s chance that you can use this script. If not, it’s just unlucky and you’re on your own.

script resource :

Fingerprinting under Ubuntu 8.10 on Asus N10Jc (fingerprintGUI-0.5.tar.gz)

Posted in Asus N10Jc, intrepid, linux, ubuntu on January 14, 2009 by rvshiro

this step-by-step howto was performed using fingerprintGUI-0.5.tar.gz with some limitation for gnome-screensaver and polkit (as described inside the packages under “Some Known Limitations”). If you’re interestested to use gnome-screensaver FP login, please use 0.6 ver. and up..
which not covered in this blog

Fingerprinting on Ubuntu 8.10 for my Asus N10Jc doesn’t come out of the box. It doesn’t install the needed software automatically. As for the repository, it only provides fprint-demo which is never work on my N10Jc. Fprint-demo doesn’t recognised the fingerprint device on N10Jc, it also doesn’t provide the option to choose device based on  bus:address, perhaps there’ll be some development to address this issue but currently, as of Jan 2009, it doesn’t have the capability to choose device based on that. So, we must install it manually (and it’s pretty straighforward, hassle-free installation).

And this is the way I did.

After browsing on the net for quite some time, I’ve found this web site :

Download the latest file (at the time of this writing the latest version is fingerprintGUI-0.5.tar.gz).
And do the following :

step 1
$ tar -zxvf ./fingerpintGUI-0.5.tar.gz

step 2
$ cd ./fingerprint-0.5

step 3
$ sudo ./ –with-upek

There must be ‘no errors’ in this step.

Next step is to make sure “gdm” is your default display manager.

step 4
$ cat /etc/X11/default-display-manager

The result should be  “/usr/sbin/gdm”
Make sure you have no face browser for gdm activated like this but use login screen like this (no user list)
Also, make sure autologin is disable

step 5
$ sudo gdmsetup
choose ‘Security’ tab, make sure ‘Enable Automatic Login’ is empty (no tick, no anything)


Then follow these several steps :

step 6
$ sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth-no-fingerprint

Next is to edit

step 7
$ sudo gedit /etc/pam.d/gdm

edit ‘auth   requisite’ to become ‘# auth   requisite’
This avoids PAM to ask for a username prior to fingerprint authentication

step 8
$ sudo gedit /etc/pam.d/common-auth

Insert at the first line ‘auth   sufficient debug’

step 9
$ sudo gedit /etc/pam.d/polkit

Change the line ‘@include common-auth’ to ‘@include common-auth-no-fingerprint’

step 10
$ sudo gedit /etc/pam.d/gnome-screensaver

change the line ‘@include common-auth’ to ‘@include common-auth-no-fingerprint’
Then, do the following :

step 11
$ lsusb

Notice the ID 147e:1000, this is your fingerprint device. There’s no info when you see it (I don’t know why).
But if you’re curious or not sure just write this command :

step 11a
$ lsusb -v -d 147e:1000

You will see the manufacturer is Touchstrip and the product is Fingerprint sensor

Take a look at Bus xxx Device xxx on the left of ID 147e:1000
After you note the bus and device (they keep changing whenever you restart Ubuntu), then do :

step 12
$ sudo chmod 777 /dev/bus/usb/xxx -R

The ‘xxx’ is the Bus address you see on the step 4 above. This step will allow you to safe your fingerprint scan after you activating the program. If you think it’s unsafe ’cause it gives permission to all, don’t worry. Once you reboot the system, it will back to default permission policy (755)

step 13
From the Menu you can choose
System -> Preference -> Fingerprint GUI

or from the xterm

step 13a
$ fingerprintGUI

Then the program will start. Choose :

step 14
unknown vendor (0x147e) unknown device (0x1000)

step 15
click ‘Next’ button, then choose which finger you want to scan …

step 16
click “Next’ then you start scanning.

At this step, if you don’t perform the 12th step above, you won’t be able to safe the scan result. You should scan the same finger 3 times. After it finish, it will ask whether you want to scan other finger. You can scan all of your fingers, but the default GDM login will only use 1 finger.

If you choose “No” or “cancel”, you will go to the next screen.
In this screen you can try / verify to use fingerprint under several login scheme. Practically I only need for GDM and sudo.

Once it recognised your fingerprint, then you’re ready to use it. Just reboot and each time you login, it will show you fingerprint scan rather than user and password..

If you want to add more fingers, do perform step 11 to the rest. The same goes for new users who want this fingerprint login. Just login under the designated user account (user and password), then start with the 11th step above up to the 16th.

Good luck,

nb. Thanks to Wolfgang Ullrich and Daniel Drake for hacking the code, source:

Overclocking Asus N10Jc di Win XP

Posted in Asus N10Jc, windows on January 1, 2009 by rvshiro


Overclock ini hanya ditujukan kepada power (advance) user dan tidak dianjurkan untuk para pemula. Selain itu juga, hal ini akan membuat garansi anda tidak berlaku lagi. Kami tidak menjamin bila terjadi kerusakan perangkat anda.

Salah satu kelebihan Asus N10Jc adalah overclockability-nya yang sangat baik. Kemungkinan besar disebabkan oleh pilihan komponen yang berkualitas, sehingga memiliki tingkat kestabilan yang tinggi. Overclocking terhadap Intel Atom pada N10Jc max. bisa dilakukan hingga 2,1 Ghz, dengan PCI Freq 33.4 MHz

Program yang dibutuhkan untuk melakukan overclock ini ada beberapa, diantaranya :
1. Set FSB ver. terakhir. Dalam penulisan ini, versi terakhir adalah (, adalah program untuk mengubah FSB dari CPU

2. CPU-Z untuk melihat core clock speed secara real time (

3. HWMonitor, untuk mengetahui sensor mobo kamu secara realtime (

4. Prime95, untuk memberi beban kerja penuh 100% dan pengujian pada CPU untuk penghitungan (

5. ATITool, memberikan beban penuh pada GPU, versi terakhir adalah 0.26 (, bila tidak bisa download, lihat disini

Setelah seluruh file-file tadi didownload dan diekstrak, kita siap mengoverclock N10Jc.

Langkah-langkah Overclocking N10Jc :
1.Pertama-tama aktifkan SetFSB.
Pilih “ICS9LPR310BGLF” sebagai clok generator, klik tombol “Get FSB”, lalu pilih “Ultra” disebelah tombol GetFSB.
Pada bagian bawah. terlihat 2 slider yang bisa digerakkan ke kiri dan ke kanan. Nilai awal pada bagian paling bawah  kanan biasanya antara 1596,8 MHz – 1604,2 MHz. Lalu perhatikan pada bagian sebelah tulisan “Current FSB/DDR/PCI-E/PCI Frequency”, current FSB pertama kali adalah 133 dan PCI frequency adalah 33. Kemudian perhatikan angka di sebelah kanan pada bagian “Selected FSB/DDR/PCI-E/PCI Frequency”.  Angka pada Selected FSB akan berubah bila slider atas digerakkan ke kiri / kanan dan PCI Frequency bila slider bawah digerakkan ke kiri dan ke kanan.

2. Aktifkan CPU-Z dan HWMonitor
Keduanya ditujukan untuk memantau FSB dan PCI Freq secara realtime.

3. Menggerakkan slider atas step by step ke arah kanan pada program SetFSB
Mulailah menggerakkan slider atas terlebih dulu sehingga angka pada Selected FSB berubah. Coba tambahkan hingga 10MHz kemudian tekan enter. Maka angka pada bagian paling bawah kanan akan berubah menjadi +/- 1740Mhz.

4. Jalankan Prime95
Langkah berikutnya dilanjutkan dengan pembebanan terhadap CPU hingga 100% (full load). Biarkan N10Jc berjalan selama 1 jam, lihat hasilnya apakah ada error atau tidak. Apabila tidak, maka lakukan langkah 3 diatas dengan menggeser slider ke tingkat yang lebih tinggi. Demikian dilakukan hingga sistem stabil (tidak ada error). Batas max. nilai pada bagian paling kanan bawah bisa mencapai +/- 2103 MHz.

5. Menggerakkan slider bawah (minor overclocking) pada program SetFSB
Setelah N10 berjalan stabil pada FSB akhir langkah 4, coba tingkatkan PCI Frequency-nya. Pada bagian ini, tidak banyak nilai yang bisa ditambahkan dan efeknya relatif kecil, sehingga bisa diabaikan. Angka awal adalah 33, penambahan dimana sistem tetap stabil adalah max. pada angka 33,4. Kemudian jalankan lagi Prime95 untuk menguji kestabilan N10Jc.

6. Jalankan ATITool untuk Overclock GPU
Setelah mendapat sistem yg stabil berdasarkan Prime95 (FSB dan PCI Freq), jalankan program pembebanan GPU ATITool. Pada bagian ini, jalankan terlebih dahulu pada kondisi default. Biasanya, setting FSB di 2.1 Ghz akan membuat sistem hang. Maka, untuk itu turunkan (bila tadinya CPU speed adalah 2.1 GHz) CPU speed hingga sistem stabil pada kondisi stock (kondisi stock = tanpa diubah-ubah = kondisi standar GPU yg blm di overclock). Setelah dicapai kondisi stabil, bisa dilakukan overclock experiment dengan memory speed dan core. Sebagai contoh, dengan CPU speed 1.9 GHz dan GPU mem 525, akan didapat 75 fps. Silahkan anda berksperimen dgn nilai ini…

7. Uji hasil akhir
Setelah sistem yang dioverclock dengan SetFSB (CPU) dan ATITool (GPU) stabil, lakukan langkah pengujian akhir dengan 3DMark06, atau coba bisa menggunakan program ini

Setelah sukses, maka sistem anda siap digunakan.

Ingat : angka 2.1 Ghz pada CPU dan 33.4 pada CPI Freq adalah angka max. Angka yang ideal (stabil) hanya didapat berdasarkan percobaan sendiri (trial and error)


Mengotomasi overclocking N10Jc pada saat system startup dan shutdown di XP (saya belum coba di Vista)
Langkah-langkahnya sebagai berikut :
1. Start-Up
Setting untuk cara ini biasa dilakukan melalui command prompt, dengan setting parameter sbb :

-w[00-99] : waktu tunggu sblm overclock aktif dalam detik default=10detik
-s[000-999] : Set FSB [MHz]
-i[00-99] : Kenaikan [MHz] default=max
-u[0-1] : 0(default)=normal , 1=ultra
-b[0-1] : 0(default)=normal , 1=background
-p[000-999] : PCI-E [MHz] default=none

Agar sistem berjalan otomatis pada saat mengaktifkan window pertama kali, bisa dilakukan dengan cara buat batch file (*.bat) yang diletakkan pada bagian start-up Windows, dengan perintah sbb :

[Letak direktori program setFSB]\SetFSB.exe -w1 -s175 -i20 -u1 -b1 -p99

Pada contoh diatas, CPU akan bekerja pada 2.1 GHz, bila N10Jc anda tidak dapat mencapai angka itu, rumusnya ada :
(nilai stabil terakhir N10Jc kamu, dibagi dengan 12) = nilai yang diberikan pada option -s diatas.
Jadi bila sistem anda stabil di 2008 GHz, maka angka pada -s menjadi 2016 / 12 = 168 sehingga menjadi:

[Letak direktori program setFSB]\SetFSB.exe -w1 -s168 -i20 -u1 -b1 -p99

2. Shutdown
Gunakan text editor dan save sebagai setfsb_normal.bat tulisan berikut :

[Letak direktori program setFSB]\setfsb.exe -w1 -s133 -i50 -u1 -b1 -p99

Dilanjutkan dengan :

1) Start, Run, gpedit.msc
2) Pilih Computer Configuration, Windows Settings, Scripts (Startup/Shutdown)
3) Klik 2 kali Shutdown
4) Klik Add, dan cari file .bat tadi (setfsb_normal.bat)
5) Klik OK dua kali
6) Tutup Group Policy dan restart computer.
File ini nantinya akan aktif stiap kali pada saat shutdown atau restart. Menggunakan skrip ini akan menambah delay XP 15 – 20 detik.

Ingat : Lakukan langkah diatas dengan benar. Resiko ditanggung anda sendiri.

Asus N10Jc : Mendeteksi dual GPU secara otomatis pada Ubuntu 8.10

Posted in Uncategorized on December 28, 2008 by rvshiro

Sebagaimana diketahui, Asus N10Jc memiliki 2 graphics processor units, Intel GMA dan Nvidia 9300.

Nah untuk mendeteksi kedua GPU tadi secara otomatis pada saat kita mengaktifkan Ubuntu, dpt dilakukan melalui script dibawah ini :

$ gedit /etc/init.d/n10jcvideo

isikan dgn script ini  (Copy paste saja, jangan diketik sendiri) :

VIDEO=`/usr/bin/lspci |grep -c nVidia`
if [ “$VIDEO” = 1 ]; then
echo “[Nvidia Switch enabled, using Nvidia xconfig]”
cp -f /etc/X11/xorgNVtest.conf /etc/X11/xorg.conf
echo “[Nvidia Switch disabled, using intel xconfig]”
cp -f /etc/X11/xorgIntel.conf /etc/X11/xorg.conf

Setelah itu, ketik perintah berikut :

$ chmod +x /etc/init.d/n10jcvideo

$ ln -s /etc/init.d/n10jcvideo /etc/rc2.d/S12n10jcvideo

Sampai sini, anda membutuhkan 2 xconfigs : 1 untuk Intel dan 1 untuk NVidia.

Untuk Intel, buat file menggunakan nama xorgintel.conf

$ sudo gedit /etc/X11/xorgIntel.conf

Masukkan script dibawah ini (Copy paste saja, jangan diketik sendiri) :

# xorg.conf.failsafe (X.Org X Window System server configuration file)
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
# Edit this file with caution, and see the xorg.conf manual page.
# (Type “man xorg.conf” at the shell prompt.)
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section “Module”
Load “i2c”
Load “bitmap”
Load “ddc”
Load “dri”
Load “extmod”
Load “freetype”
Load “glx”
Load “int10”
Load “vbe”

Section “Device”
Identifier “Configured Video Device”
Driver “intel”
Option “MonitorLayout” “LVDS,VGA”
Option “DRI” “true”
Option “Clone” “true”
Option “AccelMethod” “EXA”
Option “MigrationHeuristic” “greedy”
VideoRam 229376
Option “CacheLines” “1980”


Section “Monitor”
Identifier “Configured Monitor”

Section “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”

Kemudian save.
Sedangkan untuk  NVidia, buat file dengan perintah :

$ sudo gedit /etc/X11/xorgNVtest.conf

Isikan dgn script ini (Copy paste saja, jangan diketik sendiri) :

# xorg.conf (xorg X Window System server configuration file)
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
# Edit this file with caution, and see the xorg.conf manual page.
# (Type “man xorg.conf” at the shell prompt.)
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section “Files”

Section “InputDevice”
Identifier      “Generic Keyboard”
Driver          “kbd”
Option          “CoreKeyboard”
Option          “XkbRules”      “xorg”
Option          “XkbModel”      “pc105”
Option          “XkbLayout”     “us”

Section “InputDevice”
Identifier      “Configured Mouse”
Driver          “mouse”
Option          “CorePointer”
Option          “Device”        “/dev/input/mice”
Option          “Protocol”      “ImPS/2”
Option          “ZAxisMapping”  “4 5”
Option          “Emulate3Buttons”       “true”

Section “InputDevice”
Identifier      “Synaptics Touchpad”
Driver          “synaptics”
Option          “SendCoreEvents”        “true”
Option          “Device”        “/dev/psaux”
Option          “Protocol”      “auto-dev”
Option          “HorizEdgeScroll”       “0”
Option        “MaxTapTime”    “0”

Section “Device”
Identifier      “nVidia Corporation GeForce 9300M GS”

# Enabling the nvidia drivers means that all acceleration processing is done internally
# NVidia provide’s its own GLX module
# NVidia does not use the X server’s DRI stack.
#       Instead, it uses a proprietary method to route call directly to the hardware and provide drect rendering
# Though the only possible driver is nvidia, it is also possible to override NVidia’s methods:
#       by force-enabling AIGLX in “ServerLayout”, loading dri, and enabling DRI in “Device”
#       by enabling XGL (which is a bad idea anyway)
Driver          “nvidia”
# lspci | grep -i nv            <- To find device
Busid           “PCI:3:0:0”

# Adds support for 32-bit rendering on ARGB colorspace windows and pixmaps
# ARGB = alpha, red, green, blue
# AKA you should enable this on the new NVidia driver
Option          “AddARGBVisuals”        “True”
Option          “AddARGBGLXVisuals”     “True”
Option          “NoLogo”                “True”

# Experimental : enable hardware acceleration of the X render extension
# Enabled by default in newer drivers however
Option          “RenderAccel”           “True”

# Enable RGB overlay. (Not available with X composite)
# Also slow with virtual desktops larger than 2046×2047
# Requires depth of 24 or higher
# Requires an NVidia quadro
Option          “Overlay”               “True”

# Improves performance by using OS to notify X to update direct-rendered visuals instead of running through the hardware.
# Enabled by default in newer drivers
Option          “DamageEvents”          “True”

# Disable clipping OpenGL rendering to the root window
Option          “DisableGLXRootClipping”        “True”

# An X server option to disable accel. writes into offscreen video memory
# Might be needed if using AIGLX instead of proprietary NVidia interface
# Probably ignored if using the NVidia method
#Option         “XaaNoOffscreenPixmaps”

# Might cause crashes in older NVidia drivers.
# Forces the driver to allow GLX when composite on the X server is enabled.
# Not necessary on modern X servers; might decrease stability
#Option         “AllowGLXWithComposite”         “True”

# An X server option to allow occluded window pixel data to be remembered
# Caution in enabling. It might be faster to redraw the information than to fetch it
# BackingStore is implemented in a very hackish but memory-efficient way. Therefore, it tends to be slow
Option          “BackingStore”                  “True”

# Use below in conjuction with v-sync (see nvidia-settings)
# v-sync will however cap framerate to a max of 60 fps on most monitors

# Only use with plenty of vram
# Allows the X server to render into the third buffer without waiting for the other two buffers to be cleared
# (buffer swapping happens every fps, for example every 60 times per second)
# This can possibly avoid screen tearing and sudden low fps
# Touchy on 256-MB vram (if you play games with 4x AA), probably ok on 512
Option          “TripleBuffer”                  “True”

Option        “UseDisplayDevice”        “DFP-0”

Section “Monitor”
Identifier      “Generic Monitor”
# Power saving mode
Option          “DPMS”
# at start X will automatically probe EDID information of the monitor.
# This can be overridden, but not recommended.
Horizsync       28-96
Vertrefresh     43-60

Section “Screen”
Identifier      “Default Screen”
Device          “nVidia Corporation GeForce 9300M GS”
Monitor         “Generic Monitor”
Defaultdepth    24
SubSection “Display”
Modes           “1024×600”

Section “ServerLayout”
Identifier      “Default Layout”
screen          “Default Screen”
Inputdevice     “Generic Keyboard”
Inputdevice     “Configured Mouse”
Inputdevice    “Synaptics Touchpad”


Section “Module”
# To understand these comments, understand that there are three methods of running acceleration:
#       XGL, AIGLX, NVidia

# The GLX module provides the hardware OpenGL extensions to the X server
# Through AIGLX, this loads the open source GLX
# Through NVidia, this loads NVidia’s GLX modules (closed source)
Load            “glx”
Load            “dbe”
Load            “extmod”
# The freetype module completely replaces the “type1” module
Load            “freetype”
Load            “i2c”
Load            “bitmap”
Load            “ddc”
Load            “int10”
Load            “vbe”
# DRI = Direct Rendering Infrastructure
# DRI is an X server extensions that allows “3d” acceleration calls to bypass the X server.
#       This leads the term “Direct Rendering” as the calls are routed directly to the hardware
#       This also leads to dramatic speed improvements/increases
# DRI is AIGLX’s response to XGL. However, DRI provides the benefit that the entire screen is compositing as well.
# Loading this module is harmless unless it is enabled in the “Device” section.
# NVidia will not use this module as it’s direct rendering calls are processed internally
Load            “dri”
# Load the mesa software acceleration libraries
#Load           “GLcore”


# Specific only to the DRI module.
Section “DRI”
# Allows all users to access DRI
Mode 0666

# Transparency = compositing
# Fancy Effects = GLX
# Using compositing with NVidia or AIGLX should incur no performance penalties
# Therefore:
# Disabling composite will disallow compiz, transparency, etc…

Kemudian “save”

Cara berpindah dari 1 GPU ke GPU lain, sebaiknya stlh system shutdown (dimatikan) terlebih dahulu. Pada saat off, ubah/ pilih GPU yg diinginkan. Kemudian aktifkan komputer anda, maka sekarang Ubuntu dalam N10Jc akan otomatis mendeteksi GPU yg digunakan dan akan menggunakan driver yg tepat untuk monitor anda.

Perlu diingat, pada saat anda menggunakan GPU Intel GMA, compizfusion tidak akan befungsi, tetapi batere anda akan lbh hemat 1-2 jam tergantung setting kecerahan (brightness) monitor dan hardware apa yg aktif.

Selamat mencoba

Asus N10Jc : Memperbaiki webcam yang terbalik di Ubuntu 8.10

Posted in Asus N10Jc, intrepid, linux, ubuntu on December 28, 2008 by rvshiro

Setelah selesai instalasi Ubuntu 8.10, webcam Asus N10Jc dapat bekerja dengan baik. Sayangnya image yang ditangkap terlihat terbalik di layar notebook. Untuk mengatasi hal ini, perlu dilakukan langkah-langkah berikut :

$ sudo apt-get install subversion
$ svn checkout svn://
$ gedit ./uvcvideo-alt.patch

Copy – paste script dibawah ini :

diff -uN UVCVIDEO_v0.1.0/uvc_video.c UVCVIDEO_patched/uvc_video.c
— UVCVIDEO_v0.1.0/uvc_video.c    2008-06-26 10:41:01.000000000 +0200
+++ UVCVIDEO_patched/uvc_video.c    2008-06-27 12:09:20.000000000 +0200
@@ -371,23 +371,81 @@
return data[0];

+/* This patch should work ONLY with YUY2 image formats, also known as YUYV or
+ * YUV422 formats.
+ * This patched function allows to overturn video images from an upside-down
+ * orientation to a normal one. The conversion consists in copying 4 bytes at a
+ * time (Y0,U0,Y1,V0) corresponding to 2 pixels from the frame (coming from the
+ * video source) to the buffer that will be used by the application requesting
+ * the video stream. But in order to satisfy the YUY2 image format byte has to
+ * be copied in this way: Y1 U0 Y0 VO. Bytes are copied in a bottom-up
+ * direction into the reversed frame.
+ * “data” stores a sequence of pixels coming from the video source.
+ * This sequence is not a full frame or a full row of pixel, but just an
+ * ordered vector of pixels (from top-left to bottom-right), whose
+ * represents just an area of the current frame and which size (“nbytes”) is
+ * not constant. In fact this function has to be called hundreds of times
+ * before a frame is completed. Each time “data” contains the next part of the
+ * current frame (upside-down). At the end data stored in “mem” buffer will be
+ * used by the application who requested the video stream.
+ * No memory allocation is needed because pixel order is modified directly
+ * while copying from “data” into “mem” buffer (i.e. in each call of this
+ * function), and not just once when the frame is already completed.
+ */
static void uvc_video_decode_data(struct uvc_video_device *video,
struct uvc_buffer *buf, const __u8 *data, int len)
struct uvc_video_queue *queue = &video->queue;
unsigned int maxlen, nbytes;
void *mem;
+    /* Patch variables */
+    unsigned int i, pixel_size;
+    __u8 *ptr_tmp;

if (len <= 0)

/* Copy the video data to the buffer. */
+    /* How many bytes are needed to complete the buffer? */
maxlen = buf->buf.length – buf->buf.bytesused;
+    /* Where do pixels stored in “data” have to be copied? */
mem = queue->mem + buf->buf.m.offset + buf->buf.bytesused;
+    /* How many bytes really can be copied into “mem”? */
nbytes = min((unsigned int)len, maxlen);
–    memcpy(mem, data, nbytes);
–    buf->buf.bytesused += nbytes;

+    /* “pixel_size” depens on the pixel color depth (bpp),
+     * but in YUY2 image format is constant and equal to 2.
+     */
+    pixel_size = video->streaming->format->bpp / 8;
+    /* In each loop 4 bytes are modified and copied into “mem” buffer. */
+    for (i = 0; i < nbytes; i += 2 * pixel_size) {
+            /* “queue->mem + buf->buf.m.offset” is the base-address
+             * where to start to store the current frame. This
+             * address refers to a preallocated area (just for a
+             * sigle frame) taking part in a circular buffer, where
+             * to store a fixed number of sequent frames.
+             */
+        ptr_tmp = (__u8 *)(queue->mem + buf->buf.m.offset
+            /* Go to the end of this frame. */
+            + video->streaming->cur_frame->wWidth * pixel_size
+            * video->streaming->cur_frame->wHeight
+            /* Go back for the number of already copied bytes. */
+            – buf->buf.bytesused
+            /* Go back for the number of bytes (4 bytes) to be
+             *  copied in this cycle.
+             */
+            – 2 * pixel_size);
+        /* The order of copied bytes is changed from
+         * (Y0 U0 Y1 V1) to (Y1 U0 Y0 V1), i.e. from
+         * (#0 #1 #2 #3) to (#2 #1 #0 #3).
+         */
+        ptr_tmp[0] = ((__u8 *)(data + i))[2];
+        ptr_tmp[1] = ((__u8 *)(data + i))[1];
+        ptr_tmp[2] = ((__u8 *)(data + i))[0];
+        ptr_tmp[3] = ((__u8 *)(data + i))[3];
+        /* Update “byteused” value. */
+        buf->buf.bytesused += 2 * pixel_size;
+    }
/* Complete the current frame if the buffer size was exceeded. */
if (len > maxlen) {
uvc_trace(UVC_TRACE_FRAME, “Frame complete (overflow).\n”);

Setelah di save, selanjutnya lakukan :

$ patch < uvcvideo-alt.patch
$ make

Hingga langkah ini, tidak boleh terjadi “error”. Kalo terjadi, berarti ada yang salah dalam mengutip patch diatas.
Selanjutnya :

$ sudo gedit Makefile

dan ubah :

INSTALL_MOD_DIR := usb/media


INSTALL_MOD_DIR := ubuntu/media/usbvideo


$ sudo modprobe -r uvcvideo

$ sudo make install

$ uname -r

Catat hasil outputnya, hsl saya adalah 2.6.27-9-generic

$ sudo cp uvcvideo.ko /lib/modules/’masukkan hasil uname -r diatas’/ubuntu/media/usbvideo

$ sudo depmod -ae

$ sudo modprobe uvcvideo

Mudah2an bisa …

source :