Tweaking SUSE 10.1

Here’s how to use the SMART Package Manager and Xgl graphics.

In late May, SUSE Linux 10.1, the latest free/community Linux distribution from the folks at Novell was released into the wild. Like its predecessor, SUSE Linux 10.0, the newest incarnation of the OpenSUSE effort boasts the very latest and greatest enhancements for the Linux desktop user, including KDE X.X, GNOME X.X, the latest multimedia components, such as the iTunes- like Banshee MP3 and iPod software, as well as the entire foundation of SUSE Linux Enterprise Desktop 10, and SUSE Linux Enterprise Server 10, the corporate and regression-tested versions which should be available by the time you read this article. Why, SUSE Linux 10.1 has more software in it than any desktop Linux user and developer could possibly want.

Like any community effort, SUSE 10.1 has a number of components that could be considered bleeding edge. Two notable packages: the new libzypp package manager integration, a major change from previous versions of SUSE, and the XGL 3D desktop.

Would You Believe…

Can you believe that the libzypp stuff is so bleeding-edge that it doesn’t work for most people? Or that it was engineered by a group of genetically-engineered Bonobo monkeys living in a secret Massachusetts research facility? How about a sleep-deprived product release team pressured to get a product out before the beginning of the summer?

I admit that I am a huge SUSE fan, and it’s the primary distribution I use for my home servers and my personal Linux desktop. It’s a very stable foundation that works extremely well on a number of important architectures, and I rely on it as a proven VMware platform. Given SUSE’s past track record of stable and robust systems integration, I was extremely surprised when I discovered that they replaced the very stable, proven infrastructure of Yast Online Update (YOU) with something new and completely different — a synthesis of Red Carpet and YOU called libzypp, and a completely new graphical front-end, the Zen Updater.

Certainly, I can understand why SUSE made these changes. After acquiring Ximian in 2003, Novell was obviously anxious to leverage Ximiam’s very cool Red Carpet channel update technology, integrate it with their ZenWorks product line for Windows, and consolidate desktop update technologies, so that every product and initiative at the company would be on the same page. That’s all well and good, but for crying out loud, they should have kept the status quo in SUSE until the damn thing worked properly. Novell could have left YOU alone, offered up the new stuff as a separate beta test, and then rolled it into an update later on, perhaps in SUSE 10.2 or a service pack.

Novell, if you’re listening (and I know you do), please consider my recommendation.

In any case, if you’re committed to using SUSE as your Linux desktop, you have to be able to reliably install software from Internet repositories and do security and bug fixes. So it’s fortunate that Open Source hacker Pascal Bleser has released a version of the SMART Package Manager, complete with support for the SUSE update and install repositories, as well as a number of 3rd party software sites, such as Guru and Packman.


The SMART Package Manager project (, pictured in Figure One) is a relatively new initiative that aims to create an intelligent and distribution-independent algorithm for managing the problem of software upgrading and installation on Linux and Unix operating systems (including the Mac!). It runs on all the major distributions and works with a number of different repository formats, including YUM, APT, APT-RPM, and URPMI. It includes command-line tools and an easy-to-use GUI, as well as a system tray updater and software notification applet.

The SMART daemon has support for multiple mirrors, and is able to download updates in a multithreaded fashion, so that you can have several updates downloading at once. Although the software is not even a 1.0 release, it’s quite stable and works very well. The SUSE version of Smart Package manager can be found at /System/smart.

At the time of this writing, the latest version of SMART was 0.41 release 28. Download the following files (or newer) into your home directory:,,,, and, where xxxx represents your system architecture, such as i586, x86_64, and powerpc.)

Additionally, you’ll need to have all of the following dependencies installed on your system: bzip2, rpmlib (PayloadIsBzip2) & lt;= 3.0.5-1, rpmlib (CompressedFileNames) & lt;= 3.0.4-1,, (GLIBC_2.1), zlib, (GLIBC_2.0), (GLIBC_2.1.3), rpm,, rpm-python, rpmlib (PayloadFilesHavePrefix) & lt;= 4.0-1, (GLIBC_2.3),, popt, and python.

If you did a standard installation of SUSE 10.1 (either KDE or GNOME) you should have all of these dependencies on your system already, so you should be good to go. Whenever I install SUSE I do a complete install of KDE plus GNOME, plus the KDE and GNOME development tools, the kernel development suite, and Java. That pretty much covers everything.

From a command-line, issue the following in sequence:

# su root
# rpm –Uvh
# rpm –Uvh
# rpm –Uvh
# rpm –Uvh
# rpm –Uvh

(The last command is only necessary if you want the tray update and notifier program installed. SUSE 10.1 has its own notifier program in the system tray already, Zen-Updater, and you’ll want to turn that off if you use ksmarttray.)

Once you’ve got the packages installed, issue the following commands to update your system:

# sudo smart update
# sudo smart upgrade

The first command updates the local repository information from the Internet, and the second performs the actual download and updates of the software.

This command…

# sudo smart install packagename

Installs a specific software package if you know its name. For instance, sudo smart install python installs Python. Conversely…

# sudo smart remove packagename

… removes that package from your system.

To use the Smart GUI application, you can issue a…

# sudo smart –gui

… or choose “Smart Package Manager” from the KDE or GNOME menus under “System& gt; Configuration”

The GUI allows you to search for software components by name or type, and allows you to flag multiple packages for installing at once.

For more information on SMART, such as adding new installation sources and software repositories, have a look at Smart.

Xgl 3D Graphics

Like the libzypp software update support, The Xgl 3D desktop is also bleeding edge in SUSE 10.1. However, since its somewhat rough behind the edges and is beta quality, Novell actually had the sense not to turn it on out of the box. I actually have to give them credit for this, because unlike some other large software companies which have operating systems under development, 3D gee-whiz enhanced desktops should be optional, not a requirement for the end-user.

If you want to take the plunge into Xgl, you’ll first need a graphics card that supports 3D accelerated graphics. Currently, only cards from ATI, nVidia and Intel are known to work well, and as of this writing, only a subset of those have been actually qualified. If you’ve got a fairly recent card, there’s a very good possibility it will work, so you shouldn’t fret, but if it doesn’t work at all with Xgl, don’t be too sad either. You can install the Xgl software and test it out without any ill effects.

First, using SMART, you’ll want to install the dependencies:

# sudo smart install compiz
# sudo smart install xgl
# sudo smart install libwnck

The next thing to do is back up your X Window System configuration file:

# cp /etc/X11/xorg.conf /root/xorg.backup

You’ll also want to make sure you have the Linux kernel sources installed — just in case the proprietary driver installer program doesn’t have a pre-built kernel module and needs to rebuild the module. You can install the kernel source with:

# sudo smart install kernel-dev

Next, you’ll want to download the proprietary 3D graphics driver for your card, such as the ATI driver installer for Linux or the equivalent nVidia installer, and follow the instructions. The ATI ( and nVidia ( Web sites both have dedicated Linux driver download areas with comprehensive documentation on how to install the drivers.

After installing the ATI drivers, youíll need to run the command…

# sudo aticonfig –default

… to enable the proprietary fglrx kernel module. On nVidia systems, youíll want to edit the /etc/X11/xorg.conf file manually with your favorite text editor (such as kwrite or gedit) and change the reference in the” Driver” section from nv (the built-in X11 driver) to nvidia.

Next, youíll want to hit Control-Alt-Backspace to kill and restart the X11 server. If you get your desktop login prompt instead of a terminal login screen, youíre good to go with the new graphics drivers.

On some systems, you might actually need to perform a true shutdown and reboot the system for the X11 system to come back. If X11 doesnít start up or if it crashes, youíll want to log in using the terminal screen as root and run cp /root/xorg.backup /etc/X11/xorg.conf to go back to the drawing board.

You’re not out of the woods yet. Log back into the desktop, fire up a terminal prompt, and issue the following command:

# sudo gnome-xgl-settings

The Desktop Effects tool will tell you whether your card is supported, whether your card is not on the list but may work, will” sort of” work due to buggy drivers, or whether your card will not work, period. You should be able to enable 3D acceleration here. Then save and restart the X11 system again with Control-Alt-Backspace and log into GNOME with the Xgl stuff turned on. The Desktop Effects Tool settings can also be accessed within the GNOME Control Center, allowiing you to tweak the special effects and desktop behavior to your preference.

If you try to enable Xgl, but the login screen doesnít come back up successfully for some reason, you can use the command gnome-xgl-switch ––disable-xgl as root to disable Xgl from the command-line. (You will probably also need to do rcxdm restart to restart X and the login screen.)

For more information on Xgl on SUSE, such as getting the software to work on KDE, be sure to check out

Fatal error: Call to undefined function aa_author_bios() in /opt/apache/dms/b2b/ on line 62