2006/12/19

The Touchpad

It's nice to be able to configure the touchpad. I find it often gets in the way when I'm trying to type because my palms hit it accidentally. To be able to configure the touchpad, add this line to the InputDevice section of xorg.conf:
Option "SHMConfig" "true"

Then install packages synaptics, the driver for the touchpad, and gsynaptics, a GUI for changing the touchpad settings.

The GUI will add a new "Touchpad" menu item to the System->Preferences->More Preferences menu. The driver gives you a program called synclient. synclient appears to offer more configuration possibilities than gsynaptics but I haven't tried them all out yet.

Anyways, to turn off the touchpad run this command
synclient TouchpadOff=1
and, to turn it back on
synclient TouchpadOff=0

ATI Driver installation

The ATI drivers are available from the Livna repository. The first thing to do is make the livna repository available to pirut. The easiest way to do this is to run this command:
rpm -ivh http://rpm.livna.org/livna-release-6.rpm

Now, you should be able to run pirut ("Add/Remove Software" from the main menu) and search for fglrx. You want to install the xorg-x11-drv-fglrx package. It will install the kmod-fglrx as a dependency. For some reason, the rpm installation process doesn't seem to run this command:
/usr/sbin/ati-fglrx-config-display enable
so, do that by hand. This will make the ATI OpenGL libraries accessible.

I can't remember if the livna rpm does this for you or not but, if it doesn't, you will want to run
/usr/bin/aticonfig --initial
This will add sections to /etc/X11/xorg.conf to have X use the new fglrx driver. You'll also want to add
Modes "WWWWxHHHH"
to the Display subsection in the aticonfig-Screen section, where WWWW is the width of your screen in pixels and HHHH is the height of your screen in pixels. This will give you the proper display size.

I also added this line to Module Section:
Load "extmod"
It fixes problems with rendering window corners in the Bluecurve theme and black windows during Alt-Tab window switching.

Probably the best thing to do now is reboot. But you could probably get away with just restarting the X server. Once you have rebooted, or restarted X, you can tell if the ATI driver is properly installed by checking a couple things.

1) Check that the kernel module is installed:

[/] /sbin/modprobe -l fglrx
/lib/modules/2.6.18-1.2849.fc6/extra/fglrx/fglrx.ko


2) Check that the OpenGL library is being picked up:

[/] fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon X1400 Generic
OpenGL version string: 2.0.6174 (8.31.5)


3) Check that direct rendering is enabled:

[/] glxinfo | grep direct
direct rendering: Yes


I had a big problems when I did my installation but in the end the problem was simply that the ATI open GL libraries were not available. My original fix was to remove /usr/lib64/libGL.so.1.2 and create a link from that file to /usr/lib64/ati-fglrx/libGL.so.1.2. So, if all else fails, you may want to try that but it is really a kludy way of fixing things.

To see some 3D in action try
fgl_glxgears
I get about 1400 fps on my system.

2006/12/12

ATI Drivers

Next step - get the right ATI video driver installed so I can do the 3d stuff. What I really wanted to be able to do was use AIGLX (Accelerated Indirect GL X) so I could see the cool effects that this allows, like the spinning cube when changing workspaces. It turns out this is not possible with the X1400 card.

AIGLX uses the X composite extension. Compositing allows an entire subtree of a window hierarchy to be rendered to an off screen buffer. This is what makes possible the nifty effects; presumably because the effects are being managed by the graphics card.

There are two providers of Linux drivers for ATI graphics cards - X.org and ATI. The X.org driver is called "radeon", the ATI driver is called fglrx. The radeon driver does not support the X1400 card (as of 7.1) but does support the Composite extension. The fglrx driver supports the X1400 card (as of version 8.29.6) but does not have support for the Composite extension. Therefore, it is not possible to use AIGLX with this card. This sucks. The NVidia linux driver does support the composite extension so, if you can, get an NVidia card. It would have cost me an extra $150 to go NVidia so I passed when I was building my machine.

As a side note, there is another X server implementation called XGL. XGL is a rewrite of the X server that is layered on top of Open GL. It was written by David Reveman under the auspices of Novell and Open SUSE. Support for compositing is built right in to XGL. It is possible to use XGL together with the fglrx driver since XGL doesn't use the Composite extension. I don't know what there is about the Composite extension that fglrx can't work with it, and yet it can work with XGL. If I was really ambitious I could install XGL and get my 3D effects. But, I just don't care that much.

Next post, I'll go over installing the fglrx driver from the livna repository.

2006/12/11

Installing Fedora Core 6

Installing FC6 was pretty straightforward but there were a couple things that needed to be straightened out. At first I tried using the graphical interface to Anaconda to do the install. However, when the X server started it left artifacts all over the screen and I wasn't able to get rid of it. After a few iterations of this, I just installed using the text interface. It isn't that bad to use, especially if you are making minimal customizations as I was.

I blew away all the preloaded partitions on my hard drive. This always gives me a lot of satisfaction even though Dell forces me to pay for the Windows installation that I don't use. I created a logical volume to manage my disk. With the 100 GB hard drive I don't have a lot of space so I didn't want to give a lot of room to my home directory. If I had used partitions to create my home directory it would have been very difficult to change its size later if I needed more space. With the logical volume manager changing size should be a relatively painless experience.

Here's my partition list:

[bloomsbury root ~] /sbin/sfdisk -l /dev/sda

Disk /dev/sda: 12161 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 12 13- 104391 83 Linux
/dev/sda2 13 12160 12148 97578810 8e Linux LVM
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty


The rest of the install went very smoothly. I installed a minimal number of packages. Using the pirut software installer in FC6 is very quick and easy. I have just been adding sofware as I need it. You can access pirut from the "Start" menu - it is called "Add/Remove Software". Some people complain that pirut is slow and hard to use but I really like it. My only other experience with a graphical front for managing software on a Linux system was with Yum Extender. Pirut is certainly an improvement over that.

A couple days after I had completed the install, I got quite a scare. I rebooted and the logical volume that held my home directory was wiped clean. I sent an email to the lvm mailing list but never did receive a reply. I haven't had any problems since and it's been about a month with probably ten reboots. The good thing to come out of this is that my backups are getting done regularly!

In the next post, I'll talk about getting the ATI X1400 card set up.

2006/12/05

The Setup

This blog is dedicated to my experiences running 64 bit Fedora Core 6 on my Dell Inspiron 9400 laptop. My hope is that others will find it useful for setting up their laptops. My goal is to get all the hardware working, preferably in 64 bit mode. A word of caution though: I am not a Linux expert by any means. I only focus long enough to get something working and then I lose interest. So, my posts are not going to be in depth - they'll be more like pointers to help you get started.

This is my first laptop. I wanted a laptop for a couple reasons. The main one is that I occasionally do training and having a laptop that I can plop down and hook up to the projector is very nice; and a lot less nerve wracking. Most training labs run Windows which means I have to transfer my Impress slides and Java programs on to a Windows box from a memory stick and hope to hell they work. Usually they do but when they don't it's embarrassing.

The second reason I wanted a laptop was so I could use the same computer at home and at work. I find it takes a lot of work to get a properly functioning Linux desktop system up and running. With two computers, one at home and one at work, it takes almost twice the effort. As well, from home I can VPN in to work. By using the same computer in both places I can start work right away because all my work files are immediately available.

Reason number two meant I needed a desktop replacement laptop. And I'm cheap, so I didn't want to pay too much. A quck check on Google convinced me that I wouldn't have a whole lot of problems with a Dell laptop. For desktop replacements, the Inspirons and XPses properly configured looked like the best bet. I thought the XPS systems were overpriced for what I needed; they seemed to cater more the gaming/multimedia crowd.

I got an Intel Core 2 Duo T7400 CPU. Since they're only about 15% faster than the Core Duos it probably wasn't cost effective to go with the Core 2 but I wanted one. I also got 2 GB RAM since my work required it. I got a 100 GB SATA 7200 RPM drive. I would have liked a bit bigger hard drive but the larger drives all ran at 5400 RPM. My experience has been that a faster hard drive makes a big difference in system responsiveness. The screen is a 17" WUXGA. At 1920 x 1200 pixels it is awesome! I can finally setup my Eclipse IDE the way I like.

As to the rest of the stuff, here's the output from /sbin/lspci:

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X1400
03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
03:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)


So far, I have got the video and wireless network working. It's taken me nearly a month but I work slow. I will upload more posts over the next few days explaining what I've done so far.