Archive for September, 2009

PTLSIM Setup On OpenSuse With G++4.1

September 29, 2009

Lately , i have found my self using ptlsim.

Obviously , the first step to use ptlsim is to install it. Here , i will tell you how to install ptlsim on opensuse with g++4.1and some troubleshooting about the installation and later phases of the usage. I will also keep this document up to date as much as possible.

Installation Steps:

1) Go to, download the latest package, what i have downloaded was ptlsim-20090314-r229.

2) After that extract this package.

3) Open a console and change your directory to this ptlsim directory.

4) In the ptlsim directory, open Makefile and edit the line:

– CC = g++-4.3  change this line to CC = g++-4.1

5) then turn back to konsole, and type make

6) you may have several errors like

stubs-32.h not found


– Download and install glibc , // zypper install glibc

7) if this error has occured , type “make clean” and when cleaning process is finished , type “make ” again.

8) possibly the ptlsim will be successfully compiled and ready use.

Trouble Shooting:

In the working phase, you may get an error like this:

-/sysdeps/x86_64/cacheinfo.c:197: handle_intel: Assertion `maxidx >= 2′ failed.


This is an assertion from glibc running on an Intel CPU. It assumes that the cpuid instruction has minimum level of support, but ptlsim doesn’t provide it.You can either remove the assertion from glibc, or more easily, hack the cpuid instruction in ptlsim such that it claims it has a higher level of support than it provides.

– This can be done by editing the  ptlsim/decode-complex.cpp file

– Search for the  void assist_cpuid(Context& ctx) function

– and edit the case:

   case 0: {
     // Max avail function spec and vendor ID:
    const W32* vendor = (const W32*)&cpuid_vendor;
    // rax = 1; // only one extended function  // Comment this

    // add this
    rax = 2; // only one extended function (but fake more otherwise glibc
             // fails an assertion)
     rbx = vendor[0];
     rdx = vendor[1];
     rcx = vendor[2];

– Finally recompile and use ptlsim. That’s all folks.


OpenSuse 11.1 & Ati Radeon HD 3470

September 16, 2009

Lately, i have been having problem with my Sony vaio sr 39vn about 3d hardware accerelation. Finally i have discovered that the driver installed is not exploitting my graphic card to its full extent.

First of all, when i first try t install the ati graphic driver, i had lots of problems. But i have figured those errors and corrected them.

So, long story in short,

Step 1. go to ati’s driver page. Choose the appropriate os and graphic card.

Step 2. In my case, it was

ATI Catalyst™ 9.8 Proprietary Linux x86 Display Driver 93.6 MB 9.9 9/9/2009

i downloaded a file named

Step 3. Before installation of this file. You should be sure that the packages are installed in your system, If not installed, you can install those by using YaSt

XOrg 6.8, 6.9, 7.0, 7.1, 7.2, 7.3 or 7.4
Linux kernel 2.6 or above (  source package is more appropriate, but it is ok to have header package alone)
glibc version 2.2 or 2.3

For ati’s catalyst to work properly , you have to install some more:

XFree86-Mesa-libGL // obsolete library, but instead of this Suse   comes LibGL you can check by typing

vehbi@linux-s9q5:~> rpm -qa –last | grep Mesa
Mesa-32bit-7.2-10.3.6                         Fri 04 Sep 2009 02:04:00 PM EEST
Mesa-7.2-10.3.6                               Fri 04 Sep 2009 01:14:43 PM EEST

If this is the output, then you do not worry, everything is OK.

XFree86-libs // obsolete , opensuse users do not need to install this either.

Step 4. Enabling POSIX Shared Memory (/dev/shm) support which is required for 3D applications.

To enable POSIX Shared Memory on your system, perform the following as root:

  1. Add the following line to /etc/fstab (if it isn’t there already): tmpfs /dev/shm tmpfs defaults 0 0
  2. Mount shared memory as follows: mount /dev/shm
  3. Issue the following command to check that it mounted properly: mount | grep “shm”

If the mount was successful, then the following output (or similar) should appear:

tmpfs on /dev/shm type tmpfs (rw)

Step 4. Reboot.


ATI Catalyst™ 9.8 Proprietary Linux x86 Display Driver

OpenSuse 11.1 & VirtualBox

September 15, 2009

Lately, i have been struggling with Sun’s virtualbox on Suse 11.1 to get it working. First of all my advice for you all not to install OSE( Open Source Edition) until it becomes fully functional. For now it would be better to download the binary from the sun’s website.

So here is how you can do it.



  1. First, you’ll have to download the package from Sun’s website.

  2. Then you should download the appropriate package according to your OS (32 & 64). For open suse , there is a special link. If you don’t know whether your linux is 32 or 64. you can check it by typing “uname -a” on the command line.

    vehbi@linux-s9q5:~> uname -a
    Linux linux-s9q5 #1 SMP 2009-08-15 17:53:59 +0200 x86_64 x86_64 x86_64 GNU/Linux

  3. After you download the rpm(It is an rpm in our case , since we are opensuse users, it may differ on different linuxs.)

    Type on the command line

    sudo rpm -i VirtualBox-3.0.6_52128_openSUSE111-1.x86_64 
  4. That’s it for installing Virtualbox.  But you will encounter, mostly so many errors. Let’s have a look at the possible errors you may encounter.

Problems And Fixes:

  1. VirtualBox’s library requirements. Install the following:
  2. ryan@rawswift:~/Desktop> VirtualBox
    WARNING: The vboxdrv kernel module is not loaded. Either there is no module
             available for the current kernel ( or it failed to
             load. Please recompile the kernel module and install it by
               sudo /etc/init.d/vboxdrv setup
             You will not be able to start VMs until this problem is fixed.
    /usr/bin/VirtualBox: line 72: /usr/lib/virtualbox/VirtualBox: Permission denied
    /usr/bin/VirtualBox: line 72: exec: /usr/lib/virtualbox/VirtualBox: cannot execute: Success

    If the above error appears, you should run ‘vboxdrv’ script to create the VirtualBox kernel module:

    ryan@rawswift:~/Desktop> sudo /etc/init.d/vboxdrv setup
    Stopping VirtualBox kernel module                                    done
    Removing old VirtualBox netflt kernel module                         done
    Removing old VirtualBox kernel module                                done
    Recompiling VirtualBox kernel module                                 failed
      (Look at /var/log/vbox-install.log to find out what went wrong)

    If it fails to compile, install ‘kernel-source‘ through YaST. Then run ‘/etc/init.d/vboxdrv setup’ again.

    ryan@rawswift:~/Desktop> sudo /etc/init.d/vboxdrv setup
    Stopping VirtualBox kernel module                                    done
    Removing old VirtualBox netflt kernel module                         done
    Removing old VirtualBox kernel module                                done
    Recompiling VirtualBox kernel module                                 done
    Starting VirtualBox kernel module                                    done
  3. Permission denied:
    ryan@rawswift:~/Desktop> VirtualBox
    /usr/bin/VirtualBox: line 72: /usr/lib/virtualbox/VirtualBox: Permission denied
    /usr/bin/VirtualBox: line 72: exec: /usr/lib/virtualbox/VirtualBox: cannot execute: Success

    Run ‘chmod’ on ‘VirtualBox’. This will set the execute bit:

    sudo chmod +x /usr/lib/virtualbox/VirtualBox
  4. Driver mismatch. If an error box appear when you ‘Start’ a virtual machine:
    The VirtualBox support driver which is running is from a different version of VirtualBox.
    You can correct this by stopping all running instances of VirtualBox and reinstalling the software.
    Result Code:    NS_ERROR_FAILURE (0x80004005)
    Component:      Console
    Interface:      IConsole {e3c6d4a1-a935-47ca-b16d-f9e9c496e53e}

    Check your VirtualBox package platform (64-bit or 32-bit, see the tutorial above).

  5. USB ERRORS: Sometimes virtual box may not recognize the usb devices. Or sometimes all the devices may seem gray(inoperable). If this is the case, do the following in opensuse:

    Step 1. Check that the user group ID vboxusers exists. If not, create the user group vboxusers using YaST -> Security and Users -> Group Management.

    Step 2. Discover the group ID (GID) number for group ID vboxusers. You can do this using YaST -> Security and Users -> Group Management. A new window will appear with a drop-down menu named Set Filter in the lower-right-hand corner. Change Set Filter to System Groups and scroll down to near the bottom of the list, where you should see the group name vboxusers with its group ID number to the right of vboxusers. Alternative way: grep vbox /etc/group as user root.

    Step 3. Add the desired user ID (e.g. john) to the user group vboxusers. Click the button in the lower-right-hand corner labeled Finish.

    Step 4. Add the following to the end of the file /etc/fstab:

    sys/bus/usb/drivers /proc/bus/usb usbfs devgid=XXX,devmode=664 0 0

    and add following line to /etc/init.d/boot.local

    mount -a
    Step 5. Reboot.

Note: Some of the parts above are from different places. If you have any further question, mail
me at