Note for English Readers

If I write the articles in Indonesian, I will write a summary in English so that you can read my articles too. After you read the summary and you feel that you need more information about that, please do not hesitate to contact me via e-mail that can be found in my profile.

Thank you for reading my blogs.

Thursday, September 22, 2011

TeXstudio-2.2 on Slackware64

Today, I have upgraded TeXstudio (formerly TexMakerX) from 2.1 to 2.2 release version (released on 2011-07-20). I need this LaTeX Editor for writing my dissertation report. For the new features, release notes, screenshots, etc., please refer to its website. I downloaded the source code from this link. It needs Qt (at least 4.3), libpoppler, and TeX packages (don't worry, they can be found in l (or deps for Qt if you are using Eric's KDE compilation packages) and t directory for Slackware/64) for compilation.

The compilation process is very easy:
  • extract the source files from tarball
  • enter to texstudio source directory
  • # qmake
  • # vim Makefile.Release  (or, use your favorite text editor to edit Makefile.Release)
  • make sure /usr/lib64 is written on LIBS (see Figure 1)
  • # make
  • # make install

Figure 1: Makefile.Release

It should be no problem in compilation. Enjoy your TeXstudio!

Figure 2: TeXstudio-2.2 is running on Slackware64

Tuesday, August 30, 2011

Installing e-Sword under wine on Slackware64

Finally, I can install e-Sword, a Bible study software for windows, under wine on Slackware64 after trying it for a whole day. I decided to use e-Sword because it has abundant, almost complete modules; everything that I need mostly can be downloaded or purchased on the internet.

Before installing e-Sword, you have to prepare the wine environment. For Slackware users, you can download the slackbuild scripts from and the source files, then build the slackware packages, in order, webcore-fonts, fontforge, wine, winetricks, and cabextracts. Strictly for Slackware64 users, you have to install Eric's multilib packages in order to compiling and running the wine. After these wine's packages are installed, do these following steps (you have to connect to internet):
   $ export WINEARCH=win32   <-- just for Slackware64
   $ winetricks mfc42   <-- installing mfc42.dll
   $ winetricks msls31   <-- installing msls31.dll

Now, you're ready to install e-Sword. Download the latest version then install it:
   $ wine [path-to]/setupXXX.exe   <-- the "XXX" is the version number of e-Sword

After that, you need to set up wine environment again:
   $ cp ~/.wine/drive_c/Program Files/e-Sword/riched20.dll ~/.wine/drive_c/windows/system32
   $ winecfg

In winecfg, set riched20.dll to native and oleaut32.dll to native,builtin (see picture below).
Finally, run e-Sword by clicking the icon on your desktop/menu (if any) or typing this command on terminal:
   $ wine "C:/Program Files/e-Sword/e-Sword.exe"

Installing eSword9Converter
If you have the old modules (before version 9) for e-Sword, you need to convert it before using it. You will need eSword9Converter to do that. Please download it from this site. Before installing it, you have to install .NET Framework 3.5 by typing this command on terminal (you have to connect to internet):
   $ winetricks dotnet35
Then you can install eSword9Converter:
   $ wine [path-to]/setup-X.X.X.exe   <--- the "X.X.X" is the version number of eSword9Converter
After finishing installation, you can run eSword9Converter by clicking the icon on your desktop/menu (if any) or typing this command on terminal:
   $ wine "C:/Program Files/eSword9Converter/eSword9Converter.exe"

That's all.


Friday, August 26, 2011

ATI Catalyst on Linux Kernel 3.0.3

Yesterday, I found that the kernel and ATI Catalyst driver have been updated since August 17, so that, I decided to spend my time for testing them, then use them if there is no problem. Since a few hours ago, the new kernel 3.0.3 and ATI Catalyst has been running smoothly on my laptop. I have tested 2 versions of ATI Catalyst, those are, 10.12 and 11.8.

ATI Catalyst 11.8 (without patch)
This version has been installed without problem and without any single line's patch. My suggestion, use xorg.conf from aticonfig --initial for avoiding any problem (see my previous post), especially if you want to use Desktop Effects.

ATI Catalyst 10.12 (with patch)
I have tried this version on kernel 3.0.3 and it has been running smoothly without problem, however, it need to be patched. For patching ATI Catalyst 10.12, please read my previous post. You can find the link for downloading the patch on that post.

That's all.

Note: for my other posts about ATI Catalyst, go to this link. You may need to read it.

Tuesday, August 9, 2011

Linux Kernel 3.0.1 & ATI Catalyst

Since yesterday, I have tried to run the Linux kernel 3.0.1 on my laptop; everything is good, no problem so far. Next step, I tested the ATI Catalyst 11.7, without patching. After installation, everything is running well including fglrx kernel module and the driver for x server. However, I still have the "old" problem that always occurs when I install ATI Catalyst 11.x, that is, I cannot activate OpenGLOverlay so that the Desktop Effects (compiz) cannot be launched. Therefore, any version of 11.x can be installed as long as the OpenGLOverlay is disabled (see the option below).
Section "Device"
        Option      "OpenGLOverlay" "off"
Now, I am using ATI Catalyst 10.12  with OpenGLOverlay enabled (see the option below) so that I can activate the Desktop Effects since this version does not have problem with OpenGLOverlay. Of course, I have to patch it first. I use the patch that I have written about two months ago (here). So far so good, I can activate the Desktop Effects again.
Section "Device"
        Option      "OpenGLOverlay" "on"

Linux Kernel 3.0.1 and ATI Catalyst 10.12:

My note: Although I have problem with Desktop Effects when I use ATI Catalyst 11.7, My colleague, Widya Walesa, can activate the Desktop Effects when using 11.7; you can read it on his blog. I still don't know what the cause of my problem is.

Note: for my other posts about ATI Catalyst, go to this link. You may need to read it.

Thursday, August 4, 2011

Disabling Nepomuk and Akonadi

After upgrading to KDE-4.7.0, I feel that Nepomuk and Akonadi are very annoying. I always get notification about Nepomuk and some messages about Akonadi when I quit from KDE. Since I don't use Desktop Search and KMail anymore, I have decided to turn Nepomuk and Akonadi off.

Disabling Nepomuk
I follow these steps to disable Nepomuk:
  • Go to System Settings --> Workspace Appearance and Behavior --> Desktop Search
  • Untick "Enable Strigi Desktop File Indexer" and "Enable Nepomuk Semantic Desktop" under Basic Setting Tab
  • Choose "Ignore all removable media" on Removable media handling and also make sure all folders are left unticked in "Customize index folders ..." under Desktop Query Tab
  • Select "Disable Automatic Backups" on Backup frequency under Backup Tab
  • Go to System Settings --> Common Appearance and Behavior --> Application and System Notifications --> Manage Notifications
  • Under Applications Tab, select "Desktop Search" on Event source and make sure all states are empty
  • Do the same for "Nepomuk file watch service" and "Semantic Desktop" on Event source
  • Quit System Settings

Disabling Akonadi
For disabling Akonadi, open the terminal then enter the directory ~/.config/akonadi/akonadiserverrc and set the value of "StartServer" on [QMYSQL] to false.

After finishing all steps described above, restart the KDE. Nepomuk and Akonadi have been disabled.

Note: I configure my System Settings to Classic Tree View (see picture below).

Thursday, July 21, 2011

Oxygen KDE: A Firefox Theme

This morning, I got information from Deddy through Google+ about Oxygen KDE. I give it a try ... awesome ... I like it so much! So far, there is no problem after installing it. For KDE users that use firefox as web browser, I suggest you to try this theme.

Tuesday, July 19, 2011

kdeutils-4.6.5 for Slackware after patching

I have patched the source of kdeutils-4.6.5 since there are problems on KCalc (see this link and this link). You can download the slackbuild script, patches, and the source of kdeutils-4.6.5 from this link. Before compiling yourself, make sure you have upgraded your KDE to KDE-4.6.5 using Eric's packages. Next, uncompress kdeutils-4.6.5_SlackBuild.tar.gz and run the KDE.SlackBuild as root. This slackbuild script will compile kdeutils-4.6.5 then upgrade your previous one.

For Slackware64 users, you don't need to compile; just download the binary package from this link, then do upgradepkg.

Monday, June 13, 2011

ATI Catalyst Proprietary Display Driver & kernel-2.6.39.x

Updated: I have renewed all links for the patch. If you still have problem with the link, do not hesitate to contact me. Thank you for all you that have informed me about this link problem.

Again, we need to patch the source code of fglrx kernel module, part of ATI Catalyst (you will find it on /lib/modules/fglrx after installation), for kernel 2.6.39.x since there are some changes on the kernel. On this post, I will show how to patch ATI Catalyst 11.x (tested on 11.5) and 10.10 - 10.12 (tested on 10.12) so that it works on 2.6.39.x (tested on

ATI Catalyst 11.x
First, download 2 files: 2.6.39_bkl.patch and no_bkl.patch (Thank's to and Copy those files to /lib/modules/fglrx/build_mod then run these commands:
patch -p1 &lt; 2.6.39_bkl.patch
patch -p1 &lt; no_bkl.patch
Next step, execute ./ and if there is no error, change directory to /lib/modules/fglrx then execute ./

ATI Catalyst 10.10 - 10.12
You have to download this patch: fglrx_10.10-12_with_2.6.39.x.patch. Copy this file to /lib/modules/fglrx/build_mod then execute:
patch -p1 &lt; fglrx_10.10-12_with_2.6.39.x.patch
After that, execute ./ and if there is no error, change current working directory to /lib/modules/fglrx then execute ./

Happy patching!

Note: for my other posts about ATI Catalyst, go to this link. You may need to read it.

Saturday, April 30, 2011

Xilinx ISE WebPack on Slackware64

(breaking news) Slackware64-13.37 has been released! Thank's to Pat, Eric, and other maintainers for making this version available.

For a long time, I have struggled with errors on the installation of  Xilinx ISE WebPack on Slackware64 because I want make Slackware64 not only for doing my "office work", but also as the environment for all development software related to my work. So far, I can make design and draw PCB artwork on Slackware64 using gEDA and pcb. Also, I am able to compile and use gcc cross-compilers for AVR and ARM-based embedded systems. However, if I want to develop "some hardware" on FPGA using Verilog HDL, I must switch to other OS that I really don't like it. Finally, I can install Xilinx ISE WebPack on Slackware64. Thank's to Philip Pemberton that has written the solution on Ubuntu 64-bit version.

The installation problem occurs only when you try to install it on 64-bit version of Linux. I have tried it on Slackware64 and Ubuntu 64-bit version, all trials are failed. The solution is just install 32-bit version of Xilinx ISE on Slackware64. By Philip's reference, here is the step of installation:
  • Download the Xilinx ISE (any latest Linux version or complete version) and extract the installer.
  • Enter the installer directory.
  • Install it with this command (must be root): linux32 ./xsetup
  • Follow the instructions.
  • Enter the installation directory (if you don't change the default, it should be /opt/Xilinx/[ISE_version]
  • Create a script: (if you use vim, just type: vim
  • Put a few lines below on the script (in my case, I install Xilinx ISE 13.1. If you use different release number, just change the "13.1" to the correct one):

    source /opt/Xilinx/13.1/ISE_DS/ /opt/Xilinx/13.1/ISE_DS/

  • Don't forget to make it executable: chmod +x
  • Execute the script to start Xilinx ISE.

Here is the screenshot of Xilinx ISE on Slackware64 inside my laptop:

    Thursday, April 21, 2011

    myPhone @ES6192

    "myPhone @ES6192" is my final assignment on ES6192 course (Embedded Operating Systems). I worked on this assignment together with my partner, Rahmady. This assignment simulates a phone dialer. We had to develop device drivers and application software that could be performed on ARM-based Embedded System with Linux as its operating system.

    We developed device drivers for simple I/O on the board: 4 LEDs, 7's Segment LED displays, and 4x4 keyboard. For LCD screen, we use framebuffer driver that has already built on the kernel. The keyboard driver can handle interrupt, also, use tasklet, work queue, and  FIFO circular buffer to manage the data.

    The application software is multithreaded; it has 6 threads (excluding main thread) for handling all processes such as manipulating I/O devices (4 threads), updating clock (1 thread), and controlling whole system by setting the operating modes based on user’s input (1 thread). For managing shared data, we use semaphores. 

    Modes on “myPhone @ES6192”:

    • display clock mode or cancel key on phone dialer and off-hook mode by pressing “C” key
    • adjust clock mode by pressing “D” key
    • phone dialer mode by pressing “E” key
    • off-/on-hook by pressing “F” key (toggled)
    • backspace key on adjust clock and phone dialer mode by pressing “A” key

    Structure of "myPhone @ES6192":

    Video demo:

    Friday, March 25, 2011

    How to make touchpad/clickpad temporarily disable when typing?

    Since my laptop has clickpad that has larger area and more sensitive than common touchpad, I get an annoying behavior of my clickpad; when I type and my thumb or palm accidentally touches or near the clickpad, the cursor will be moved to the position that is pointed by mouse pointer, so that, I will continue to type in the wrong position! I hate this behavior! I have to disable my clickpad when I am typing. There are two methods:

    Method 1, I disable my clickpad permanently. I run this script to toggle on/off my clickpad:
    #Toggle touchpad
    SYNSTATE=$(synclient -l | grep TouchpadOff | awk '{ print $3}')
    # change state
    if [ $SYNSTATE = 0 ]; then
      synclient touchpadoff=1
    elif [ $SYNSTATE = 1 ]; then
      synclient touchpadoff=0

    Method 2, I use /usr/bin/syndaemon to disable my clickpad only when I am typing. The steps:
    1. Make ~/.xprofile
      # Customize X environment
      # Activate syndaemon for monitoring keyboard activity and disabling # the touchpad when the keyboard is being used.
      /usr/bin/syndaemon -td
    2. Add these lines on the top of /usr/bin/startkde (if you use KDE as the default desktop manager) in order to make X server executes ~/.xprofile when it starts.
      if [ -r /etc/xprofile ]; then
              source /etc/xprofile
      if [ -r $HOME/.xprofile ]; then
              source $HOME/.xprofile
    3. Restart X server.
    Currently, I use method 2 because I only disable my clickpad temporarily when syndaemon detects keyboard action and resume my clickpad function within 2 seconds after the last key pressed. For more information about syndaemon, type: man syndaemon on your console.

    Thursday, March 24, 2011

    Synaptics-1.4.0 patch for activating right-click function on clickpad

    Last month, I have written about how to activate right-click function on clickpad by patching synaptics-1.3.0. In this page, I will show you how to patch synaptics-1.4.0 so that you can use right-click function (also, middle-click). The patch is patch for synaptics-1.3.0 with a few changes. For the modified patch, you can download it from here (gzip compressed). You can follow the instructions from my last note; just change the step 3 with this: copy this file to path-to/x11/patch/ (in my case, copy it to /home/henry/rsync/x11/patch/). The rest will be same. I also put my clickpad.conf on google docs so that you can download it and place it in /etc/X11/xorg.conf.d/ then restart the X server.

    Tuesday, March 22, 2011

    ATI Catalyst Proprietary Display Driver 10.12 & kernel-2.6.38

    If you want to use ATI Catalyst Proprietary Display Driver 10.12 on your PC/Laptop that running kernel 2.6.38, you will get error because the installer cannot create fglrx kernel module. You need to patch ATI Catalyst kernel module before you compile it manually. Here is the patch:

    --- ./firegl_public.c   2010-12-02 22:28:43.000000000 +0100
    +++ ./       2011-01-09 17:40:22.000000000 +0100
    @@ -320,7 +320,7 @@
         return firegl_release((KCL_IO_FILE_Handle)filp);

    -int ip_firegl_ioctl(struct inode* inode, struct file* filp, unsigned int cmd, unsigned long arg)
    +int ip_firegl_ioctl(struct file* filp, unsigned int cmd, unsigned long arg)
         return firegl_ioctl((KCL_IO_FILE_Handle)filp, cmd, arg);
    @@ -407,7 +407,7 @@
         open:    ip_firegl_open,
         release: ip_firegl_release,
    -    ioctl:   ip_firegl_ioctl,
    +    unlocked_ioctl:   ip_firegl_ioctl,
         mmap:    ip_firegl_mmap,

         write:   ip_firegl_write,
    @@ -840,7 +840,12 @@ static int fglrx_pci_suspend(struct pci_
          * happen much less frequent then without this workaround.
         if (state == PM_EVENT_SUSPEND)
    +        console_lock();

         if (firegl_cail_powerdown(privdev, state))
             ret = -EIO;
    @@ -862,7 +867,11 @@ static int fglrx_pci_suspend(struct pci_

         if (state == PM_EVENT_SUSPEND)
    +        console_unlock();

    @@ -886,7 +895,11 @@ static int fglrx_pci_resume(struct pci_d
         if (PMSG_EVENT(pdev->dev.power.power_state) == 0) return 0;

         if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
    +        console_lock();

         // Restore the PAT after resuming from S3 or S4.
    @@ -911,7 +924,11 @@ static int fglrx_pci_resume(struct pci_d

         if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
    +        console_unlock();

         PMSG_EVENT(pdev->dev.power.power_state) = 0;

    @@ -5107,7 +5107,7 @@
     unsigned int ATI_API_CALL KAS_Mutex_Initialize(void* hMutex)
         kasMutex_t* mutex_obj = (kasMutex_t*)hMutex;
    -    init_MUTEX(&(mutex_obj->mutex));
    +    sema_init(&(mutex_obj->mutex),1);
         return 1;

    --- ./kcl_ioctl.c       2010-12-02 22:28:43.000000000 +0100
    +++ ./   2011-01-09 17:40:22.000000000 +0100
    @@ -193,7 +193,7 @@
     void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
    -    void __user *ret = COMPAT_ALLOC_USER_SPACE(size);
    +    void __user *ret = arch_compat_alloc_user_space(size);

         /* prevent stack overflow */
         if (!access_ok(VERIFY_WRITE, ret, size))

    Save this patch to file and follow the instructions that I have written on


    Saturday, March 12, 2011

    dmesg: operation not permitted as user

    After upgrading to Slackware64 13.37, I cannot access the kernel syslog (dmesg) as user. This problem is caused by kernel ( setting in Slackware (see pictures below).

    There are 2 solutions, you are freely to choose one of them.

    Solution 1: add these lines on your rc.local:
    if [ -r /proc/sys/kernel/dmesg_restrict ]; then
        if [ $(cat /proc/sys/kernel/dmesg_restrict) = 1 ]; then
            echo 0 > /proc/sys/kernel/dmesg_restrict

    Solution 2: change the correspond kernel setting (restrict unprivileged access to the kernel syslog) to "N" then recompile the kernel.

    Sunday, February 27, 2011

    Bigger buffer log (dmesg) size

    Someone asked me: how to make dmesg output is not truncated. The answer is make the buffer log size bigger. How? As far as I know, there are two ways to raise the buffer log size:
    1. Pass the parameter of log_buf_len=n to kernel, where n is a power of two number (n = 2^x). The default for slackware is 2^15 or 32768 (32k). You can change n to 65536 (2^16) or 131072 (2^17). In this way, you don't need to recompile your current kernel.
    2. Compile or recompile your kernel. Before you compile the kernel yourself or recompile it yourself, you have to change the kernel parameter in General Setup > Kernel log buffer size (see figure) to 16 (65536) or 17 (131072). After compilation, don't forget to copy kernel image, config, and into /boot directory and set up your bootloader (lilo/grub) properly.

    Choose one of them then you will get full dmesg output on your screen. It will be very long message log.

    Saturday, February 26, 2011

    Problem when using ATI Catalyst Proprietary Display Driver 11.x

    When I monitored ATI Catalyst driver website for Linux, the last driver version is 11.2 (15 Feb 2011). However, when I tried to install it on my laptop (ATI Mobility Radeon HD5400 series, my own compilation of kernel, & Xorg-server 1.9.4 from slackware64-current), the x server crashed. This happened also when I tried to install 11.1 version. Therefore, I have to draw back to the 10.12 version and it runs smoothly on my laptop. Since this version is very stable, I suggest, it's better if you stay on 10.12 version until AMD releases the new version.

    Note: If you want to install the 10.12 version, you will need to patch the kernel module of ATI Catalyst using this patch for 2.6.37.x or this patch for 2.6.36.x. You don't need to this patch if you are using 2.6.35.x. Also, the 11.x version of ATI Catalyst doesn't need this patch.

    How to install & patch:
    • Download the 10.12 version from here.
    • From console (run in text mode, make sure to this as root and the installer are executable), enter the directory where the installer is then run: ./ --install
    • Follow the instructions.
    • When done, enter to /lib/modules/fglrx/build_mod/
    • copy the patch to this directory then run: patch -p0 < fglrx_10.10-12_with_2.6.XX.x.diff (note that XX is 36 or 37, depends on your kernel version).
    • run: ./
    • if there is no error, go up to one level (/lib/modules/fglrx/) then do: ./
    • reboot your system
    • use aticonfig --initial to create /etc/X11/xorg.conf then make necessary changes on it. My suggestion, it's better if you move and rename that xorg.conf to /etc/X11/xorg.conf.d/fglrx.conf
    • start your x server
    Test your display, activate desktop effect, or whatever you want.

    Thursday, February 3, 2011

    How to activate right-click function on clickpad?

    Finally, I can use the right-click of the clickpad on my laptop (HP Pavilion dv3-4036TX). Clickpad is differ from touchpad, those are, it is larger than touchpad and it doesn't have physical buttons for left- and right-click (see picture below and click here for more detail).

    Because of this construction, if we use common driver (synaptics) on linux, you cannot use right-click function, in other word, when you click on both left and right bottom side of clickpad, you will get left-click function only.

    If you want to activate right-click function, you have to patch the xf86-input-synaptics driver. You can download the patch from this site. How to patch? Follow the steps below:
    1. Download the source of x11 (the whole directory tree) from Slackware site. It's better if you use rsync command for downloading it. In my case, I use: rsync -avP /home/henry/rsync/
    2. Copy the patch to path-to/x11/patch/xf86-input-synaptics/. In my case, I copy it to /home/henry/rsync/x11/patch/xf86-input-synaptics/.
    3. Add this line: patch -p1 < $CWD/patch/xf86-input-synaptics/synaptics-clickpad-support.patch --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } to path-to/x11/patch/xf86-input-synaptics.patch then save it. In my case, I add that line to /home/henry/rsync/x11/patch/xf86-input-synaptics.patch file.
    4. Run the slackbuild script exactly like this: ./x11.slackbuild driver xf86-input-synaptics
    5. You will get new slackware package of xf86-input-synaptics for your clickpad. Afterward, upgrade the existing xf86-input-synaptics with the new one using upgradepkg.
    6. Make new file (you can name it freely) in /etc/X11/xorg.conf.d/ (in my case: /etc/X11/xorg.conf.d/clickpad.conf), then write these lines in the file then save it:
    Section "InputClass"
            Identifier "touchpad catchall"
            Driver "synaptics"
            MatchIsTouchpad "on"
              Option "TapButton1" "1"
              Option "TapButton2" "2"
              Option "TapButton3" "3"

    Restart X server, then enjoy your "right-click function" of clickpad if you click the right bottom area of clickpad. In addition, if you click the middle bottom area of clickpad, you will get "middle-button function".

    Saturday, January 29, 2011

    Converting wma to mp3

    Hi Readers,

    This week, I got a bunch of wma files from my friend and I want to convert all into mp3 format for a reason (if you are linux user, you have known what my reason is). After I search on internet, I found a simple script from Linux Questions that can be used for converting wma format to mp3 format. For making this script works in your system, you need mplayer (already in slackware package) and lame (you can find slackbuild scripts for lame on In order to make me comfortable when using this script, I make a little modification on this script, that is:


    current_directory=$( pwd )

    #remove spaces
    for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done

    #Rip with Mplayer / encode with LAME
    for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done

    #convert file names
    for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done

    #add spaces as origins (if there are spaces)
    for i in *.mp3; do mv "$i" "`echo "$i" | tr '_' ' '`"; done

    rm audiodump.wav

    Just put this script on the same directory of your wma files then run it. All of your wma files will be converted to mp3 files.
    I hope this script and my little modifications can help you converting your wma files to mp3 files.