Monday, January 31, 2005

My Adventure with Linux

I've always been a fan of open source software. Not so much because I like to tinker with the code, but because I can get some really great software for free. When I was in college I ran RedHat Linux as my operating system. We used Sun Solaris machines for all of our engineering homework, so it made sense to use a UNIX compatible machine at home. When Jenn and I moved to Maryland, I tried using Linux for a while, but Windows was much easier for Jenn to work with, so we switched over to that. Our new PC came with Windows XP Home already installed, and we've been using that ever since.

Lately, I've been wanting to do a little bit more with our home machine as a server. I'd like to be able to host images, video, and other stuff for the blog sites. I've also been interested in trying out some of the open source technologies for work. So over the past week I attempted to get Linux installed on a Virtual Machine instance. I am using Microsoft Virtual PC 2004 as the VM. I had so many problems trying to get this stuff installed. I first started with the Suse 9.2 professional mini-installer. This installer contacts an FTP server and attempts to download all of the components during the installation process. After several tries I was having no luck. I was following the instructions that said to go to the manual install option. The installer asked me to select my network card type, and I had no idea what the virtual PC was emulating the network connection as. After much frustration with guessing the card type, and failing to find anything on Google, I decided to switch distros.

So that night I downloaded Mandrake Linux and started that install. I gave up waiting for it to complete at 1am. When I woke up, it had a couple of errors but had finished installing from discs. I brought it into work and found that the X windows server failed to install properly, and I had a bear of a time getting it repaired. The one bright spot was that Mandrake successfully recognized the type of network card the Virtual PC was emulating: a DEC 21140 (Tulip) card. Armed with that information, I went back to the Suse installer.

Success.... oh, wait. Suse began installing, and loaded up the RAM disk from the FTP site I had selected ( However, after going through the hardware detection phase, it was unable to pull down the package list from the ftp site. I searched Google some more and only found a couple of items about whether the preceding '/' in the ftp path was necessary, but it didn't help. I tried several other servers, but it still didn't work. While I was playing around, I did notice that if I modified the install type from the main bootup screen of the installer to FTP, the installer successfully identified my network card. Why this doesn't happen when you do a manual install I'm not sure.

In any case, I was done wasting time on that at work. I figured I would play around with it more when I got home that night. After Jenn and Corbin went to bed, I fired up the VM instance again to try installing SuSE. There must be some undocumented network port needed to download packages, because from home the same FTP servers downloaded the package contents and the install worked flawlessly. I'm back at work now, and when I try to review the package list, it still fails, so there must be some additional outgoing port necessary for the download to occur. Does it use SSH? I don't know, but in any case, SuSE 9.2 is now installed on a virtual machine for me to play with.

All of that effort cost me about 12 hours. I have a short list of things I'd like to try now: developing in Mono, using Bugzilla, and playing with other open source development tools. I have to give it to Microsoft that they have done a great job of creating an installer for their OS. Still, now that it is installed, SuSE has been fairly easy to use. The YaST install tool is intuitive, and I've been able to find RPM packages for the software that I would normally use most often on Windows (Thunderbird and Firefox). Jenn can't quite understand why I think this is fun, but maybe I can find an example of something that only works in Linux that will wow her. Or, alternatively, I'll just prove to her what a big geek I am.