ATI FireGL/Radeon Driver for Linux

When the 3.9.0 version of the ATI Radeon Driver for Linux was released, I worked with some people on the Rage3D Linux Forums to try and find a way around the Neverwinter Nights memory leak. The result of that engagement was overall not very useful, so it looks like we will have to wait for ATI to fix their own driver.

Update (2005/02/23): I have come up with a workaround for the Neverwinter Nights memory leak. Check out my OpenGL extension filter library below for more details.

Update (2005/07/05): ATI has finally fixed their drivers! My workaround is no longer required. Upgrading to version 8.14.13 or later will fix the memory leak.

Canopus CRM2005 USB Remote Control Driver for Linux

Having received this remote control as a present, I was determined to get it working in Linux for use on my (at the time) Freevo box, which is now a MythTV box. The Canopus CRM2005 consists of a small USB IR dongle and a decent remote control. It is fairly inexpensive as well. I assumed that since it was USB it would simply be an HID device. I was half-right and half-wrong. It is an HID device, but it uses a vendor specific protocol. Thankfully it is really simple, and only requires reading from the USB dongle (no setup required). I used the kernel's ATI remote driver as a base for my driver, and just ripped out everything that wasn't needed.

The driver currently requires a 2.6 kernel, and of course USB and input layer support enabled in your kernel or built as a module. I believe that the CRM2004 version of the remote is identical, and so have added a USB ID for that remote as well. If you have hotplug enabled, the driver should load automatically and report keyboard events as a normal keyboard would. If you are wondering what buttons map to which keyboard keys, look at the top of the source file as they are all described there.

To build the driver just unpack it, run make and then as root make install.

tar -zxvf canopus_remote-0.9.0.tar.gz cd canopus_remote-0.9.0 make su -c "make install"

The makefile should automatically pick up your currently running kernel version and install the module in the appropriate place. Plug in the USB dongle and all should work fine. Please email me with your success stories or problems.

XRandR Patch for libSDL

This patch can be applied to versions of libSDL 1.2.7 and higher. It allows SDL to use the XRandR (X Resize and Rotate) extension to change video modes. This is simply a modern alternative to the XVidMode extension that is currently used by SDL. XRandR usage can be disabled by setting the environment variable 'SDL_VIDEO_X11_NO_XRANDR' before launching your application. In this case, SDL will fallback to the XVidMode extension. Any feedback or suggestions are welcomed.

OpenGL Extension Filter Library

This small library can be used to filter out extensions reported via OpenGL's glGetString(GL_EXTENSIONS) function. It works by using the LD_PRELOAD environment variable to force this library's glGetString() function to be loaded first, thus overriding the system's glGetString(). The system's glGetString is using internally by this library to get the full list of extensions and then it filters out any unwanted extensions. Doing this makes applications think they are unsupported and hence that functionality can be "turned off". The package includes source code and documentation for this library.

This library can be used to workaround the Neverwinter Nights memory leak that occurs with the fglrx binary video driver from ATI under Linux. See the contained README for details.

Latest release: filter_ext-0.9.1.tar.gz March 11, 2005

Previous releases: filter_ext-0.9.tar.gz February 23, 2005

Silicon Image 3112 Activity LED Patch

This patch can be applied to versions the Linux kernel 2.6.11 or higher. It should only be applied if you have a motherboard with a Silicon Image 3112 SerialATA controller. Do not apply this patch if you are using an add-on, such as a PCI card, with the sii3112. If you lose all your data and your PC blows up, tough. However, I have been running with the patch myself for a while now without problems, and with the benefit of having a real working activity LED.

Update (2006/12/16): I no longer have the machine with the Silicon Image 3112 SATA controller, so any further releases should compile but may not work. As such, any feedback is appreciated! If the newer patches work or not, please let me know and I'll try to fix them.

Latest release: sata_sil-led-2.6.19.patch December 16, 2006 (untested)

Previous releases: sata_sil-led-2.6.17.1.patch June 25, 2006

sata_sil-led-2.6.15.patch June 14, 2006

sata_sil-led-2.6.11.patch July 7, 2005