Listen my children and hear my tale!

It is a tale of Linux woe,
a tale of netscape that couldn't be upgraded,
of 2 computers and 6 linux versions,
of too many sound cards and too many network cards,
of software not being tested before being released,
of lost backward compatibility,
of cdrecord, of totem, of banshee, and grub.
But mostly, it is a tale of woe.

The linux version of DLL Hell

Linux lovers make fun of Windows for, among many things, the common phenomena known as "DLL HELL". But, consider my recent experiencing upgrading my 1998 era PC and using a 2002 era PC as a test bed:

At the start

I began with two computers: the Dell box was built in 2002 and had XP/home edition. This was to be a test box on which I'ld get my new version of linux running -- then copy my hard drive from the other computer so I could have a hot backup in case my install on the 1998 era box (running Suse 7.2) went bad -- which it did, but that comes later.

The reason that I decided to upgrade my machine was straightforward: I was running netscape 7.0, but when flash player 8 came out, the upgrade that I applied (the .gz version) screwed up the plugin. Netscape kept working but the flashplayer didn't. I went without browser movie capability until I developed a taste for the news web sites -- abcnews.com, msnbc, fox, cbs, cnn, etc. In 2007 I decided to build firefox (since I couldn't find netscape 8 for linux) with the hopes that I could watch most movies with it.

After a week of trying to pull down sources and build the predecessors for firefox -- only to find that the latest pkg-config was incompatible with the specific versions of xlib, fontconfig, freetype, gettext, glib gtk+, libXft, libXrender, pango, etc, and that some of these caused compile errors in others because no list of compatible versions could be found any place I could find using google. I just decided that upgrading the OS would be easier -- boy was I wrong.

I ultimately had trouble with memory, CDROMs, mice (of all things!), wired and wireless network cards, sound cards, and my 22" LCD monitor. It ultimately took me 6 different sets of operating system disks and 30 days to get everything working. No 90 year old grandma who wasn't a computer professional was going to get this to work -- although I am sure that there are some who could have done it better than me.

Upgrading the 2002 era Dell Box

So, I drag out my 2002 era Dell box with 256MB memory on it and a 40G hard drive and a 24X CDROM. I grabbed the SuSe 10.2 disk set off the net, burned it and ran the installation. It worked great -- or so I thought.

However, after the initial installation, I tried playing a music CD. Banshee came up with some goofy error about not being able to read the drive. I tried using it to burn some data and it also puked all over me. But, CDParanoia worked and cdrecord -- more properly refered to as wodim since cdrecord is now an alias for wodim -- also worked. So, I'm thinking that I can probably live with it.

Google told me that Linus himself ranted over how stupid the cdrecord interface was with respect to IDE interfaces and its silly requirement that you install a SCSI interface adapter. Why the heck, if this was necessary and only minimally invasive was I forced to track this down myself when I first installed the SuSe 7.2 back in 1998? Why didn't they just do it for me? It was fun to hear someone important (Linus) rant about something I wanted to rant about.

However, I found that the network wouldn't work on this OS on this machine. My network ran for exactly 60 seconds then it quit. If I unplugged the network and replugged it, I'd another 60 seconds of proper operation before it went dark and quiet again. I ultimately discovered that the problem was that this machine had 2 network cards in it and that the wireless card was taking precedence over the the wired card with respect to DHCP. All that I had to do was to remove this extra, and nowadays unused network card to make SuSe stay connected to the network. I EVENTUALLY figured this out -- no thanks to all the numerous posts on the internet involving networking, SuSe, networking problems on SuSe, etc.

Basically, I spent several evenings googling every combination of question I could think of -- only to find 50 people reporting the exact same problem and NOBODY suggesting that the problem might ultimately be that I had dared to have 2 network cards in my machine.

Further, the yast tool under Suse did not seem to let me disable the extraneous network card like it did with my old Suse box. The reason that I finally discovered how to fix the Dell box with SuSe 10.2 on it was because I finally remembered that I had the same problem back in 1998 with my other box. However, that box let me disable the non-wireless drive.

On To Ubuntu

So, after getting really annoyed with SuSe (and not yet having figured out the network card problem) I downloaded and installed Ubuntu Edgy Eft. Gosh what a stupid and unprofessional name. However, the OS did seem to be working pretty well though -- I actually could play music CDs, burn data, etc -- and the network worked! At least I knew that I didn't have a h/w problem.

Firefox looked great but the movies wouldn't play. I installed the flashplayer 9 only to be told that firefox still couldn't play the movie files on abcnews.com. Man was I depressed. A friend at work told me that some websites use an activeX version of the flash player and thus I'd never be able to see them on linux. I tried out the www.harrypotter.com and its flashplayer 9 files worked great! One has to celebrate minor victories but now I know that those (expletive deleted) folks at abcnews have (expletive deleted) me again.

So, anyway, I tried playing movies off msnbc.com -- and lo and behold I get this goofy error telling me that TOTEM can't play .WMV files. What the (expletive deleted) is TOTEM? Ok, so I spend a couple of nights googling for movie players and find that I need codecs and that oh by the way, the whole linux world of movie playing is based on illegal stolen s/w (maybe anyway).

Geez what a joke? If a company included this s/w or its employees downloaded the codec's themselves is the company libel for prosecution?

To make matters worse, when I did download the codecs from a site in germany, TOTEM still didn't work. More googling revealed countless dozens of people reporting the same problem: Who foisted this piece of junk off on us?

So I tried Xine, Kaffeine, and VLS. VLS worked as a stand alone player for all the file types of interest but its mozilla plugin was broken.

So, I thought that Ubuntu Edgy Eft was perhaps too edgy. I burned the Barking Beagle, or Boring Bandicoot ( or whatever the heck the 6.06 version was called ) onto CD roms and installed it. I was hoping that the older version might be more stable and the movie players might just work out of the box.

To no avail -- it had an uglier GUI interface and all the same problems.

Back to SuSe

Well, I finally remembered the problems I had had when originally installing SuSe 7.2 on my old PC (the one I'm trying to actually get an upgrade installed on). So, I popped out the extraneous wireless network card and re-installed Suse. This all worked but of course the Banshee s/w was still broken.

Ok, so I downloaded Mplayer and built it and with several mistakes caused by over-eagerness and failure to follow directions, I finally had a working firefox on the 2002 Dell box. But it only had 256MB of memory and I wanted to upgrade to 1GB.

Boy was I in for a shock: this machine used PC800 RDRAM. So? So 1GB of that kind of ram cost between $380 and $1000 depending on the web site you went to. Ok, this machine doesn't get upgraded -- it will be a household data server.

From Testing To Deployment -- or so I thought

But I'm ready to roll -- now I need to put SuSe 10.2 on the 1998 era machine that is currently running SuSe 7.2. I think that I'm in business until I run the installation: the installation disks won't boot!

The last message before the hang during boot is about sis900 ethernet card on the motherboard -- so I am assuming that the problem is related to that -- and lo and behold the internet is filled with posts about how the sis900 ethernet driver was broken in March of 2006 and that no one was sure when the "fix" to the driver would be deployed throughout the various linux distributions -- so I go buy an ethernet card for $21 and plug that baby in. I turn off the sis900 card using bios commands and hope for the best.

DOH (several expletives deleted) -- the exact same boot failure but this time at a different place in the boot process. And yes my SuSe 7.2 worked fine with the new ethernet board.

Ok, so I try Edgy Eft -- it won't boot. Then I try I Blithering Batswanan and it won't boot. So I download fedora core -- it won't boot. Then I download Slackware -- and it boots but is so wierd about its installation that I give up in despair.

So I tried Edgy Eft again but this time I noticed that it had 4 boot modes -- each requiring less functionality from the target machine than the one before. Finally I get a boot that works. Although it took a 10 minutes and had several long pauses where the ide controller was timing out and producing error messages.

Oh yea, I forgot: My old machine's ide interface doesn't do DMA! I haven't thought about that since 1998 when I installed Suse in the first place. You'd think that the boot loaders could check for this and set the flag themselves -- after all, they accept the option and a simple error test or time out test at worst could let them set this flag themselves.

But NOOOOOO, they have to waste my time both in downloading all these operating systems and scouring unhelpful posts by god and everyone on the internet -- not that I am not grateful for the help these people provide but boy there are a lot duplications of messages that just say "Yeah, I have the problem too -- does anyone know a solution?" I've even got a few of them out there myself.

Ok, so I finally know the magic boot option to feed to SuSe 10.2 for my old machine -- but it doesn't work. Apparantly, SuSe takes the option but just ignores it. So now I'm stuck -- I can't use SuSe 10.2 on the machine currently running SuSe 7.2. Ok, so I install Ubuntu.

Dude, Where's my CDROM?

Ok, so I just installed Ubuntu on my 1998 era PC using its CDROM but now the CDROM won't work. Everything else works, but the CDROM won't talk. Finally, I realize that the Ubuntu installation was too stupid to put the ide=nodma option in the lilo.conf file when it installs.

Lilo is a pretty common boot loader than runs during a power up sequence or when your restart your computer. It knows enough about the Linux file system to find the file named /lilo.conf.

Since the ide=nodma didn't make it into lilo.conf, I have to put it there myself -- after spending a great deal of time scouring the internet for details because I've forgotten how to do that in the last 10 years.

But it doesn't work -- first off there is no lilo.conf file and when I create one and populate it with the right magic -- which is never as trivial as just saying ide=nodma -- it still doesn't work.

Luckily I didn't have to spend a whole week scouring the internet for this issue -- Ubuntu uses grub instead of Lilo. You can, during boot, play with the options and a quick test of ide=nodma proved that this fixed the CDROM. A few minutes of googling told me what file to put the magic in for grub and I was great! The magic file is named /boot/grub/menu.lst and you put ide=nodma on all the lines that look like this:

kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/hda1 ro quiet splash ide=nodma

Or so I thought...

Doh! Some stupid upgrade I installed 3 months after finally getting my linux box upgraded overwrote the /boot/grub/menu.lst file -- and undid my fix for the cdrom. Luckily I had this web page to explain how to fix it!

She don't sang to me no more!

So now I have Ubuntu up and running on 1998 era machine. I have already removed the extraneous wireless card from this machine. The network works, I can burn and play on the CDROM -- but I have sporading outages of the music player. That is to say sometimes it works and some times it doesn't. Sometimes between boots the sound driver cuts out and sometimes different programs will work during the same boot.

It turns out that I had 2 sound boards in this machine -- one on the motherboard and one sound blaster board I picked up during my first SuSe 7.2 installation. You see, when I first installed SuSe 7.2 back in 1998, I had foolishly believed the stupid lying installation s/w when it said: You don't have to configure your hardware now, you can wait and do it after the installation is complete. So, I just skipped that part. Only to discover that no amount of googling would give me the name of the program to run to trigger the h/w detection. I looked till I was blue in the face and finally just went and bought a sound blaster board -- which worked fine until this second installation.

So anyway, some programs were choosing the builtin sound board and some where choosing the sound blaster. Sometimes between boots the programs that previously prefered the builtin sound card would swap and decide that they only wanted the sound blaster. Popping that card out solved the problem.

What? They changed the ogg file format?

Ok, so I finally get to copy my data back onto my old machine after having backed it up to the Dell box. I used XMMS to play some of the ogg files I had made on the SuSe 7.2 OS. Lo and behold they won't play! I get some kind of error about the data format.

So, I tried using the new ogg encoder with the new xmms player and everything works fine.

So I get to rescan my entire CD collection. No I don't steal songs off the internet and I already own most music I want to listen to.

This turns out not to be so bad because I decided to scan the music on my Dell box with its 24X CDROM -- and, as a special treat, freecddb is available to tell me the names of the songs! Cool.

What the Samba Hill is going on?

Ok, so now I've got two machines. One I intend to use as a network data server (because I won't pay the memory upgrade price) and the other, slower machine as my main development desktop. So, naturally I want to use Samba on the data server.

So, I download Samba on my Suse box (the Dell), I install it, I set up the shared volumes, and turn it on.

Sadly, findsmb shows me nothing -- no samba servers appear to be online not even the one I just installed on localhost. After a great deal of digging, I find that winbind, which makes the smb server visible to smb search programs did not come automatically when I asked for Samba from the SuSe Yast packages.

Why in God's holy name do these idiots who write installation tools not include everything by default and let me turn off the stuff I don't want? Why do I have to be knowledgeable about the details on every subject in order to just get standard stuff working?

Ok, so now I can see my samba server and I try to perform a mount command per the thousands of hits when I googled for "samba mount". They all looked like this:

mount -type smbfs //server/volume localDirectory -o options
But NOOOOO, this doesn't work. Luckily I found a comment discussing why samba mounts don't work properly on SuSe -- apparantly the guy who originally wrote Samba is in jail and they had to get someone else to start writing the kernel code. At this point, they decided to switch from Samba kernel behavior to CIFS (Common Internet File System) kernel code. So the proper file type is not smbfs but cifs.

(Very very very long series of expletives deleted)

So, like why couln't the Suse people just map smbfs to cifs in their mount program source code and stop (expletive deleted) bothering me with their goofy non-standardizations.

Out of time

Ok, so I go to my Ubuntu box and try the cifs mount command -- it works fine, but some of the other automatic features for starting shared volumes seem more complex than I am in the mood to tackle -- so I decide to mount the needed volumes by creating a boot time script and sticking it in the the /etc/rc5.d directory. I called it S87mountSambaDirs. This script just mounted one directory over the net from the SuSe box (Dell).

But NOOOO, this doesn't work. I eventually figured out that Samba hadn't been fully initialized by the time the mount command was made and the command was silently ignored. So, I put a 1 minute delay in the boot script thinking that this would give Samba time to fully come up before I attempted to mount.

But NOOOO, this doesn't work because the boot process killed my script because it took too long.

It turns out that editing /etc/fstab was easier after all -- and the mount command parameters pretty much was all I needed anyway.

And finally the monitor:

X is misconfiguring my Monitor

So the final annoyance was the monitor resolution on the older PC which is now running Ubuntu. The Monitor wants 1680x1050 or it constantly pesters you with a dialog box telling you that you are running it in the wrong mode.

Naturally, the linux people can't have left well enough alone. In the SuSe 7.2 world, the monitor resolutions that are allowed are configured in /etc/X11/XFree86.conf but in the Ubuntu 10.2 world the allowed resolutions are found in /etc/X11/xorg.conf. "xorg?" Why not Monitor.conf or something else makes some sense like XHardware.conf?

And why doesn't X just ask the monitor for its allowed resolutions and use that?

Unfortunately, to program the monitor you need to know a bunch of hardware timing information. Apparantly SuSe 10.2 knows about my particular monitor, so switching the monitor from the old machine running Ubuntu to the younger machine running SuSe 10.2 allowed me to copy the xorg.conf file information for this monitor from the Dell box to my old box.

There was one last monitor annoyance: the colors were too bright. This caused small fonts to simply vanish in the face of the brilliance of the white on web pages. The firefox pull down menus are surrounded by black borders -- and they simply got washed out by the color conversion. Thus, the menus weren't menus, but random splashes of text ontop of the web pages. Luckily this web page told me how to set the gamma correction on my monitor and make it permanent:

jjinux.blogspot.com
Like the author of that website, 0.7 was just fine with me so I put the
Gamma 0.7
in the monitor section of my /etc/X11/xorg.conf file. Warning! don't put quotes around the 0.7 -- it will cause X to fail to start after you reboot!

You can play with the gamma manually using xgamma.

And with this final annoyance, everything is working.

Or so I thought

A couple of weeks after writing this, I decided to recover some source code that I had in box in the corner and so I needed to mount a 1.44MB floppy. This should have been as simple as sudoing to root, or adding myself to the right group and executing the following command:
mount /media/floppy

But no, it didn't turn out that way. Apparantly no one uses floppies anymore. How dare me to want to use a standard part of my computer's hardware that hasn't had technical change in 20 years!

I got this error from the mount command:

/dev/ is not a device
Well duh! I am not expert in the device drivers but I happen to know that mountable devices have their default options specified in the /etc/fstab file. Upon examination, the /media/floppy mount point is associated not with /dev/fd0 but with "/dev/" -- thus the origin of goofy message.

Luckily the fix was to add the missing "fd0" from the fstab file -- but what if the line had been missing completely? Or what if I hadn't known to look in fstab? How many days would it have taken me to grep all over the internet for this line of text? How many postings would I have had to sift through which mentioned "ubuntu" and "floppy won't mount" before I found a post that I understood well enough to know was telling me how to actually fix the problem? The answer is a lot.

Luckily, in my case, I had another Linux box -- the SuSe box with the right magic in its /etc/fstab file to use as a guide.

Hopefully the last issue -- but I'm not making any promises

Now, the reason that I wanted to upgrade my 1998 era SuSe box was that netscape refused to let me upgrade it so I could play videos on the commercial news sites. There are of course numerous sites on the web with other kinds of videos that I could play just fine but the news sites tend to use plugin tools like: Anyway, while trying to play a streaming RealMedia file (rtsp://...) I found that Mplayer (mentioned above) would play the sound but not the video. So, I decided to download the freebie RealMedia10Gold player for Linux.

Step one -- find the darn thing. So I launch Firefox and use google to find the web site with the linux download package -- and then I press the "Download" button.

Firefox immediately crashes -- after doing nothing more than mentioned above. Then a pop-up dialog asks me if I want to report a bug. Naturally I do. It took about 1 minute to search my system for whatever information then asked me if I wanted to send the report. Naturally I did.

Then firefox contacted a web site which told me that I could only upload a bug report if I logged into the "Launchpad" group. I was not a member, so I had to first go to another machine, find that web site, become a member, and wait for the email confirmation that I was now a member. Then, I could submit my bug report.

At this point it then prompted me with a three page list of similar bugs and asked me not to report the bug if someone else already had. I gave it a quick glance and used ^F a few times trying to find the symptoms that I had seen but then gave up and reported it as bug.

At which point, I had to type in a long description of the problem. After which it again asked me not to report a duplicate bug and showed me a different list.

I wasted no time on this one and just said yes.

The next day, I got a nice letter from a gentleman who volunteered to help me but only if I could get this problem to duplicate -- but this time everything worked fine and I'm assuming there's nothing he can do to help me.

But now, at least I have the RealMedia installation package -- but with no instructions -- just an executable which I have to run as root to get properly installed.

So I do this and get asked a lot of question for which I have no idea how to answer -- and I'm running as super user so who knows what kind of damage the darn thing might do -- luckily none.

Sooo, the real RealMedia player is installed and it says that it has updated my mozilla plugins. I'm just sure everything will work the first time. So, I launch firefox and go to the CBS web site and click on a video.

Doh, the RealPlayer installation did not properly configure firefox to use the new player. So I try to guess how to manually patch my firefox and mozilla plugin directories to make this work.

But before I start this risky exercise of running as super user and messing around with system files I don't understand, I decided to verify that the RealPlayer was actually going to work. To do this, I manually ran the program, realplay. It brought up a cute little window and used its file menu to load the rtsp:// stream that MPlayer was having such trouble with. Remember that what started this was that MPlayer produced no video -- only sound. The RealPlayer plugin produced absolutely beautiful crystal clear video -- AND NO (EXPLETIVE DELETED) SOUND!

Doh -- back to googling for every goofy string I could think of only to be bounced from one set of whiners (like me) to another. Finally, the Helix group web site pointed out that release 10Gold -- DID NOT COME WITH AN ALSA DRIVER! What? ALSA being the standard sound driver package on Linux.

Luckily they pointed out a simple work around -- which was to install the alsa-oss package. This worked great and both sound video are beautiful on the real player -- my hat is off to them -- even if I want to choke them for not producing a warning about the alsa-oss package in their installation script.

Ok, so now back to the problem of getting firefox to use my handy new RealPlayer plugin: So I checked the firefox plugin directory, /usr/lib/firefox/plugins and see that the MPlayer package has installed a plugin for the rm file type:

mplayerplug-in-rm.so
mplayerplug-in-rm.xpt

And the RealPlayer plugins must the files:

nphelix.so
nphelix.xpt
The only reason I know this is that helix web site gave me the useful information -- it is certainly not mentioned in the output text from the installation procedure.

So, I move the offending mplayer plugin for the rm files to safe place and confidently start up firefox thinking that all is well -- But NOOOOO, I still get the Mplayer plugin. After the doctors let me out of the psyche ward, I remembered that there are plugins in the /usr/lib/mozilla directory. So I went there and sure enough the same pattern of mplayerplug-in-rm.* files exist along side the nphelix.* files. So, I move the offending mplayer files out of the way and AHHHHHHH. Beautiful sound and video -- and the RealMedia plugin reads the stream FAST compared to the Mplayer readers.