21/03/2008

GRUB - I love you

My machine called Medea is a real bitch. Well, one problem of it is, that it has a SATA and an IDE hard drive, which creates boot problems:
On the SATA drive is Windows installed in the first partition, while my openSUSE 10.3 is installed on the first two partitions (swap / rest) on the IDE drive. GRUB boots from the IDE drive, but the standard entry for booting Windows from the SATA drive fails.
The reason for this is, that if you use GRUB on the IDE drive, the device driver for the SATA harddrive is not yet loaded when the Windows entry shall boot, so you have to fiddle around a bit (found here).

1. Boot your linux
2. Open a root console
3. Install GRUB onto your SATA drive via the command

grub-install /dev/sda

Change the argument of the command appropriate to your harddrive specification

4. Since you want to boot from the SATA drive, now all the mappings of the harddrives to the GRUB notation have to be changed.

vi /boot/grub/device.map

in my case I needed to map hd0 to /dev/sda and hd1 to /dev/hda.

5. Last but not least, you will need to correct your boot menu entries in order to map the new settings accordingly, I don't know the specific case for you, so you will have to try out. Consult the manual of GRUB in case of

cp /boot/grub/menu.lst /boot/grub/menupersonal.bak
vi /boot/grub/menu.lst

For me the entry for Windows XP worked perfectly when using

rootnoverify hd(0,0)
makeactive
chainloader +1


6. Reboot your computer and change the boot sequence appropriately so that your SATA drive is the first bootable harddrive used.

Happy booting all of your OSes

09/03/2008

Undervolt your CPU - and crash your Laptop or save a lot of battery

Ok, I was constantly annoyed by the fact, that my Samsung P35 works nice and quiet and battery-savingly on Windows with a tool called CPURightmark (a tool which allows for changing the core voltage and the frequency shifting behaviour of a mobile CPU), but battery consumptive under linux. Here is the deal how to change this:

Get the Linux-PHC package version 0.3.0 from http://phc.athousandnights.de/, unpack it and follow the instructions given in the readme-file for the "module section" using the patch for the vanilla-kernel (google told me the SuSE default kernel is a modified vanilla kernel so I gave it a try and it seems to work) and your kernel number
uname -r
Remember to make a copy of your acpi-freq.ko before starting the whole process (to be found in the directory

/lib/modules/yourkernel/kernel/arch/i386/kernel/cpu/cpufreq/

if anything goes wrong. Copy your freshly bakened module into this folder and do a reboot. After your system is up, you should find some file entries starting with phc_ in the system folder

/sys/devices/system/cpu/cpu0/cpufreq/

Now you can play around with the voltage settings by echoing new values into SysFSFilesystem as being described quite well in http://wiki.ubuntuusers.de/Prozessorspannung_absenken if you can speak German.
No warranty for your CPU, by the way. Using the lowest possible value for the lowest frequency step, I could decrease the temperature of my CPU by almost 5°C - now I'm still trying to figure out how to tell my laptop to spin up the fan at higher temperatures to get it quiet - my next post will probably deal about that.

Be careful not to take too low values for the voltage, since this might make your system unstable - I warned you...

08/03/2008

ATI, TV cards and compiz

Just to let you know. ATI closed source drivers and TV cards show an inherent problem: if you want to have eye-candy and you want to use Compiz, you will not be able to watch TV over a Pinnacle TV card (which is not because of Pinnacle, but because of the funny people at ATI writing drivers either allowing for video overlay or for compositing...). But who needs the useful eye-candy of Compiz anyway, regarding all the great television programs we have here... *cough*

By the way: this problem unfortunately is distri-independent...

04/03/2008

How to run a Wacom tablet on Nvidia or ATI AIGLX

Never, never, never, never ... use the Sax2-Module (tantalisingly dangled in front of your nose in YaST) to add a tablet, if you value your hand-written xorg.conf. Or back it up first.

I finally got my Wacom Graphire4 tablet working with nVidia AIGLX. (note that graphics tablets are generally not supported on XGL!) The problems I experienced in setting this up were:
  • getting the right identifier in /dev/input (the by-id one worked fine)
  • wacdump segfaulting with sudo - had to use a real root shell
  • GIMP Window mode resulting in nasty stylus-cursor offset, chose the Screen setting instead

HOWTO: Connect your tablet before booting (precautionarily). Make sure the x11-input-wacom and x11-input-wacom-tools packages are installed, they should be part of the SuSE default package selection anyway. Get the tablet event-mouse identifier from /dev/input/by-id (ls output shown below).
avocadohead@tisiphone:~> ls /dev/input/by-id
usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse usb-WACOM_CTE-640-U_V4.0-3-event-mouse
usb-Logitech_USB-PS.2_Optical_Mouse-mouse usb-WACOM_CTE-640-U_V4.0-3-mouse

Edit /etc/X11/xorg.conf:
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/by-id/usb-WACOM_CTE-640-U_V4.0-3-event-mouse"
Option "Type" "stylus"
Option "USB" "on"
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/input/by-id/usb-WACOM_CTE-640-U_V4.0-3-event-mouse"
Option "Type" "eraser"
Option "USB" "on"
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/input/by-id/usb-WACOM_CTE-640-U_V4.0-3-event-mouse"
Option "Type" "cursor"
Option "Mode" "relative"
Option "USB" "on"
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "pad"
Option "ButtonsOnly" "on"
Option "Button9" "2" #oder 1
Option "Button13" "3"
Option "Device" "/dev/input/by-id/usb-WACOM_CTE-640-U_V4.0-3-event-mouse"
Option "Type" "pad"
Option "USB" "on"
EndSection


Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
InputDevice "Mouse[3]" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "pad" "SendCoreEvents"

Option "Clone" "off"
Option "Xinerama" "off"
Screen "Screen[0]"
EndSection

Restart X or reboot. Test the tablet with wacdump:
tisiphone:/home/avocadohead # wacdump /dev/input/by-id/usb-WACOM_CTE-640-U_V4.0-3-event-mouse
Just move the stylus and watch the console output.

GIMP configuration: File->Preferences->Input devices->Configure Extended Input Devices. For "Mode", set everything to "Screen".

This is just how things worked on my machine with a Graphire USB non-LCD tablet. For different devices, adapt the Ubuntu HOWTO accordingly.

Button support worked well, even the scroll wheel (some people reported inverted scrolling). It' s not exactly plug and play, however; I had to restart X after plugging in to get it properly working.

For older SuSE distros, one had to compile the driver and kernel modules from scratch. Although the present SuSE packages seem to be sufficient FAPP, you can get additional tweaking tips and a lot of background information on the Linuxwacom HOWTO.

Applied the same procedure to Xanthippe (openSuSE 10.3 64bit, ATI Radeon X1300), worked OK.