Category Archives: Uncategorized

fglrx problems with Jaunty

Problems getting compiz (or any other 3D acceleration app) working with your ATI Radeon graphics card on the latest Ubuntu release, Jaunty Jackalope (9.04)?

Or better yet: you figured out that you were missing ATI’s proprietary driver, fglrx, and installed it on your own (since the Hardware Drivers wasn’t giving you the option to enable it in the first place)?

If that was the case, I think you already know that the reason why you’d get a hard freeze everytime the X server was comming up is that you were wrong, and Ubuntu and the Hardware Drivers app were right!

ATI’s Catalyst drivers (also known as fglrx drivers), in the default version shipped with Jaunty, are incompatible with some features from Xserver 1.6, which was introduced with Jaunty. Catalyst drivers up to version 9.3 will not work with Xorg version 7.4 or beyond.

The good news is that AMD has already released a 9.4 version that is compatible with the new server. You can get the new version, for Linux x86 and Linux 86_64 here: http://support.amd.com/us/gpudownload/Pages/index.aspx

The bad news is (or better, are):

  • Ubuntu’s packages haven’t been updated to include this version yet (as of the time of this writing) – so yes, you’d need to install them the manual way (see below for some tips)
  • Seems like the new driver still has some instabilities, notably when trying to use compiz with video overlay (try using totem to play a video while running a composite desktop – AT YOUR OWN RISK 😉

Oh wait! I actually have another piece of ‘good news’: Despite not having official packages for Ubuntu yet, I just found out how easy it’s to create those packages using ATI’s own binary:

# ./ati-driver-installer-9-4-x86.x86_64.run --buildpkg Ubuntu/9.04

Yep, that’s pretty much it. Install the generated .deb files and reboot the system. You may want to run aticonfig –initial if you are not confident that Xorg will automatically detect your driver.

Having a proper package installed instead of just files laying around will allow the system to reconfigure itself when needed (i.e., upon kernel updates) and it also allows you to keep your files tracked, smooth upgrades, etc – generally a Good Thing™to do.

-Klaus

Guest blogging on Emily’s “Open Source Security” blog

Starting from today I am a proud contributor to Emily Ratliff’s Open Source Security blog. The blog brings information, news, discussions and opinions mainly about Linux and Open Source security in general, and, besides Emily and myself, has other members from the IBM’s Linux Technology Center Security Team as contributors.

My first post brings a little introduction to concepts such as authentication and authorization, and how Kerberos and LDAP can be used to perform those important roles, to later introduce the “Using MIT-Kerberos fo IBM Tivoli Directory Server backend” Blueprint which I authored by the end of last year.

Please go check it out. Comments are always welcome.

Update: blueprint link fixed

-Klaus

Cedilla (ç) symbol using American Keyboards in Linux

Disclaimer: this article refers to using Linux with an American keyboard to type Portuguese (pt-br) text, using the ‘us-intl’ keyboard layout.

One of the things that bothered me when upgrading between Ubuntu versions a while back (Feisty for Gutsy? Hardy? I can’t remember) is the changed behavior for inputting the Cedilla ‘ç’ symbol using American keyboards.

Ok, in fact, this behavior changed twice over the time, so I can remember at least three ways of doing that:

  1. Press the the single-quote (‘) key, then letter ‘c’ (' then c). In the us-intl keyboard layout, the single quote is a dead-key commonly used to insert an acute sign over vowels: á, é, í, ó, ú. Pressing the single-quote twice produces the single quote itself. A few years ago, the Cedilla sign was inputted by combining the single-quote dead key with the letter ‘c’ itself. This behavior changed: now, ' then c produces ć – maybe to support languages that require this symbol (after all we’re abusing the us-international layout) or simply a question of consistency.
  2. Combining the Right-Alt key with the comma (,) symbol (Ralt+,). After the change in the above item was introduced, the us-intl layout was tuned to allow many other types of symbols (Can you say UTF-8?). The Right-Alt key came to be what is called a Level-3 modifier (that is, a key modifier that works just like Shift, Ctrl and Alt/Meta – that is not a dead-key). With this modifier, one could produce several other symbols commonly used in western languages other than English itself, i.e.: ¡, ß, æ, ñ, ø etc. Also, the Level-3 modifier also allow us to input commonly used symbols that are outside the English alphabet: ², ³, ©, ®, ¢, § etc.
  3. Combining Right-Alt with the comma (,) symbol as dead-key, then pressing letter ‘c’ (Ralt+, then c). This is the the behavior introduced with newer versions of the us-intl keyboard layout. Just like before, you use the Right-Alt key as a Level-3 modifier, but instead of inserting the symbol directly, this key combination acts like a dead-key, waiting for the next key-press to determine what symbol is being inputted. In fact, this behavior was introduced with the ‘alt-intl’ layout which is said to mimic the previous behavior of us-intl (first item above) – well, at least for me it doesn’t exactly mimics the former behavior, and I personally prefer the second option.

Choosing between the second and the third options above is pretty straightforward if you’re using a relatively recent Linux distribution with Gnome 2.x and Xorg. Just use gnome-keyboard-properties to choose between USA International (with dead keys) or USA Alternative International (former us_intl) for the behavior found in item 2 and 3 above respectively. You can also have both configured and change between layouts using the Keyboard Indicator gnome applet:

gnome-keyboard-properties screenshot
gnome-keyboard-properties screenshot

In case you are not using Gnome and prefer to configure it directly in Xorg’s configuration, edit the InputDevice section at the X.org server configuration file, usually /etc/X11/xorg.conf, to look like below:

  • Cedilla not as dead-key (behavior 2 above):
    Section "InputDevice"
    	Identifier	"Generic Keyboard"
    	Driver		"kbd"
    	Option		"XkbRules"	"xorg"
    	Option		"XkbModel"	"pc105"
    	Option		"XkbLayout"	"us"
    	Option		"XkbVariant"	"intl"
    #	Option		"XkbOptions"	"lv3:ralt_switch"
    EndSection
  • Cedilla as dead-key (behavior 3 above):
    Section "InputDevice"
    	Identifier	"Generic Keyboard"
    	Driver		"kbd"
    	Option		"XkbRules"	"xorg"
    	Option		"XkbModel"	"pc105"
    	Option		"XkbLayout"	"us"
    	Option		"XkbVariant"	"alt-intl"
    #	Option		"XkbOptions"	"lv3:ralt_switch"
    EndSection

The line with “XkbOptions” “lv3:ralt_switch” was indifferent to (at least) the Cedilla behavior, thus I commented it (I have a feeling that the ralt_switch behavior is included anyway for both variants).

Troubleshooting

If even after doing the above you can’t get the desired behavior, check the following:

  • Your window manager configuration usually precedes your X server configuration – That is, if you configured your keyboard layout using Gnome or KDE tools, the settings in your xorg.conf are probably being ignored. Within gnome, you can use gconf-editor and browse to /desktop/gnome/peripherals/keyboard/kdb to check the current effective configuration. Leave a comment if you know how to override this.
  • Your X server may have been automagically configured by HAL and friends. You can check that by opening the X server log (usually /var/log/Xorg.0.log) and looking for the evdev module. There should be a couple of messages showing which model/layout/variant was chosen:
    (**) Option "xkb_rules" "evdev"
    (**) AT Translated Set 2 keyboard: xkb_rules: "evdev"
    (**) Option "xkb_model" "pc102"
    (**) AT Translated Set 2 keyboard: xkb_model: "pc102"
    (**) Option "xkb_layout" "us"
    (**) AT Translated Set 2 keyboard: xkb_layout: "us"
    (**) Option "xkb_variant" "alt-intl"
    (**) AT Translated Set 2 keyboard: xkb_variant: "alt-intl"
    (**) Option "xkb_options" "lv3:ralt_switch"
    (**) AT Translated Set 2 keyboard: xkb_options: "lv3:ralt_switch"

    In this case, you can either:

    • Disable auto-detection from the X.org side, adding an “AutoAddDevices” “off” option to your ServerLayout section (at the xorg.conf file):
      Section "ServerLayout"
      	Identifier	"Default Layout"
      	Screen		"Default Screen"
      	InputDevice	"Synaptics Touchpad"
      	Option		"AutoAddDevices" "off"
      EndSection
    • Create a policy at the HAL side, by creating a .fdi file, e.g.: /etc/hal/fdi/policy/10-keyboard.fdi, that reads:
      <?xml version="1.0" encoding="UTF-8"?>
        <deviceinfo version="0.2">
          <device>
            <match key="info.capabilities" contains="input.keys">
              <merge key="input.x11_options.XkbVariant" type="string">intl</merge>
              <merge key="input.xkb.variant" type="string">intl</merge>
            </match>
          </device>
        </deviceinfo>

      (Change the variant from intl for alt-intl according to your choice). Remember to restart the HAL daemon (hald) for the changes to take effect

  • More information about HAL and the evdev module can be found at this blog post.

I hope this post was useful to shed some light into this (somewhat common) problem among pt-br users that don’t necessarily use Brazilian keyboards or run their systems in that locale. Leave a comment if you find this post useful, have questions, comments, corrections, anything 😉

-Klaus