Home Home > Base-system > Kernel
Sign up | Login

Deprecation notice: openSUSE Lizards user blog platform is deprecated, and will remain read only for the time being. Learn more...

Archive for the ‘Kernel’ Category

GNOME3 iso by fcrozat and ATI radeon driver… a quick easy fix!

April 10th, 2011 by

Hi all,

For some time I wanted to check out GNOME3 and gnome-shell… My current chipset is ATI M92 RV710 and while the thermal performance with the proprietary driver is somewhat what I expect, the open source radeon driver does overheat my laptop a lot compared to flgrx. For the time being, fglrx isn’t really a choice because it just borgs the ‘activities’ bar on top… And until ATI fixes their driver, there’s no other choice than running with the standard radeon drm driver, which does provide a very pleasant experience with GNOME3 / gnome-shell.

For all that matters, KMS is to be enabled, period, full stop. And from this point… we have two options regarding power management:

1. Dynamic Frequency switching (not really working for me);
2. Profile based frequency switching (does provide what I need);

For all that matters regarding ‘profile based frequency switching’ we have 5 profiles available:

  • “default” uses the default clocks and does not change the power state. This is the default behavior.
  • “auto” selects between “mid” and “high” power states based on the whether the system is on battery power or not. The “low” power state are selected when the monitors are in the dpms off state.
  • “low” forces the gpu to be in the low power state all the time. Note that “low” can cause display problems on some laptops; this is why auto only uses “low” when displays are off.
  • “mid” forces the gpu to be in the “mid” power state all the time. The “low” power state is selected when the monitors are in the dpms off state.
  • “high” forces the gpu to be in the “high” power state all the time. The “low” power state is selected when the monitors are in the dpms off state.

Now, what I did might not be an option to everyone, but for sure it does provide a nice solution for my problem… So be mindful of that… this is a personal preference based on the fact that I don’t require intensive GPU usage, neither I run intensive GPU requiring applications within GNOME3/gnome-shell (I have a normal openSUSE 11.4 with GNOME 2.32.x with fglrx dual boot config for those apps).

The first thing we might want to do is to switch to profile based frequency switching… how do we this? As root:

[code] echo profile > /sys/class/drm/card0/device/power_method[/code]

Now we have to pick one of those 5 profiles… and since I’ve already stated… I want the ‘low’ profile since I don’t really do much intensive GPU work…

[code] echo low > /sys/class/drm/card0/device/power_profile[/code]

Now… you might want to check out the different profiles and the different clocks used… this can be done through:

[code] cat /sys/kernel/debug/dri/0/radeon_pm_info[/code]

and will report something like this:

[code]linux-331w:~ # cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 680000 kHz
current engine clock: 299530 kHz
default memory clock: 800000 kHz
current memory clock: 249750 kHz
voltage: 900 mV
PCIE lanes: 16[/code]

This one is using the ‘low’ profile… Feel free to test stuff around and find which one better answers your needs… Also there’s far more that can be done… I hope this helps ATI users with DRM driver to bring out the best of your system and improves your GNOME3 / gnome-shell experience, at so that you can run it with good thermal performance without fglrx.

NM

ATI/AMD fglrx 8.831 Catalyst 11.3 available for openSUSE 11.2, 11.3, 11.4

April 3rd, 2011 by

New version of catalyst 11.3 / fglrx 8.831 available

Please refer to my previous article where all the installation procedure is explained.

I’ve clean up all previous version which are not xpic, so everybody can easily know which drivers he has to install.

All credits to Sebastian Siebert (freespacer) : 11.3 article

What about tumbleweed, factory?

Users have reported that version 8.831 of catalyst 11.3 compile correctly under Tumbleweed with 2.6.38 kernel, so until xorg change too much, installing the 11.4 version should work

For factory, I’ve build a repository (see previous article) that can be used, and fglrx build

Numbers ?

Month Unique IP Number of visits Pages Hits Bandwidth
Jan 2011 2355 6411 19688 35263 16.63 GB
Feb 2011 2906 7719 26383 41142 22.37 GB
Mar 2011 8055 21157 228494 258613 59.13 GB

All served by openSUSE powered server!

ATI/AMD fglrx 8.821 Catalyst 11.2 available for openSUSE 11.2, 11.3, 11.4

February 19th, 2011 by

Updated : April 4th 2011

Preambule : free software

Warning

I would notice everybody which will install these software : you will install proprietary softwares on your computer. Nobody will be able to debug them, nor help you to resolve what can be happen. That must be said !

The free future

The real future is already in place : it’s called radeon (or free-radeon), it’s fully integrated in kernel & xorg. Actually ( for openSUSE 11.4, or openSUSE 11.3 with kernel-stable + X11 obs repo ). Support for many chipset is in real progress even for the 6xxx series.
Give it a try before using the proprietary software, report any bugs you find with it. Only your contributions can help and will make a real differences. Thanks for doing that !

Unofficial but working repository

I offer for those of you that for any reasons can’t use successfully the free-radeon drivers a repository where you will find the latest fglrx/catalyst drivers following the packaging policy made avalaible by AMD.
Thanks to Sebastian Siebert ( check his blog ) to work in coordination with ati/amd and follow the catalyst packaging. His work allow us to have that driver available for openSUSE.

The quick how-to

Adding the repository

For openSUSE Factory
zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_Factory/ "ATI/AMD FGLRX"
For openSUSE 11.4
zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.4/ "ATI/AMD FGLRX"
For openSUSE 11.3
zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.3/ "ATI/AMD FGLRX"
For openSUSE 11.2
zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.2/ "ATI/AMD FGLRX"

Installing the driver

Nota previous version

Due to change in ati/amd way of life, it’s recommanded to completely remove any version of fglrx previously installed with a zypper rm

I can only recommand to also (as root)

# Remove old conf & stuff
rm -fr /etc/ati
# Remove any old fglrx inside kernel modules
find /lib/modules -type f -iname "fglrx.ko" -exec rm -fv {} \;
New installation

Once the repo has been added, you will certainly have to reboot to get ride off free radeon module. At boot on the grub line add
nomodeset blacklist=radeon 3
Don’t panic you will be land to a console, open it with root account to install fglrx.
Search the software you want for example under openSUSE 11.4

zypper se -s fglrx
Loading repository data...
Reading installed packages...

S | Name                  | Type    | Version | Arch   | Repository
--+-----------------------+---------+---------+--------+-----------
i | fglrx64_xpic_SUSE114  | package | 8.831-1 | x86_64 | ATI/AMD fglrx non-official  
  | fglrx64_xpic_SUSE114  | package | 8.821-1 | x86_64 | ATI/AMD fglrx non-official  
  | fglrx_xpic_SUSE114    | package | 8.831-1 | i586   | ATI/AMD fglrx non-official
  | fglrx_xpic_SUSE114    | package | 8.821-1 | i586   | ATI/AMD fglrx non-official

Starting with 8.821 (Catalyst 11.2) ATI use now xpic (full explanation)
So use that one. I’ve removed all non xpic drivers the 2 April 2011.

For a 64bits version
zypper in fglrx64_xpic_SUSE114
For a 32bits version
zypper in fglrx_xpic_SUSE114

During the installation process, all the dependencies will be added, which mostly are needed to build the kernel modules. Expect around 200MB to dowload.

Then the installer will build the module for your installed kernel.
And if there’s a kernel update, the script will automagically detect that, and will rebuild the module for the new kernel installed. (So if you find that your workstation is slow on reboot just press the esc key to see the details … )

Preparing xorg to use fglrx

Once the module is build and installed, you should have a file fglrx.conf or 50-fglrx.conf in /etc/modprobe.d

cat /etc/modprobe.d/50-fglrx.conf
blacklist radeon

Next ati recommend to use ati –initial-config but that break the auto-detect stack of xorg. So I recommend changing one line in file /etc/X11/xorg.conf.d/50-device.conf
just change driver line to driver “fglrx”
All the rest of the setup (double screen etc) will be made lately with the ati catalyst control center (command is amdcccle).
For those of you which want to have an xorg.conf file just have a look at aticonfig –help command.

Start X

If you are inside the console we start to use before just run “init 5” to start xorg, and normally you will find your normal xorg login screen (kdm, gdm, ldm, xdm).
Hit ctrl+alt+f1 to return to the console and type exit or logout or ctrl+d to close it.
then ctrl+alt+f7 to return to the xorg session.

Updates

ati/amd catalyst are release on a month basis, but this vary from 3 weeks to 8 weeks.

  • Catalyst 11.2 – fglx 8.821 : 14 February 2011

References

Sebastian Siebert blog ( German ) with nice howto and problem resolution.
My previous post on the subject

ATI Amd flgrx 8.812 catalyst 11.1 available also for 11.4/factory

February 13th, 2011 by

A quick note for the week-end, I’ve build and uploaded the new fglrx drivers.
The good news, they are also available for 11.4/factory,

Unofficial-but-working repository

For openSUSE 11.4 (factory) NEW !

zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.4/ "ATI/AMD FGLRX"

I would like to have feedback about how that works for you, please comment !

Factory specifics troubles

on a fresh auto-configuration factory install : libomp43

Problem: fglrx64_7_6_0_SUSE114-8.812-1.x86_64 requires gcc, but this requirement cannot be provided
  uninstallable providers: gcc-4.5-16.1.i586[openSUSE-11.4-11.4-1.35]
                   gcc-4.5-16.1.x86_64[openSUSE-11.4-11.4-1.35]
 Solution 1: deinstallation of libgomp43-4.3.4_20091019-5.23.x86_64
 Solution 2: do not install fglrx64_7_6_0_SUSE114-8.812-1.x86_64
 Solution 3: break fglrx64_7_6_0_SUSE114 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): 1
Resolving dependencies...
Resolving package dependencies...

The following NEW packages are going to be installed:
  binutils-gold fglrx64_7_6_0_SUSE114 gcc gcc45 glibc-devel 
  kernel-default-devel kernel-desktop-devel kernel-devel kernel-source 
  kernel-syms kernel-xen-devel libgomp45 linux-glibc-devel make patch 

The following package is going to be REMOVED:
  libgomp43 

15 new packages to install, 1 to remove.
Overall download size: 127.9 MiB. After the operation, additional 600.9 MiB 
will be used.

Normally this bug (in M5/M6) should has been resolved in RC1.

See full details on my previous dedicated post
//lizards.opensuse.org/?p=4673

Make vmware workstation 7.1.3 running with opensuse 11.4 (kernel 2.6.37)

November 15th, 2010 by

Note about the 2.6.37xx

There’s a solution to make the kernel modules building under openSUSE factory (11.4) and the kernel 2.6.37

Preparation

download the lastest vmware workstation 7.1.3 (the patch is only for this version)
download the patch vmware-7.1.3-2.6.37-rc5.patch
download the script to patch patch-modules_v62-opensuse.sh

Install

Proceed to the normal installation of workstation, if you have older version, it will be replaced
by running under root account

sh VMware-Workstation-Full-7.1.3-324285.x86_64.bundle

Patch

Now we have to apply the needed patch, just run as root

sh patch-modules_v62-opensuse.sh

Here the output result

sh patch-modules_v62-opensuse.sh 
(Stripping trailing CRs from patch.)
patching file vmci-only/include/compat_semaphore.h
(Stripping trailing CRs from patch.)
patching file vmmon-only/linux/driver.c
(Stripping trailing CRs from patch.)
patching file vmnet-only/compat_semaphore.h
(Stripping trailing CRs from patch.)
patching file vsock-only/shared/compat_semaphore.h
Stopping VMware services:
   VMware USB Arbitrator                                               done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmmon-only'
make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules
  CC [M]  /tmp/vmware-root/modules/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/linux/iommu.o
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMUUnregisterDeviceInt’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:217:17: warning: ignoring return value of ‘device_attach’, declared with attribute warn_unused_result
  CC [M]  /tmp/vmware-root/modules/vmmon-only/linux/hostif.o
/tmp/vmware-root/modules/vmmon-only/linux/hostif.c: In function ‘HostIFReadUptimeWork’:
/tmp/vmware-root/modules/vmmon-only/linux/hostif.c:2004:37: warning: ‘newUpBase’ may be used uninitialized in this function
  CC [M]  /tmp/vmware-root/modules/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/memtrack.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/vmx86.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/cpuid.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/task.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/comport.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/common/phystrack.o
  CC [M]  /tmp/vmware-root/modules/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/vmware-root/modules/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/vmware-root/modules/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/vmware-root/modules/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/vmware-root/modules/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-root/modules/vmmon-only'
Built vmmon module
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmnet-only'
make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules
  CC [M]  /tmp/vmware-root/modules/vmnet-only/driver.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/hub.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/userif.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/netif.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/bridge.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/filter.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/procfs.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/smac_compat.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/smac.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetEvent.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/vmware-root/modules/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/vmware-root/modules/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/vmware-root/modules/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/vmware-root/modules/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-root/modules/vmnet-only'
Built vmnet module
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmblock-only'
make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/filesystem.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/dentry.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/stubs.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/dbllnklst.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/file.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/block.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/module.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/super.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/inode.o
  CC [M]  /tmp/vmware-root/modules/vmblock-only/linux/control.o
  LD [M]  /tmp/vmware-root/modules/vmblock-only/vmblock.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmblock-only/vmblock.mod.o
  LD [M]  /tmp/vmware-root/modules/vmblock-only/vmblock.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/vmware-root/modules/vmblock-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/vmware-root/modules/vmblock-only'
cp -f vmblock.ko ./../vmblock.o
make: Leaving directory `/tmp/vmware-root/modules/vmblock-only'
Built vmblock module
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmci-only'
make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules
  CC [M]  /tmp/vmware-root/modules/vmci-only/linux/driver.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/linux/driverLog.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciDatagram.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciDriver.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciDs.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciContext.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciHashtable.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciEvent.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciQueuePair.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciGroup.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciResource.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/common/vmciProcess.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmci-only/vmci.mod.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/vmware-root/modules/vmci-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/vmware-root/modules/vmci-only'
cp -f vmci.ko ./../vmci.o
make: Leaving directory `/tmp/vmware-root/modules/vmci-only'
Built vmci module
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vsock-only'
make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamConnect’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3172:4: warning: case value ‘255’ not in enumerated type ‘socket_state’
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/vsockAddr.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/util.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/stats.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/notify.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/driverLog.o
  LD [M]  /tmp/vmware-root/modules/vsock-only/vsock.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vsock-only/vsock.mod.o
  LD [M]  /tmp/vmware-root/modules/vsock-only/vsock.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/vmware-root/modules/vsock-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/vmware-root/modules/vsock-only'
cp -f vsock.ko ./../vsock.o
make: Leaving directory `/tmp/vmware-root/modules/vsock-only'
Built vsock module
Starting VMware services:
   VMware USB Arbitrator                                               done
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   Shared Memory Available                                             done


All done, you can now run VMWare WorkStation.
Modules sources backup can be found in the '/usr/lib/vmware/modules/source-workstation7.1.3-2010-12-13-19:07:07-backup' directory

References

vmware community post
vmware community thread

Mark D Bernstein aka InitiaZero for providing the script and patch by email and having ping me about it

Enjoy, and thanks to people having done the crappy job before.

Wacom Bamboo Pen and openSUSE 11.3

September 23rd, 2010 by

It all started when my daughter discovered the Bamboo Pen. Naturally the tablet quickly turned into a must have accessory to her computer. After a bit of Googling I came to the conclusion that making the beast work with Linux should be possible. The prize for the effort would be a very happy young lady.

In order to avoid any potential hassle with shipping etc. we went to the local Best Buy to buy the tablet. As the store had the hardware at the same price as online retailers that decision was easy.

Once I actually had my fingers on the tablet it was time to make it work. Doing a bit more detailed research now, I found various openSUSE forum posts and various other links. Some of these were not quite consistent, others appeared to address only half the solution. Therefore, I decided to cast away most of what I had found and just concentrate on the information found on the Linux Wacom Project. The HOWTO is informative and provides all information needed to get everything working. The HOWTO does not provide the information in the linear fashion I like, when I try to get something new to work. With a bit of hoping back and forth and some pocking around I got the tablet to work.

Now to the linear summary on how to get the tablet working.

  • Install openSUSE 11.3
  • Install the necessary packages to build the code provided by the Wacom project (root access required)
    • kernel-source
    • kernel-syms
    • xorg-x11-server-sdk
    • plus make and standard build infrastructure
  • Get the sources from the Wacom download page (0.8.8 at the time of this writing). This is the kernel driver code. The included X utilities and driver code in this version will not work on openSUSE 11.3 and will not build either, that’s OK.
  • Get the X utils and driver code from the Wacom main page. The link at the time of this writing is near the top of the page and links to version 0.10.8
  • Build the kernel driver
    • Unpack the kernel driver code tar -xjvf linuxwacom-0.8.8-8.tar.bz2
    • cd linuxwacom-0.8.8-8
    • Configure the build ./configure --enable-wacom
    • Build the driver make
  • Copy the newly built driver over the driver supplied by the openSUSE kernel (root access required) cp src/2.6.30/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/
    • If you want to make a backup copy of the project provided driver make sure you store the copy outside of the modules tree, i.e. outside of /lib/modules/`uname -r`
  • Remove any updates for the driver rm /lib/modules/`uname -r`/weak-updates/updates/wacom.ko
  • Build the X11 utils and driver
    • Unpack the sources tar -xjvf xf86-input-wacom-0.10.8.tar.bz2
    • cd xf86-input-wacom-0.10.8
    • Configure the build ./configure
    • Build make
    • Install (root access required)make install
  • Create a udev rule (root access required)
    • With your favorite editor open /etc/udev/rules.d/60-wacom.rules
    • Add the following code
      # udev rules for wacom tablets.
      KERNEL!="event[0-9]*", GOTO="wacom_end"
      # Multiple interface support for stylus and touch devices.
      DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", ENV{WACOM_TYPE}="stylus"
      DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", ENV{WACOM_TYPE}="touch"
      # Convenience links for the common case of a single tablet. We could do just this:
      #ATTRS{idVendor}=="056a", SYMLINK+="input/wacom-$env{WACOM_TYPE}"
      # but for legacy reasons, we keep the input/wacom link as the generic stylus device.
      ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom"
      ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/wacom-touch"
      # Check and repossess the device if a module other than the wacom one
      # is already bound to it.
      ATTRS{idVendor}=="056a", ACTION=="add", RUN+="check_driver wacom $devpath $env{ID_BUS}"
      LABEL="wacom_end"
  • Regenerate the module dependencies depmod -e

There you go, now you can connect the tablet, fire up GIMP and be creative.

Another openSUSE kernel git repo

September 14th, 2010 by

The mirror of the openSUSE kernel-source repository has been around for several months already, now there is something new: A repository that is actually usable :-). The current kernel-source repository is a series of patches managed in git, which has some upsides, like the ability to easily cherry-pick a patch and port it to a different branch or send it upstream. But it is quite painful if you want to work with the code itself and not with patch files. A task as simple as determining if drivers/…/foo.c in openSUSE-11.3 has or does not have a certain change requires checking out the branch and running the sequence-patch script to be able to look at the file. If you need to know when was the file changed, you have to run ‘quilt patches <file>’ to find out what patches touched the file and then ask git about the history of these patches. Neither convenient nor efficient. That’s why we have a second repository, that contains the mainline tree with all the suse patches applied. It’s located at http://gitorious.org/opensuse/kernel, the clone url is git://gitorious.org/opensuse/kernel.git. If you already have a clone of the mainline tree, then you can download just the differences with

git remote add suse git://gitorious.org/opensuse/kernel.git
git remote update suse
git checkout suse/master

The above task is then solved by opening the required file in an editor or typing ‘git show branch:file’. And you don’t even need to clone the tree to quickly check something in the source, just use the web viewer. Also, bisecting is much easier, because you avoid the sequence-patch step now. There are some gotchas though:

  • Not every commit to the kernel-source repository results in a change in the kernel repository. For instance updating config files in the kernel-source repository results in a commit that has no text changes. The gitorious viewer is confused by this and tells you that you are viewing the initial commit. In a local clone, you can exclude such commits with ‘git log .’ (note the dot).
  • When the patch series does not apply, there isn’t much to show in the kernel repository. In such case, the commit only adds a ‘BROKEN’ file to the toplevel directory and uses the tree from the previous commit. When using a bisect script, you can skip such commits with e.g. ‘test -e BROKEN && exit 125’.
  • When patches such as xen are temporarily disabled while updating to newer upstream versions and later enabled, it generates huge diffs back and forth. That’s usually not a problem unless you are bisecting something xen-related.

Anyway, I’m sure this will be useful for anyone who needs to debug something in the openSUSE kernel.

Local caching for CIFS network file system – followup

August 5th, 2010 by

Here’s a follow-up to my previous post on Hackweek V: Local caching for CIFS network file system

Since the previous post, I worked on improving the patches that add local caching, fixed a few bugs, addressed review comments from the community and re-posted the patches. I also gave a talk about it at the SUSE Labs Conference 2010 took place at Prague. The slides can be found here: FS-Cache aware CIFS.

This patchset was merged in the upstream Linux kernel yesterday (Yay!) which means this feature would be available starting from kernel version 2.6.35-rc1.

The primary aim of caching data on the client side is to reduce the network calls to the CIFS Server whenever possible, thereby reducing the server load as well the network load. This will indirectly improve the performance and the scalability of the CIFS Server and will improve the number of clients per Server ratio. This feature could be useful in a number of scenarios:

– Render farms in Entertainment industry – used to distribute textures to individual rendering units
– Read only multimedia workloads
– Accelerate distributed web-servers
– Web server cluster nodes serve content from the cache
– /usr distributed by a network file system – to avoid spamming Servers when there is a power outage
– Caching Server with SSDs reexporting netfs data
– where a persistent cache remains across reboots is useful

However, be warned that local caching may not suitable for all workloads and a few workloads could suffer a slight performance hit (for e.g. read-once type workloads). So, you need to careful consider your workload/scenario before you start using local disk caching.

When I reposted this patchset, I got asked whether I have done any benchmarking and could share the performance numbers. Here are the results from a 100Mb/s network:

Environment
————

I’m using my T60p laptop as the CIFS server (running Samba) and one of my test machines as CIFS client, connected over an ethernet of reported speed 1000 Mb/s. ethtool was used to throttle the speed to 100 Mb/s. The TCP bandwidth as seen by a pair of netcats between the client and the server is about 89.555 Mb/s.

Client has a 2.8 GHz Pentium D CPU with 2GB RAM
Server has a 2.33GHz Core2 CPU (T7600) with 2GB RAM

Test
—–
The benchmark involves pulling a 200 MB file over CIFS to the client using cat to /dev/zero under `time’. The wall clock time reported was recorded.

First, the test was run on the server twice and the second result was recorded (noted as Server below i.e. time taken by the Server when file is loaded on the RAM).
Secondly, the client was rebooted and the test was run with caching disabled (noted as None below).
Next, the client was rebooted, the cache contents (if any) were erased with mkfs.ext3 and test was run again with cachefilesd running (noted as COLD)
Next the client was rebooted, tests were run with caching enabled this time with a populated disk cache (noted as HOT).
Finally, the test was run again without unmounting or rebooting to ensure pagecache remains valid (noted as PGCACHE).

The benchmark was repeated twice:

Cache (state) Run #1 Run#2
============= ======= =======
Server 0.104 s 0.107 s
None 26.042 s 26.576 s
COLD 26.703 s 26.787 s
HOT 5.115 s 5.147 s
PGCACHE 0.091 s 0.092 s

As it can be seen when the disk cache is hot, the performance is roughly 5X times than reading over the network. And, it has to be noted that the Scalability improvement due to reduced network traffic cannot be seen as the test involves only a single client and the Server. The read performance with more number of clients would be more interesting as the cache can positively impact the scalability.

ATI HD57xxx fglrx drivers under 11.3 & 11.4

July 15th, 2010 by

Unofficial-but-working repository

Adding the repository

For openSUSE 11.4

zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.4/ "ATI/AMD FGLRX"

For openSUSE 11.3

zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.3/ "ATI/AMD FGLRX"

For openSUSE 11.2

zypper ar -c -f -n "ATI/AMD fglrx non-official" http://linux.ioda.net/mirror/ati/openSUSE_11.2/ "ATI/AMD FGLRX"

Searching the version you need

zypper se -s fglrx
+-----------------------+--------+---------+--------------+---------------------------
| fglrx64_7_5_0_SUSE113 | pakiet | 8.812-1 | x86_64       | ATI/AMD fglrx non-official
| fglrx64_7_5_0_SUSE113 | pakiet | 8.801-1 | x86_64       | ATI/AMD fglrx non-official
| fglrx64_7_5_0_SUSE113 | pakiet | 8.783-1 | x86_64       | ATI/AMD fglrx non-official
| fglrx64_7_5_0_SUSE113 | pakiet | 8.771-1 | x86_64       | ATI/AMD fglrx non-official
| fglrx64_7_5_0_SUSE113 | pakiet | 8.762-1 | x86_64       | ATI/AMD fglrx non-official
| fglrx_7_5_0_SUSE113   | pakiet | 8.812-1 | i586         | ATI/AMD fglrx non-official
| fglrx_7_5_0_SUSE113   | pakiet | 8.801-1 | i386         | ATI/AMD fglrx non-official
| fglrx_7_5_0_SUSE113   | pakiet | 8.783-1 | i386         | ATI/AMD fglrx non-official
| fglrx_7_5_0_SUSE113   | pakiet | 8.771-1 | i386         | ATI/AMD fglrx non-official
| fglrx_7_5_0_SUSE113   | pakiet | 8.762-1 | i386         | ATI/AMD fglrx non-official

There’s several version, as I would offer a way to use an older if new break everything 🙂

Launch the installation (always as root under a console, and better to be in init 3 mode)
For 11.3 64bits

zypper in fglrx64_7_5_0_SUSE113

For 11.3 32bits

zypper in fglrx7_5_0_SUSE113

etc .. I believe you pick the trick !
At the end of the installation, you can just reboot, or init 3 && init 5 .

Actual version Catalyst 11.1 / 8.812 Published January 26 by ATI/AMD

Previous version Catalyst 10.12 / 8.801 Published December 13 by ATI/AMD (Not available for factory/11.4)

If you already have a fglrx rpm installed, remove the previous version, otherwise catalyst center will give you wrong version information in info panel.

Update news January 26th

Catalyst Release 11.11

Sebastian Siebert blog about his script work nicely well
Script and
German Article

Work in progress : fglrx under factory ( 11.4 ) done for 11.1 catalyst version

At least but not at last, my unofficial-but-working repository packages has been updated yesterday. Another tricks for those who are tired of activating their desktop effects at each kde startup : (picked from the opensuse-kde)

Check out the kwin settings in: /home/user/.kde4/share/config/kwinrc
I have solved that problem changing the DisableChecks parameter from 'false' to 'true'. Although seems that this would be a cover instead of a real solution.
-- Hernán Thiers García

Update news October 2th

How to build the 10.9 driver ? Patch needed

I’ve posted here a version how to patch the drivers to get fglrx.ko builded with latest kernel on openSUSE 11.3 http://www.susepaste.org/80021629

Don’t forget to have a look at Siebert blog his script work nicely well here

Non Official repo and build

For those of us who feel adventurous, and trust me you could install my package (no flgrx.ko inside)

Update news August 7

Seems there’s now an ati repo
you can grab it at http://www2.ati.com/suse/11.3

check the wiki page about that SDB:ATI

zypper ar -fc http://www2.ati.com/suse/11.3 ATI

Check and choose the appropriate package according to your kernel.

but you know what : they just segfault !. My rpm 10.7 (8.753) doesn’t.

Update news July 27

ATI/AMD just release their 10.7 version with native support for openSUSE 11.3

So I rewrite this article with the use of them, and remove any ref to the 10.6 version

Hardware & check

After installing my opensuse 11.3 on a computer with ATI radeon HD57xxx, there’s no desktop effects available, no 3D, no acceleration that can be provided with the free opensource radeon. Too bad, but it’s only a question of months to see support for this graphic card.
My advise would be if radeon works (even with some glitches in it) keep it. And help dev’s with bugs reporting.
To check if 3D is there (would return a YES)

glxinfo | grep -i render

Second point : ATI doesn’t provide anymore repository for their binary drivers, so we have to build them on each needed system. When the 11.3 hits the street, the procedure was complex and not so easy, now with their 10.7 ( 8.753 ) version, it’s doable.

Note All of those manipulation are done under console. So try to leave X, do a ctrl+alt+F1. Go to console, and as root run and init 3 to stop running X

Get ready to build

Downloads

Firstly : read the release note, check if your card is supported or not (HD 3870 X2 is not !)
Secondly : read the release note again, you missed something important before. 🙂

Building env

Prepare your openSUSE with a minimal building environment :
zypper in kernel-source kernel-syms module-init-tools make gcc libstdc++ libgcc glibc-32bit glibc-devel-32bit fontconfig freetype zlib*

Now we have to add the correct headers (Thx to those who reveal that )
So most of you running the -desktop flavour

zypper in kernel-desktop-devel

or

zypper in kernel-default-devel

or on 32 bits

zypper in kernel-pae-devel

Install / Build rpm

Quick Install

sh ati-driver-installer-10-7-x86.x86_64.run

Or build your own package to manage them with YaST/zypper/rpm
For 32 bits (can also be build if you have a 64 bits install)

sh ati-driver-installer-10-7-x86.x86_64.run --buildpkg SuSE/SUSE113-IA32

For 64 bits

sh ati-driver-installer-10-7-x86.x86_64.run --buildpkg SuSE/SUSE113-AMD64

(more…)

Guest Blog: Rares Aioanei – Kernel Weekly Review with openSUSE Flavor

July 3rd, 2010 by

Hello, and be welcome to the 12th edition of the Weekly Kernel News!

-The first news for this week is Jan Kara’s pull request fot linux-fs (ext2 and ext3 in our case) aimed at -rc4, Frederic Weisbecker posting his pull request for the perf tree and Arnaldo Carvalho de Melo’s pull request for perf/core targetted at 2.6.36 .

-Sticking to the pull requests, we have also Dmitry Torokhov posting input updates for 2.6.35-rc1, Trond Myklebust with NFS client improvements, Tejun Heo with two fixes for the percpu tree and David Miller with networking fixes , quite a few of them, since they accumulated during Linus’ vacation, as the author explains.

-Neil Brown posted a pull request related to md, targetted @ 2.6.35, containing  various bugfixes, Thomas Gleixner posted various fixes for the core, x86, timer, scheduler, genirq and perf trees targetting also 2.6.35, Jens Axboe also has a pull request for  the block/IO subsystem (targetting -rc*) and Steven Rostedt posted a pull request for the tracing/perf/core tree aimed at 2.6.36 .

-Jeffrey Merkey posted an announcement of MDB Merkey’s Kernel Debugger x86_64 2.6.34 06-28-2010,  with the following summary : “http://merkeydebugger.googlecode.com/files/mdb-2.6.34-x86_64-06-28-2010.patch

This is the first full x86_64 version of MDB.  This implementation of MDB also uses the x86_64 and IA32 versions of the GDB disassmbler instead of the older IA32 disassembler from previous version of MDB.  bfd has been integrated into MDB which will support easy porting of MDB to other processor types.  I used the kdb disassembler GDB source base and added all the MDB features and layout (intel style).  This version also supports 8086 disassembly and IA32.  There is a short list of items left on the list and I will update these as I have more time to work on MDB.” Following is a list of fixes and todo’s, go check them out if interested.

-Junio C Hamano announced the release of git 1.7.11, which can be downloaded at http://www.kernel.org/pub/software/scm/git/ , and that is where one can also find RPM packages. The fixes list is too long to be posted here, but you can always check it out via web.

-Jeffrey Merkey comes back with the release of his MDB (see above) dated 29.06.2010,  introducing a few fixes :
“- fixed DS and W commands to output qwords in stack argument dump
– add find_extend_vma and follow_page to exported symbols
– add ds: and es: segment lookups in disassembler
– enable .TM flag to toggle memory read between physical and user space read/write for addresses < PAGE_OFFSET”

-Tony Lindgren asks Linus for the usual pull, in this case pertaining to omap fixes for 2.6.35-rc3, OpenSUSE’s own Greg Kroah Hartman posted a series of patches related to USB, staging and serial for 2.6.35-git, Dave Airlie posted fixes for drm, agp and fb, all part of the drm tree, John W. Linville posted some wireless fixes for 2.6.35 and Wim Van Sebroeck posted a pull request for the watchdog tree that introduces a  documentation fixi (for -rc3).

-Karel Zak announces the release of util-linux-ng v2.18 (stable) which you can download from the usual location : ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/ .

-Junio C Hamano announced git 1.7.2.rc1 , available at the same URL as above, make sure you check it out or just update your distro.

-The vhost-net tree was updated by a pull request by Michael S. Tsirkin, asking to merge the tree for 2.6.35, while Jeff Garzik updated the libata tree with a few fixes and Paul McKenney updated the rcu tree with a revert commit, while Thomas Gleixner posted a pull request for the sched tree.

-Greg Kroah Hartman started a series of 149 patches as part of the review cycle of 2.6.32.16 : “This is the start of the stable review cycle for the 2.6.32.16 release. There are 149 patches in this series, all will be posted as a response to this one.  If anyone has any issues with these being applied, please let me know.  If anyone is a maintainer of the proper subsystem, and wants to add a Signed-off-by: line to the patch, please respond with it.

Responses should be made by Sat, July 3, 17:00:00 UTC UTC. Anything received after that time might be too late.

The whole patch series can be found in one patch at: kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.32.16-rc1.gz and the diffstat can be found below.” Greg also started posting the same series of patches, this time for 2.6.27.48, 2.6.33.6, 2.6.34.1 .

That’s all, folks! Have a sunny weekend!