I'm a follower. Yup, it's true.

At long last, after many aborted attempts in years prior, I've finally made the switch to Linux. I tried again and again in the past, mucking about with previous versions of such flavors as Red Hat and Mandrake but, honestly, it was just too damn frustrating. Sure, in response to that I can hear the collective eye-rolls of uber-Linux l33t5 everywhere. I don't care. I was always using a laptop. Linux with laptop hardware has been notoriously difficult. And listen here; I never wanted to own a PC that I had to fight with just to get some meager bit of productivity out of it.

And that, ironically, is the reason for the switch. Finally, at long last, there's a Linux distro that's truly geared towards us unwashed adopters... Ubuntu. And, as if by some strange twist of fate, I'm finally damn sick of having to reload my machine every 4 to 6 months because somehow XP becomes so bloated and overcome by the fact that I actually have the gall to work on it that it slows to a crawl, like a DOT flag waver on a summer day.

So far, Ubuntu is the bomb. No, it hasn't been perfect. The video was strange at first. Wireless gave me absolute fits. For some reason my sources.list corrupted. So on and so forth. Still, it has been worthwhile. I've experienced frustration and joy. At this point I'm prepared to pull the temporary drive housing Ubuntu out of my laptop, image it, and dump that image on my primary drive, eliminating Windows from my laptop life forever (I'll likely never be rid of Microsoft altogether, to which my resume will attest).

It's a strange new world, running a machine that does every last thing I need it to, and all without the benefit of expensive and/or stolen software. Yes, my box is free, and I'm not sacrificing a thing for it to be so.

The intention of this page is to cover my experiences with Ubuntu. I'll post my frustrations and my fixes. My favorite apps, themes, tricks and tips. It will be geared towards the machine I use, an HP ZD8000 laptop, but it won't necessarily be machine specific. Most of all it will represent a compendium of all the links I've collected in my travels that have helped me along the way. No, none of the information will necessarily be new to the web. In fact, I've found a number of other sites that do a bang up job of covering the conversion experience from Mac/Windows to Ubuntu, and I don't anticipate my addition to be any better, more concise or more informative.

Still, I haven't yet stumbled on the site that covers Ubuntu from the perspective of configuring wireless, choosing a web editor, locating and configuring a Remote Desktop replacement, muddling through non-free codecs and fighting through the installation of the Cisco IPSec VPN client. Yeah, because of all I do that's the kind of shit I need.

So hey... let's continue.

I've reinstalled Ubuntu Dapper 3 times now and with each instance I learn a little more. I have a ridiculous amount of information to compile but, for now, I'm going to start with that which was the most pressing to me. First up, a little about my system.

I'm running Ubuntu on an HP zd8205us notebook outfitted with 2 gig of RAM. For those unfamiliar, with a 17" screen and a fully fledged Pentium4 HT within, this is hardly an ultra-portable. Hell, it's hardly a portable. Here are some pertinent specs:

Microprocessor2.8GHz Intel® Pentium® 4 Processor 520, and HT* Technology
Microprocessor Cache1MB L2 Cache
Memory512MB 400MHz DDR2 System Memory (2 Dimm)
Memory Max2048MB
Video GraphicsATI MOBILITY RADEON X600
Video Memory128MB DDR (dedicated)
Hard Drive80GB 4200 Hard Drive
Display17.0" WXGA+ High-Definition BrightView Widescreen wide viewing angle (1440 x 900) Display
Network CardIntegrated 10/100BASE-T Ethernet LAN (RJ-45 connector)
Wireless Connectivity54gâ"˘ 802.11b/g WLAN with 125HSM* / SpeedBoosterâ"˘ and BroadRangeâ"˘

Important things to note; the video card (ATI MOBILITY RADEON X600) and the wireless card (54gâ"˘ 802.11b/g WLAN with 125HSM).

Right. So, from the get-go on Ubuntu things such as audio, NIC, USB ports and touchpad work. The video works too, but more on that later.

Pretty much immediately you're going to want to wire your machine up and get some prerequisites. Typically your wired NIC is going to be defined by Ubuntu as "eth0." After connecting the NIC, pull up a terminal window and enter in the following:

sudo dhclient eth0

This polls for an address via DHCP. If you receive an error proclaiming that eth0 doesn't exist, try this:

ifconfig

This should return all your active network interfaces, including your Local Loopback (which you should ignore for now). If your wired NIC isn't listed, try "turning it on" thusly:

sudo ifconfig eth0 up

Then try polling again with dhclient. After a successful address assignment you should be able to ping out to common addresses like google:

ping www.google.com

Ok. Ubuntu comes frontloaded with FireFox, so get it going! The first place to head to, before anything else (including updates) is EasyUbuntu. Follow the instructions on their download page to pull and install their marvelous tool. With it you can install many goodies. I recommend perusing it and installing all you feel is necessary. There are two items in particular that you should focus on.

Under the Archives tab you absolutely need to select Repository list to continue with the wireless NIC install.
I would hold off on installing the ATI official driver (found on the same tab) for now. Why? Well, Unreal Tournament 2004 wouldn't run with it for me, and I'm willing to bet that there are other games that won't either. We'll discuss this more below. You can always run EasyUbuntu again (if you followed their instructions to the letter you've unpacked the program into your home directory aready) later.

The most important thing to me from the jump is to


Get the wireless rolling.

We're equipped with a Broadcom, and there are a couple of ways to get it going. On my first two builds I opted for the ndiswrapper method with the Windows driver. I discovered, however, that the end result was a bit kludgy and unpredictable. I've since moved on to another method. You'll discover that your sacrificing by setting it to 11 Megabytes but honestly I've seen no discernable difference between my current config and the ndiswrapper config. Well, that's not true; it's dramatically more stable and predictable. I suggest trying whichever method you please. What follows, however, pertains to my current config.

Ok, once the Repository list (and anything else you chose) has finished installing, confirm that Ubuntu sees your wireless hardware by executing:

lspci -v

Amongst your return info should be a listing for your Broadcom wireless card. Now you must install the magical fwcutter. This is done like so:

sudo apt-get install bcm43xx-fwcutter
sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh
sudo modprobe bcm43xx


Not so bad, right? Let's get your card going. Confirm its existence with a quick:


iwconfig

Is it there? Right, good. You might notice that the light is off on your wireless indicator on the laptop itself... we're going to fix that now.

sudo ifconfig eth0 down
sudo ifconfig eth1 up
sudo iwconfig eth1 ap any
iwconfig eth1 rate 11M
sudo iwlist eth1 scan
sudi dhclient eth1


This of course assumes you're attempting to connect to an unencrypted, broadcasting network running DHCP. I may cover other configurations later but, for now, this is the ony one I'm focusing on. With luck your wireless is now not only active, but connected.

Right. Now, here's the thing; this isn't a one time deal. You've got to go through similar machinations every time you power up your pc. Or... do you?

I opted to write a little script to do the heavy lifting for me. If you like, point to it in your startup programs ("System," "Preferences," "Sessions," "Startup Programs"). I just keep it on my desktop and run that bad boy when I need it (after all, sometimes I want to use the ethernet port).
To create such a script, just right click on your desktop and choose Create Document, Empty File. Name it something obvious, then open it. Script away. Here's mine:

#!/bin/bash
interface=eth1
# Turning off other network devices
sudo ifconfig eth0 down
sudo modprobe bcm43xx
# setting wireless device parameters
sudo ifconfig $interface up
sudo iwconfig $interface ap any
sudo iwconfig #interface rate 11M
# sudo iwconfig $interface mode managed
# sudo iwconfig $interface mode auto
# sudo iwconfig $interface key off
echo "Setting up dhcp"
sudo dhclient $interface


Extra stuff and, err, comments are commented out with #. You might need them.
When you're done, save it, then right click on it and select "Properties," "Permissions." Check "Execute" for Owner, Group and Others. When you double click this script you'll have the option to run it in terminal; do so. It will likely prompt you for your sudo password; slap it in and you should be golden.

More to come...