Goodbye Old Friend

Submitted on 22 August 2009

I recently completed a major update of my oldest internal Linux Server here at hrpr.com.  The server, whose name is Doofus,  is hosted on a Dell Dimension XPS T500 that has been in service here since April 1999. 

For the last eight years, Doofus has been running Slackware, which is a hard-core, no-frills, very stable Linux distribution that has been around since dirt was new.  If you aren’t on speaking terms with command line shells such as Bash and are not familiar with the Linux Directory Structure and its contents, then Slackware is probably not for you. 

Back to the update stuff…

I was getting ready to download the latest, greatest version of Slackware and install it on Doofus when it suddenly occurred to me that I had recently downloaded the latest version of Ubuntu Linux and had made an installation CD-ROM for it.  It was the Desktop Edition, but as a local test server, it would do just fine.  I was also curious to see how GNOME would perform on a Pentium III with 256M of RAM.  After all, I was essentially starting with a blank slate and could revert back to Slackware if I really wasn’t satisfied with Ubuntu.

I did the Ubuntu install and, as usual, it was fast and uneventful.  Doofus rebooted and up came the GNOME GUI.  And surprise, surprise!   It was quite responsive.  The mouse was responsive and GUI applications ran fast enough to meet my "wait-time" expectations.  Which really didn’t matter much anyway since Doofus would be running 99.99999% of the time as a server with remote administrative access via SSH and/or Webmin.

I installed the LAMP stuff and a BOINC Client for running SETI at home tasks.  And that was it – Doofus was back online doing its thing.

I am still a Slackware fan and highly recommend it to anyone who enjoys tinkering at the command line level and/or wants to learn Linux from the ground up.  However, Ubuntu brings added value such as automatic notification of security updates, a more feature rich software package manager and other administrative tools that make life a bit easier.

And who knows, next week I may change my mind again and install Slackware Linux on Doofus yet one more time.

Ubuntu 8.04 Wireless Woes

Submitted on 30 April 2008

I just finished updating my laptop from Ubuntu 7.10 to the new Ubuntu 8.04 release.  All went well except for one thing.  In addition to many other improvements, Ubuntu 8.04 installed a new version (2.6.24-16) of the Linux kernel.  Now this would seem to be a good thing.  But, once again a Linux distribution failed my “Ready for Prime Time” test…which is to provide me with a working 802.11b/g, or “Wi-Fi,” interface with little or no pain my part.

This issue with wireless interfaces is not unique to Ubuntu…I had the same problem with SUSE Linux in the past.  I won’t go into the many reasons for the lack of robust wireless support in Linux as Google can find you many learned (and some not so learned) dissertations on that subject and many places to point the finger and fix the blame.

Having been faced with this problem in the past, I applied all my “lessons learned” in an attempt to fix it.  But much to my chagrin, none of them worked.  I was finally reduced to searching through the Linux syslog to see if I could find a clue about what the problem was.  I found the following entries in the syslog:

Apr 30 07:53:55 roadie firmware_helper[17195]: main: error loading ‘/lib/firmware/b43legacy/ucode4.fw’ for device ‘/devices/pci0000:00/0000:00:1e.0/0000:02:01.0/0000:03:00.0/ssb1:0/firmware/ssb1:0’ with driver ‘(unknown)’

Apr 30 07:53:55 roadie kernel: [26485.121152] b43legacy-phy0 ERROR: Firmware file “b43legacy/ucode4.fw” not found or load failed.

Apr 30 07:53:55 roadie kernel: [26485.121166] b43legacy-phy0 ERROR: You must go to http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and download the correct firmware (version 3).

Apr 30 07:53:57 roadie NetworkManager: nm_device_802_11_wireless_scan(): (eth1): could not trigger wireless scan: Network is down

These error messages were generated by the Linux kernel during the system boot, but Ubuntu happily finished booting and asked for the userid and password without giving any hint of there being a serious error encountered during the system boot up.  Seems to me not much has changed over the years in *nix systems when errors such as this occur.  Can you imagine some poor user with minimal knowledge of Linux trying to determine what went wrong?   And determining what went wrong is only the first step…determining how to fix it is no walk in the park for those with minimal Linux knowledge.  Unfortunately. it is not as simple as “downloading the correct firmware….”

Fortunately for me, I knew that one could download and install packages from Ubuntu that would fix the problem.  You need to open a terminal window and enter the following at the command line prompts (or, alternatively, use the GUI-oriented Synaptics Package Manger:

sudo apt-get install build-essential

sudo apt-get install b43-fwcutter

build-essential contains a recommended list of basic packages used when “building” packages such as b43-fwcutter. b43-fwcutter is a utility for extracting firmware from Broadcom BCM43xx “proprietary” (Windows) driver files and then storing the resulting files in a folder where the Linux kernel can use them to initialize the wireless device at boot time.  You can learn more about b43-fwcutter and what it does here.

So that solved my wireless problem…or so I thought!  The laptop’s wireless card initialized and synced up with my Wireless Access Point (WAP), But I still had no connectivity to the Internet.  I could access all my local PCs and local Server, but could not make a connection over the Internet.  I checked the log in the gateway router and noticed that there were error message saying that the router was getting errors when trying to make TCP connections.

t then occurred to me that I had both the wireless and tethered interfaces active on the laptop.  I disabled the tethered interface (ifdowm eth0) and that solved the problem.  I now had connectivity to both my LAN and the Internet.  Why this solved the problem and why the LAN connectivity with both interfaces active remains a problem to be solved another day…if ever!  The only thing that comes to mind is that for connections over the LAN I use actual IP addresses (e.g., 192.168.1.x), while for Internet connections the ISP’s DNS gets involved to do the domain name to address mapping.

And I almost forgot…for the record, my wireless card is a Linksys WPC54G, which was a popular device back in the olden days (circa 2003).  And I guess it still is as Linksys still sells and support them.  I wonder how many potential converts have given up on Linux for their desktop OS because they’ve experienced problems like this.