Installing RHEL 4 on a Compaq nx6125 Laptop

The Compaq nx6125 is a relatively inexpensive laptop with an AMD CPU and ATI chipset. If you try to install Linux with a kernel <= 2.6.9, you will encounter some problems. Here's how I made Red Hat Enterprise Linux 4 work on this laptop.

The first thing you'll see is a frozen progress bar when the installer formats the hard disk. Switching to a virtual console (Ctrl+Alt F2) and running hdparm -tT /dev/hda shows that the installer has not stopped, but that the disk gives you a whopping buffered read speed of 350 KB/sec. hdparm /dev/hda further reveals that DMA is not used, and hdparm -d 1 /dev/hda tells you that you are not allowed to activate DMA.

The reason for this is the ATI chipset, and in particular the IDE controller. Older kernels do not support the IDE controller yet. While there is a generic IDE driver, the kernel doesn't use that either, because some older controllers say they support it, and promptly crash when confronted with generic commands.

While the kernel contains a list of IDE controllers which work in generic mode, hardware vendors do not always announce new controllers in advance. But there is a solution: At the boot prompt, just add the kernel option all-generic-ide, which although fairly recent, is present in the RHEL4 U2 kernel.

With this, installation works, but the machine feels a little slow. top shows a 50% CPU utilization by soft interrupts ("si"), and you might notice that the wall time clock runs about twice as fast as it should. To fix this, add the kernel options "noapic nolapic", which disable the advanced programmable interrupt controller. Not using the APIC hurts performance a bit, but not to noticable degree.

That seemed to be the last problem, until one of the developers started a long compile run on his laptop. The machine froze for a minute and then continued as if nothing had happened. ls -ltr /var/log pointed to a temperature-related message in /var/log/acpid.

watch "cat /proc/acpi/thermal_zone/*/temperature" showed a temperature well above 70C during another compile run, and the CPU had probably been forced to stop previously to prevent permanent damage.

Instead of returning the laptops to the vendor, we put the following into /etc/cpuspeed.conf:

VMAJOR=1
VMINOR=1
DRIVER="powernow-k8"
OPTS="$OPTS -n -i 1 -t /proc/acpi/thermal_zone/TZ1/temperature 70"

This sets the right driver for the AMD CPU, and tells cpuspeed to slow things down when the temperature gets above 70C. Another performance hit, but it works.

10:55, 29 Nov 2005 by Carsten Clasohm Permalink | Comments (0)

Creative Commons 2005 Fundraising Campaign [support.creativecommons.org]

Looking at the photos on www.clasohm.com, you might have noticed the footnote that allows you to copy and use all pictures under the Creative Commons Attribution-ShareAlike license.

By providing a standard set of license texts, the Creative Commons project makes it easier for authors and creators to publish their content, and find a balance between reserved rights and freedom of use.

Now is your chance to help Creative Commons retain their IRS status as a charity, and continue their important work. Donate to the 2005 Fundraising Campaign and become a Creative Commons contributor.

20:40, 06 Oct 2005 by Carsten Clasohm Permalink | Comments (0)

Google Sitemaps [www.google.com]

Recently, Google published the Google Sitemaps protocol that allows Web sites to inform Google about new content, like this blog entry.

I have done an implementation for OpenACS, which allows modules like lars-blogger to generate Google Sitemaps.

The infrastructure package can be found at

http://www.clasohm.com/prj/clasohm.com/browser/trunk/packages/google-sitemaps/

The code that generates the sitemap for lars-blogger is in

http://www.clasohm.com/prj/clasohm.com/browser/trunk/packages/lars-blogger/tcl/sitemap-procs.tcl
http://www.clasohm.com/prj/clasohm.com/browser/trunk/packages/lars-blogger/tcl/sitemap-init.tcl
http://www.clasohm.com/prj/clasohm.com/browser/trunk/packages/lars-blogger/www/index.vuh

For this to work, you will also need the directory "google-sitemaps" in the server root, which must be writable by the Web server.

The generated sitemaps can be downloaded at [ad_url]/google-sitemaps.xml. See

http://www.clasohm.com/google-sitemaps.xml

for an example.

If you want to retrieve a copy of the code, you can do so with Subversion and the URL http://www.clasohm.com/svn/clasohm.com/trunk/

22:52, 17 Sep 2005 by Carsten Clasohm Permalink | Comments (0)

Kismet and IPW2200 on Fedora Core 4

Some time ago, I replaced my old IBM Thinkpad with a Dell notebook that has an Intel IPW2200 wireless network card inside. With that, I lost the ability to monitor wireless networks with Kismet.

But as Patrick Olsen describes in "ipw2200 driver install on Fedora Core 4", the latest versions of the IPW2200 driver and Kismet work together just fine. Installation is even easier than described by Patrick - you do not need the kernel source. The only thing to look out for is to first remove old versions of ieee80211 and ipw2200 with the remove-old script from each package, and then compile and install ieee80211 and ipw2200 in that order. Also, the current version of ieee80211 has trouble deleting two directories in /lib/modules, so I manually moved include/config/ieee80211 and drivers/net/wireless/ieee80211 about which it complained out of the way.

On my Dell D800, the source setting for Kismet is ipw2200,dev30359,ipw2200, where dev30359 is the same interface name displayed by iwconfig.

23:40, 10 Aug 2005 by Carsten Clasohm Permalink | Comments (0)

Wikimania 2005 [wikimania2005.wikimedia.org]

I spent the last weekend at the Wikimania 2005 in Frankfurt, the first international Wikipedia conference.

One hot topic at Wikipedia is geographic information and creation of digital maps. After attending Arnulf Christi's presentation on Open Geo Data Projects, my Google Maps enthusiasm has cooled off a bit. Google decided to create their own API instead of following an existing standard. On the other hand, Google Maps just works too well to not use it for my hiking maps.

The second geo-related workshop I attended was done by Tobias Dahinden, and covered the graphical design of maps. From what I learned, map design is hard, and science has not made much progress in automatic map drawing in the last 30 years. And things get worse when it comes to displaying maps on a computer screen. The most devastating examples were side-by-side pictures of MapQuest and manually drawn maps. Another topic of this workshop was how to get the geographic coordinates for drawing maps. Unfortunately, only the USA makes data freely available when it has been created with tax money. Over here in Germany, geographic information is sold by the states, and may not be redistributed.

09:58, 09 Aug 2005 by Carsten Clasohm Permalink | Comments (0)

Google Maps Source [www.google.com]

As promised, the source code for my OpenACS Google Maps application is now available. You can either browse it, or download your copy with Subversion. The repository URL is

http://www.clasohm.com/svn/clasohm.com/trunk/packages/google-maps/

The two most interesting aspects of my implementation are the UI for creating a location, and the way the map is displayed.

When I designed the application, I first had to find a way for getting the geographic coordinates for all those locations. Manually copying the coordinates from a desktop mapping application would have been too tedious, and Wikipedia does not have an entry for all the points I want to display.

Fortunately, the Google Maps API provides the means for a clever solution. Just embed a map in the form page, and use the click event to store the geographical coordinates of a mouse click in run-of-the-mill form text fields.

The source for this can be found in location-edit.adp and location-edit.tcl, and here is a screenshot.

Now that it is easy to enter a long list of locations, the next exercise is to include them in the map. You cannot display them all at once, because you do not want to clutter the map when it is zoomed out.

Solving this has become easy when Google added GMarkerManager to the Maps API.

In location-view.adp, I extract the locations from the XML provided by location-list.tcl, and pass them to the marker manager.

At the same time I switched to GMarkerManager, I started to use the Google Earth icons.

23:20, 30 Jul 2005 by Carsten Clasohm Permalink | Comments (1)

Google Maps [www.google.com]

I still go mountain climbing and photo shooting without GPS, but the Google Maps API looked too interesting to be ignored. The API allows a site to control, interact with, and extend Google Maps. After a little programming, you can now track my hikes via satellite.

As an example, take the Schinder. The map link on the trail page will take you to a satellite map centered on the mountain. All interesting locations in the area are marked, and clicking the markers will give you information about each location. You can also view a list of all locations.

This cannot replace a hiking map. But it gives a nice spatial view of the trails database, which previously could only be navigated by browsing discrete, and sometimes arbitrary regions.

The Google Maps API and OpenACS made it very easy to implement this custom application on top of Google Maps. The geographic coordinates and all additional information for the locations are stored by this site, and integrated into the map with a few JavaScript lines. Defining a new location involves not much more than clicking on a map - you don't even have to know the difference between latitude and longitude. If you are interested in the source, let me know.

23:23, 25 Jul 2005 by Carsten Clasohm Permalink | Comments (0)

This week, a buffer overflow vulnerability has been discovered in Adobe Reader 5.0.10. For Linux users, the only fix is an upgrade to version 7.

Unfortunately, Adobe Reader 7 can execute Javascript inside PDF documents, which is used by some authors to track readers. Javascript can be disabled with the menu item Edit - Preferences - JavaScript, but everytime you exit Acrobat Reader, it will ask you to reenable Javascript. To get rid of this annoying warning, do the following:

cd ~/.adobe/Acrobat/7.0/JavaScripts
rm glob.settings.js
ln -s /dev/null glob.settings.js

Update 11 Jul 2005: After upgrading from Adobe Reader 5 to 7, you also need to change your Mozilla or Firefox configuration. Instructions for Fedora Core can be found in the Fedora Core 4 Linux Installation Notes.

20:35, 08 Jul 2005 by Carsten Clasohm Permalink | Comments (0)

Here's my first Greasemonkey script which improves a Web site's usability.

itconversations-download.user.js modifies the details page for shows on IT Conversations so that you can download the MP3 with one click.

Because Greasemonkey scripts are only executed after the page has been loaded completely, and the IT Conversation pages use their own Javascript to slowly display ads, using this Greasemonkey script only makes sense when you block the ads with Privoxy or a similar tool.

Update 18 Aug 2006: The Greasemonkey script no longer works, as the IT Conversations index page is now dynamically built with Javascript.

22:07, 07 Jul 2005 by Carsten Clasohm Permalink | Comments (0)

Greasemonkey Script for golem.de Articles [greasemonkey.mozdev.org]

Another Greasemonkey script, this time for removing the inline banner and right-side navigation of golem.de articles: golem-de-cleanup.user.js

22:50, 17 Jun 2005 by Carsten Clasohm Permalink | Comments (0)

Another Greasemonkey script, this time for removing the top banner and right-side navigation of sueddeutsche.de articles: sueddeutsche-de-cleanup.user.js

13:46, 16 Jun 2005 by Carsten Clasohm Permalink | Comments (0)

While the Computerwoche news site has a nice RSS feed, the article pages are too cluttered with navigation elements, which you do not need when opening articles directly from an RSS reader. So I wrote a little script for the Greasemonkey Firefox extension, which removes the banner at the top and clears the left and right navigation columns. If you have Greasemonkey installed, right click on computerwoche-de-cleanup.user.js and select "Install User Script" from the menu.

Another Greasemonkey script useful for Computerwoche readers is DumbTxt, which removes the annoying Intellitxt popups. When installing it, just add "http://www.computerwoche.de/*" to the list of included pages.

Update 2005-11-06: I have uploaded a new version of the Greasemonkey script that works with the recent layout changes on www.computerwoche.de. Because the page URLs have changed, too, it is easiest if you uninstall the old script and reinstall using the above link.

15:43, 13 Jun 2005 by Carsten Clasohm Permalink | Comments (0)

I often have to automatically trigger some server action from a remote machine, and I have used a password-less SSH key and a dedicated account on the server for this so far.

But it turns out that SSH can provide more security. In ~/.ssh/authorized_keys, you can specify options for every key. This not only allows you to turn off port forwarding, but also to specify a command which will replace the interactive shell, or the command passed to the SSH client.

This command can be a shell script which checks what the client wants to run and executes it if it looks OK, or it can start the rsync daemon.

So to automatically run rsync over SSH, create a password-less SSH key on the client, put the public key in ~/.ssh/authorized_keys on the server, and add the following at the start of the line. Do not include the line break, and put a space between this and the key string.

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,
command="rsync --server --daemon --config=/etc/rsyncd.conf ."
ssh-dss keydata user@example.com

In /etc/rsyncd.conf, list the directories the client may access. Because rsync will not be run by root, chroot would not work.

use chroot = no 

[backup]
path = /var/backup
read only = yes

On the client, you then run rsync like below to fetch the latest backup files. Note the double colon between the host name and the module name. If needed, you could append a directory or file path after the module name.

rsync -e "ssh -i $HOME/.ssh/id_dsa-backup" \
-a --delete server.example.com::backup/ /data/server-backup

Of course, it's still a good idea to use a dedicated account on the server for this.

21:58, 25 May 2005 by Carsten Clasohm Permalink | Comments (0)

Today, I discovered a gem added to the 2.6.9 Linux kernel by Intel engineer Venkatesh Pallipadi: the Ondemand cpufreq governor. This kernel module uses the Enhanced SpeedStep Technology available with Pentium M processors to rapidly change the CPU speed, based on current load.

cpuspeed does the same thing, but takes noticeably longer to reach the maximum speed, and also waits longer before slowing down again. X applications feel much faster with Ondemand, and my guess is that battery life will be slightly better.

So if you have an Intel CPU with Enhanced SpeedStep Technology and want to give Ondemand a try, stop any running cpufreq daemons, like cpuspeed or cpudyn, and run the following commands. Note that I have only tested this on Fedora Core 3 with the 2.6.11-1.14_FC3 kernel.

/sbin/modprobe cpufreq_ondemand
echo ondemand > /sys/devices/system/cpu/*/cpufreq/scaling_governor

You can then start

watch -n 1 cat /sys/devices/system/cpu/*/cpufreq/scaling_cur_freq

in a terminal window, and run some X application to see how Ondemand changes the CPU speed.

To permanently install Ondemand, make sure that the cpuspeed service is turned off, and add the above modprobe and echo commands to /etc/rc.d/rc.local.

If you want to switch back to cpuspeed for some reason, you can deactivate Ondemand by running

echo userspace > /sys/devices/system/cpu/*/cpufreq/scaling_governor
Update 14 Apr 2006: This also works with Fedora Core 5.

00:01, 30 Apr 2005 by Carsten Clasohm Permalink | Comments (3)

CD Burning with cdrecord and a Samsung CDRW/DVD SN-324S

Ever got I/O errors on CDs burned with cdrecord under Linux, although you were 100% sure the ISO image and the CD medium was OK?

I had that experience yesterday, while on-site at a customer. The I/O errors always occurred at the end of the burned CD, when I ran md5sum /dev/cdrom.

Today, I found this in the cdrecord manual:

-raw96r: This is the preferred raw writing mode as it gives best control over the CD writing process. [...] There are several CD writers with bad firmware that result in broken disks when writing in TAO or SAO mode.

I guess the Samsung CDRW/DVD SN-324S, revision U303, which came with my Dell Latitude D800, is one of them. Running cdrecord with the -raw96r option results in perfectly readable CDs with correct MD5 digests.

Interestingly enough, we had the same problem on the customer's IBM notebook running Nero under MS Windows.

22:20, 26 Apr 2005 by Carsten Clasohm Permalink | Comments (0)

Update 15 Jun 2007: See Dell Latitude D800 Suspend to RAM with Fedora 7 for an updated version of this article.

With a 1-day delay of my Air France flight to Paris, I had enough time to fix suspend to RAM on my new Dell Latitude D800 under Fedora Core 3.

The following assumes that your D800 contains an NVIDIA graphics card, a Broadcom ethernet adapter, and an Intel PRO/Wireless 2200 adapter.

As noted in Aram Kananov's How To, you first need to replace the nv driver with NVIDIA's nvidia driver. The setup is described in the README that is part of the driver package.

Next, you need a script to remove certain modules before entering suspend mode, and for reloading those modules afterwards. Place the following in /etc/acpi/actions/suspend2mem.sh - credits for the original version go to Tomislav Vujec:

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
export PATH

# The synergyc process would block the unloading
# of the ethernet module, so we kill it.
killall synergyc

# Unmount all network filesystems
service netfs stop

# Stop local networking
service network stop

# Disable network modules
rmmod tg3
rmmod ipw2200
rmmod ieee80211
rmmod ieee80211_crypt

# Disable USB modules
rmmod usb_storage
rmmod uhci_hcd
rmmod ehci_hcd

# Preventive sync
sync

# Suspend
echo mem > /sys/power/state

# Come back...

# Resync clock
hwclock --hctosys

# Reenable USB
modprobe uhci_hcd
modprobe ehci_hcd

# Reenable network modules
modprobe tg3
modprobe ipw2200

# Start local networking
service network start

# Mount all network filesystems
service netfs start

To make ACPI use this script when you press Fn+Esc, put this into /etc/acpi/events/sleep:

event=button/sleep.*
action=/etc/acpi/actions/suspend2mem.sh

Now, don't press Fn+Esc yet. As noted in Appendix S of the NVIDIA driver README, the 2.6 kernel AGP driver has problems when waking up from a suspend. So, save everything and try Fn+Esc, but don't be surprised if X won't come back.

To test if the AGP driver is the culprit, add the following line in the "Driver" section of /etc/X11/xorg.conf:

Option      "NvAgp" "0"

Restart your X server, and try suspend+resume again. If it works now, you should compile a custom kernel to disable the kernel AGP driver.

If suspend doesn't work, look into /var/log/messages, and search for "Stopping tasks". This sometimes fails for some processes, which you then have to kill in the suspend2mem.sh script. Other processes, like Synergy2, can block the unloading of network modules, so they too have to be killed.

Install the kernel source RPM with up2date --get-source kernel, or download it from one of the Fedora mirrors. Go to /usr/src/redhat/SPECS, and generate the patched kernel source with rpmbuild -bp --target=i686 kernel-2.6.spec.

Afterwards, the source is in /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10. Configure it to compile the AGP drivers as modules - the easiest way to do this is to remove all lines starting with "CONFIG_AGP" from .config. Build and install the kernel with make modules bzImage modules_install install.

If you need special drivers or LVM to mount your root filesystem, don't forget to run mkinitrd. You also have to reinstall the NVIDIA driver for the new kernel.

In /etc/X11/xorg.conf, change the NvAgp option to "1", to activate NVIDIA's internal AGP support.

I found no clean way to disable the kernel AGP driver, so I just renamed /lib/modules/2.6.10-prep/kernel/drivers/char/agp/intel_agp.ko to intel_agp.ko.disabled.

When you now start X, and look at /proc/driver/nvidia/agp/status, you should see that the NVIDIA AGP driver is used, and suspend+resume should work.

23:30, 19 Mar 2005 by Carsten Clasohm Permalink | Comments (0)

Yet another round of fun with USB under Fedora Core 3. This time, I brought home an Epson Stylus CX6600 printer/scanner/copier.

The printer part of it was easy to set up with the Printing system settings. There is no driver for the CX6600 yet, but the CX6400 driver works just fine.

Before I was able to use the scanner, I had to fix the usual permissioning problem, because only root has access to the scanner by default. Following the ideas in Karl Heinz Kremer's SANE Epson HowTo, I added the following line in /etc/hotplug/usb/libsane.usermap, which is part of the sane-backends RPM:

libusbscanner 0x0003 0x04b8 0x0813 \
  0x0000 0x0000 0x00 0x00 0x00 \
  0x00 0x00 0x00 0x00000000

This has to be entered as one line without the backslashes. The second and third hexadecimal numbers can be found by running lsusb, the 0x0003 at the start and the zeros at the end are identical for all device entries.

With this line, hotplug invokes the script /etc/hotplug/usb/libusbscanner whenever the Epson CX6600 is connected or disconnected, and gives the currently logged-in user access to the USB device.

This would already be enough for using the scanner with the excellent VueScan. If you want to use it with SANE, you'll have to add the following line in /etc/sane.d/epson.conf:

usb 0x04b8 0x0813

Before doing this, you can run sane-find-scanner to check if your version of SANE detects the scanner. Afterwards, scanimage -L should list an "Epson Unknown model flatbed scanner".

15:19, 05 Mar 2005 by Carsten Clasohm Permalink | Comments (3)

Because they are funded by the public and already offer their content as streaming audio on the Web, I have been wondering why Germany's non-commercial radio stations have not jumped onto the podcasting band waggon yet.

Well, two radio stations are already on their way: DeutschlandRadio and Deutschlandfunk, whose programs not only consist of the usual news, but also of diverse topics ranging from a study on birds killed by wind mills, to the Danish press coverage of the recent election in Germany's northern-most state.

Each of these 3-20 minute contributions is available as an MP3 file, with two different user interfaces:

  • HTML, simple and easy to use, good for downloading the files and listing to them later, but no RSS feed.

  • Flash, also nice, and best for immediate listening.

All this content is in German. The international broadcasting station Deutsche Welle has English Audio on Demand, but you need Real Player and judging from the list, it's only a collection of complete programs, without any information about the contents. Pretty disappointing compared to DeutschlandRadio, or the BBC, which offers RSS feeds and content summaries for two of their programs.

Update 2005-03-07: There's still no RSS feed, but Deutschlandradio Kultur had a nice piece about podcasting today. Unfortunately, the MP3 is no longer available as of 2005-09-15.

18:21, 02 Mar 2005 by Carsten Clasohm Permalink | Comments (0)

What follows is a short tale about how to recover digital photos from a broken hard disk under Linux.

When I returned from a short vacation this week, one of the hard disks reported read errors for the Reiser filesystem superblock. And while I had multiple backups of all valueable data, my digital photos were only stored on this hard disk.

To add insult to injury, I noticed that I had deliberately switched off a SMART warning some months ago: for the "offline uncorrectable sector count". I had ignored this early warning sign because further SMART offline tests returned a count of zero.

After running badblocks for a while, it looked like only two small areas at the start of the disk were damaged.

Not wanting to take any more risks, I bought another 160GB hard disk, and copied the whole disk:

dd if=/dev/hdb of=/dev/hdc bs=512 count=65536 conv=noerror,sync
dd if=/dev/hdb of=/dev/hdc bs=4096 skip=8192 conv=noerror,sync

The conv parameters ensure that read errors on /dev/hdb are ignored, and that any data missing due to these errors is replaced with null bytes. Because I hoped that there were no errors after the first 32 MB, I used a larger block size for the second run, to speed up dd.

While all blocks after the first 32 MB were indeed readable, the disk grew hot, and only delivered 2.5 MB per second. This gave me 18 hours to plan the next steps.

First, I ran reiserfsck. The superblock was gone, so I had to use the --rebuild-sb parameter. Didn't help much, so --rebuild-tree was next. After that, I saw some familiar directories and filenames, but looking at the content of those files did not turn up a single of my photos.

So, do what special agents do, and use some forensic tool for evidence recovery. Reading the list from the Knoppix Security Tools Distribution, I first tried foremost, but found that it was unusable for 2.5 MB digital photos, because its memory consumption grew exponentially with the size of searched files. The next tool was photorec, a tool specifically written "to recover pictures from digital camera memory".

As with all filesystem-agnostic tools, it cannot deal with fragmented files, but it recovered almost 90% of my photos. Its usage is pretty simple, as it has a text-based UI. The recovered files are stored in a directory named recup_dir, which is created in the current working directory.

The only problem I had with photorec was that it sometimes did not find the end marker for a file type before it had copied a few hundred MB. And it seems that it looks for that start marker in areas which it already has copied to a file, because I ended up with more data than I could store.

Telling photorec to only scan a specific area of a disk is not possible, but one can use fdisk for that. Changing the partition table of an unmounted disk which you don't plan to write to does not erase any data, except for the old partition table. So I created a couple of partitions, ran photorec on one of them, sorted out the good data, and moved on to the next partition.

Now, I have two hard disks connected to two different IDE channels, housed in fan-cooled aluminium docking bays. I use software RAID level 1 to mirror my data, and I have set up multiple smaller partitions with LVM so I don't ever have to shift through the whole disk when a few thousand bytes disappear. And of course I have included my photos in my backup process.

Setting up RAID and LVM and copying an existing Fedora Core 3 installation to the new disks was pretty easy. The only tricky part was that I use LVM for the root partition (not recommended). To make this work you just have to create a new initial RAM disk with mkinitrd, as the RAM disks from the kernel RPMs do not contain the necessary LVM stuff.

Update 20 Jan 2005: The initial RAM disk is not part of the kernel RPM, but is created when you install the kernel on your machine. So if /etc/fstab already points to an LVM root partition during a kernel upgrade, there is no need to created a custom RAM disk.

21:51, 09 Jan 2005 by Carsten Clasohm Permalink | Comments (0)

RSS

Archive

January 2005
S M T W T F S
           
9  10  11  12  13  14  15 
16  17  18  19  20  21  22 
23  24  25  26  27  28  29 
30  31           
September 2008
July 2008
June 2007
May 2007
March 2007
January 2007
December 2006
September 2006
June 2006
April 2006
March 2006
February 2006
January 2006
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
January 2005
December 2004
November 2004
October 2004

Blog Categories

Hiking (5)
Desktop Linux (28)
Server Linux (5)
Palm (3)
Photography (5)
Politics (2)
Web Applications (15)

Notifications

Request notifications

Syndication Feed

RSS

Recent Comments

  1. Anonymous Visitor: Thanks
  2. Anonymous Visitor: AT&T U.S.
  3. Anonymous Visitor: All went well under CentOS 5.0 in Croatia (VIP network)
  4. Anonymous Visitor: tmp crypt not necessary
  5. Anonymous Visitor: Great article
  6. Anonymous Visitor: So it's not a Virus...
  7. Anonymous Visitor: Thanks! Helps also on Windows!
  8. Anonymous Visitor: Thank you
  9. Anonymous Visitor: Economic Incentives
  10. Anonymous Visitor: thank you