Bellevue Pro Club

This weekend I decided to take advantage of one of my fringe benefits at Microsoft for the first time: a free membership to the Pro Sports Club. This place is a little odd in that it’s basically an extension of Microsoft-land. It’s right on the outskirts of the main campus in Redmond, and given that Microsoft provides all employees a free membership, odds are you’re going to be working out with Microsofties. The fees for those who aren’t on a corporate sponsorship are purportedly sky-high, which exacerbates the situation.

Regardless of who I’d meet there, the place is amazingly large. It’s like a maze in there – I wandered around with Nick for about 15 minutes just to find where the pool was. Not that I minded wandering around a place that reminded me of a Casino without the smoke or gambling.

I eventually settled on one of the 4 pools, two of which seemed dedicated to lap swimming. I got a measly 1500 yards in:

  1. 200 warm-up
  2. 4 × 150 SKIPS (swim-kick-pull-swim)
  3. 4 × 100 SKIPS
  4. 4 × 50 I.M. drill
  5. 100 warm down

After my workout I saw the Master’s swim workout written on the whiteboard, which was exactly 4000 yards. That made me remember the time I was capable of a 2.5-hour, 8,000 yard workout. I know I’ll probably never get back to that kind of shape, but being able to do 4,000 yards again would be nice.

After the swim I went back to the locker room and enjoyed a few minutes in the steam room (the sauna was broken). If there’s anything good at getting that chlorine feeling out of your skin, sweating up a storm in a few minutes will definately do it.

With any luck, Nick and I will manage to make this trip a weekly thing on Sundays – it’s a good productive use of an afternoon, and you always have a good feeling after working out.

Network outage

After coming back from lunch today, I (along with the rest of my group) discovered that our network connection was down. No web, no email, no access to the source code repositories. One of us called the helpdesk, and said that they’re working on it and that they’ll send an email when it’s done.

That’s great – when we can read email we won’t need that notification.

Finally, at 2:30, my network connection is back. Now I can post this and go back to work.

Weekend Update

So I’ve skipped a huge swath of my life in this blog (most of moving, getting an apartment, moving in, getting furniture, etc.) but for the time being I don’t feel like taking the time to write all of those details out. So instead, you get a jump to present day, with a good summary of the last few days.

Friday night I went with Jason, Erica, and Aarthi (all coworkers – compatriates on the Netgen dev team) to see The Battle of Shaker Heights – it’s the Project Greenlight winner, produced by Matt Damon and Ben Affleck. It was actually one of my favorite movies this year, and I was actually surprised at how good it was. Film studios need to throw more money towards films like this. It wasn’t a Matrix, but it probably cost a lot less to produce than the Matrix did.

After the movie we lost Aarthi for the evening and regrouped at the Rendezvous – a local bar that’s majority owned by Jonathan, another coworker on the Netgen team. It didn’t take long to lose Erica there as well (but not until after a drink), but then we gained CJ, Walter, and a whole slew of other people. I was getting tired by then, so I headed home and ended up meeting up with Nick, his sister, and a bunch of her friends at our apartment.

Saturday evening Nick and I headed over to CJ’s house for a BBQ, where I met Ezar (a former Netgener, now working in MSN Music) and had some awesome hamburgers on a BBQ – CJ really knows how to cook. He’s also got quite an apartment.

Later that evening (around 9pm or so) were were planning on hosting our own little apartment-warming party, Mudder style. Nick and I each knew enough Mudders that we could comfortably fill the apartment, and inviting non-Mudders, we suspected, would make them feel a bit left out when the inevitable college tales were spoken. It made me sound like a bit of an ass leaving CJ’s so early telling everyone that I had another party to which they weren’t invited to, but I promised I’d invite them all another weekend.

Oddly, Greg decided that a 9pm party meant 7:30, so when we just got to CJ’s I had to explain to Greg why I wasn’t letting him in to our apartment. I invited him over the mile away at Capitol Hill, but to no avail – he left, and didn’t show up for the party at 9.

Numbers lowered, we still had Star, Kyle, Robin, Ross, and Angie over. We all had some wine and cheese (far less than I expected, however), and Nick and I got the chance to show off our apartment and city view at night. All in all, an enjoyable evening.

Today was really a day for slacking – Seattle finally cooled off by getting some cloud cover (and even a few drops of rain), so we hung out in the apartment, mainly farting around on our computers. I discovered a nice perk of our Speakeasy DSL – free Rhapsody radio streaming. It’s actually really cool – I make a radio station by listing up to 10 artists I like, and they stream high-bandwidth songs to me all I want from those artists and similar artists. It’s pretty much all stuff I like, I can skip songs if I want to, and their selection is pretty fantastic. I don’t know if I’d pay the normal $5/month for the service, but I’ll certainly use it as a bundled perk. Oh, and if you need Internet access, I highly recommend Speakeasy. They’re no-nonsense, smart, and about 4 blocks from my apartment so if things go bad we can just walk over to their office, kick butt and take names.

Dinner this evening was a fancy meal of Chicken Caccitore, steamed broccoli, and some white wine. Very yummy, and also generating lots of leftovers, so I know we’re fed for the next day or so dinner-wise.

First Code!

I just wrote my first bit of code here at Microsoft. Just a simple code cleanup, but after 3 full weeks of reading and learning about programming for Windows, I’m glad I’m finally getting to do something other than sit in a corner and read. :-)

Things are settling down both here and at home, so with any luck I’ll have reasonable (read: non-dialup) Internet access at home soon, so I can hopefully get my computer setup in such a manner than updating this blog isn’t such a PITA.

The Latest Buzz

For some reason, Nick and I have been finding a bunch of dead bees on the floor of our kitchen for the past 2 days, about 5 total so far. They appear to be crawling out from under the fridge, and barely able to fly. The one live one I’ve found so far I had crawl onto a paper towel and carried outside without it ever deciding to take
off. It was only when I finally shook the towel and the bee started to fall that he took off.

Now, as I’m sitting here minding my own business, I hear a noise from the fridge that sounds like a buzzing hive. Joy.

Moving to Seattle

It’s 8pm on Thursday evening when I started to write this, which was really the first chance I’ve had for some downtime in a long while. In a way it’s boring, but in a way it’s nice to not have anything to do. It’s a long entry, and I’m just now finishing it on Saturday. Regardless, this entry is about my move up to Seattle, so
let’s jump back in time a bit and start from the beginning:

All my stuff has been apart from me for at least a week now. The past month my mom has been wonderful in her neurotic way, ensuring I have everything I could possibly need to get started living on my own. I’ve got pots, pans, silverware, dishes, tupperware, mattress pad, sheets, blanket, etc. I’m not particularly fond of shopping, and ill-experienced at making such purchases, so I’m very happy she did what she did for me. Plus, I didn’t have to pay for it, so I really can’t complain at all.

My car left me well over a week ago, when a 2-level flatbed truck came and loaded my Pathfinder up on the truck. It’s now in the Seattle area, but I’ve yet to be reunited with it – I’m currently driving an Avis rental car. I should be getting my car back (it’s sad when an SUV has more acceleration and braking power than a 4-door sedan) tomorrow, which means I’m going to need to find where to drop off the rental car and get a cab back, because parking is hard to come by in downtown
Seattle, and I only get one spot at the apartment complex.

A few days later all my possessions, save a few clothes and my laptop, went away. 3 guys packed it all up in boxes, tagged a few to be delivered to temporary housing, and headed up to Seattle. All those items are also in Seattle now, but away from me. Apparently it will take 3-5 days to get the things I marked for delivery to temporary housing, and I won’t see the majority of my stuff until I move into a permanent apartment.

The day of the move, my friend PJ came over to visit, and we had an hour or two to chat and go out for lunch at Roberto’s, a local Mexican food shack near the beach. I don’t care what anyone else says, it’s not Mexican food when you’re this close to Canada. PJ also got me a very nice Mont Blanc business card holder, for my foray into the business world.

The trip to the airport was uneventful, but the trip inside the airport was. I got just about every extra bit of security they could muster to annoy me. I suspect it was because I was a one-way ticket, but of course they’ll never tell you why you got on the shitlist. (I suspect they don’t even know; it’s probably only the sick and twisted programmer who wrote the software that does.) In any event, I was stupid and checked one of my bags under my name (instead of under my
parents, who were also travelling and using their luggage allotment for my belongings), so the bag under my name went through a special hand-search process. Of course, the bag I checked was the 50-lb one full of various trinkets, including a duffel bag within the duffel bag, since I wanted the bags up in Seattle but didn’t fill the second one to capacity.

After the hand-search, when I got to the metal detectors, I’d already been prepared by taking off my shoes, pulling out my laptop and putting it in the grey tray separately, etc. Then the TSA guy looks at my boarding pass, and tells me I get a special security search. Everything comes out of the grey containers, and into bright red ones instead. I was told to put my shoes back on, since I’d be hand-searched anyways. Then he hands me a bright orange-red card that’s too big to possibly conceal, and as I walk through the metal detector screams “We’ve got a red tag coming through!” Even though I don’t set off the metal detector, I’m ushered off to the little row where those who do fair the metal detector wait.

From there I’m taken to a separate area. I get to take everything out of my pockets, my ID gets checked again, my shoes are taken somewhere else for a few minutes, and I get wanded by hand. Then he searches my backpack by hand. Oddly enough, rather than inspect my huge headphones in a black bag, he just asked me what was in the bag but never opened it. Finally, 5 minutes later, they’re satisfied and I get to put my shoes back on (again), repack my backpack, and head to
the gate.

At the gate, I realized that my swap from middle seat to the last remaining aisle seat at checkin wasn’t without consequences: my parents, who managed to get 2 exit row seats together on check-in, were in row 15. I was in row 14. That means, of course, that my seat wouldn’t recline. Of course, by the time I realized this the only
seats available were middle seats, and I decided that an ailse was better than not being able to recline. Once we boarded, however, my Mom asked the guy sitting next to her in the exit row to trade an aisle seat for my aisle seat, so we could sit next to each other. He obliged, likely realizing all the while that he was giving up the
extra space of the exit row, which my Mom completely forgot about.

Leaving San Diego was a bit easier than I expected. Perhaps it was the fact that it was actually raining at the time we left, and Seattle with in the upper-80’s to mid-90’s that day. We landed at 8:30 when it was still light out, but by the time we got a rental car, luggage, and over to my temporary housing it was nearing 10:00pm. Even at 10, because the windows were closed the whole day, the apartment was a mere 95 degrees or so. Moving in was not enjoyable, and we were all
very happy to take a taxi over to the W hotel for the night, which had air conditioning and something more closely resembling food than what
they served on the airplane.

The next day, our biggest chunk of errands revolved around getting me set with food for the time being. We wandered in my rental car up to Queen Anne, which has real grocery stores unlike downtown, where there simply isn’t enough affordable space. About $350 later, I now have plenty of food to last me at least a week, along with the basic spices and some other cooking essentials you generally don’t get on every trip to the store.

After grocery shopping, we waited for my new apartmentmate Nick to show up – he had to cross Lake Washington about the same time as the I-90 bridge closures that have been happening all week as the Blue Angels practice and do their show this weekend. Nick finally got here, we helped him get his stuff up into the apartment, and then called the local Mercedes dealership to have a shuttle pick us up. The shuttle driver got horribly lost, but about 45 minutes later we were finally
at the dealership, where I got to decide on my graduation present – a new 2004 C320 Sports Coupe. It’s currently on the water headed for Los Angeles, and I’ll probably have it in my possession by the end of this month. Yes, I’m horribly spoiled, and yes, I enjoy it. :-)

My parents left for the airport via taxi straight from Mercedes-Benz. They were worried about traffic, which ended up not being a problem, but it left me with an evening to myself without really knowing anyone it town. (Nick ended up at his parent’s house for dinner) I was surprised at how little my Mom, Dad, or myself cried
as we said goodbye, but there were some tears involved. It’s definately another step farther away from my parents and towards independence, but at the same time I don’t think it’s going to be all that different from Mudd as far as seeing my parents goes. It’ll be more expensive to visit, but my Dad will come to Seattle to visit customers and take me out to dinner every once in a while, and I’ll come home for most holidays and the like.

Puzzles

It’s been about 10 years since I last did a puzzle – you know, the picture that gets cut up into 500, 1000, or even 1500 pieces that you have to piece together by hand? In today’s age of ultra-realistic 3-D computer games, I get this feeling that standard puzzles are a dying breed – which is really a shame, because I’m actually having a lot of fun working on it. I think it’s also using a part of my brain that I really haven’t used much of in the past two years, since I finished core math at HMC.

And I mean a lot of fun.

This is honestly the first time I think I’ve been addicted to a game (computer or otherwise) in about 3-4 years. I’ve never been a huge video game fan (I’ve averaged about one console game/year in the past 5 years!), but there’s this odd draw to a simple puzzle, along with a profound sense of achievement when I connect a new chunk to the edge of the puzzle, which we all know you do first.

This is definately something I’m going to have to get a few of up in Seattle, for the occasional downtime on weekends and whatnot.

NetGen Retreat, Day 1

I have to wake up at 5am tomorrow to make it out of the hotel and into the Washington wilderness (where there’s no wireless, only 3 phone lines, and spotty cell phone reception!), so forgive me for the brevity of this post.

Today, Seattle was nicer than San Diego – I took off into the marine layer, and once we were above the clouds in the air, there was no turbulence and it was probably the quietest plane trips I’ve even been on. Not sure what model plane it was, but I want to ride it again. Seattle was about 75 and sunny – barely any clouds in the
sky.

This evening we had a kickoff meeting for the retreat, where those of us who are new to the team (Myself, Walter – an intern starting next week, and Jason – a full-time dev starting August 18th, along with Aarthi, who started 2 weeks ago as a dev) got a quick run-through of where we came from and where we’re planning on going, along with the coolest Flash mockup I think I’ve ever seen. You’d think it was an actual functioning product instead of a carefully scripted series of
screenshots, based on the presentation.

In that time I’ve learned that we’ve switched from being under the Windows umbrella to being under the MSN umbrella – meaning that we’re now going to integrate a lot with MSN services. I’m not entire sure what that means as far as the direction of the product (it seemed to already be going in that direction), but I’ll probably see more once I’m there full-time. I also learned that it’s apparently a common thing at MS to count how far down the ladder you are from Steve Ballmer (It was previously Bill Gates a few years back when he was the official top of the company). <sarcasm>I’m only 8 people away, including myself!</sarcasm>

Everyone was really laid back in the group, and complained a lot about the place we’re going to – which doesn’t provide towels, lacks in-room sheets, and just seems to only have the wilderness going for it. Hopefully the wilderness will be worth it, and the lack of connectivity will let us get some real work done. We’re going to be
doing a couple of small group scenarios, and eventually the trip will culminate with a trip back to Redmond, where we’ve got a 2-hour chat with a VP at Microsoft.

Anyways, it’s bedtime – more updates in a day or two. I can’t promise any super-cool Threedegrees secrets, however.

Off to Seattle to Meet the Microsofties

Tomorrow morning I’m headed up to Seattle for a 3-day retreat with the NetGen team. During that time I get to meet most of my future coworkers (and, oddly enough, my boss – who hired me sight unseen based on my coworker’s interviews with me!) and discuss what’s up next in the NetGen group. is already in beta and reaching production status, so it’s time for us to think up the Next Great Idea.

As long as Microsoft is paying for my plane ticket, hotel room, and rental car, I figured I’d do double-duty and spend some time apartement hunting. I’m still planning on getting a 2-bedroom apartment downtown with Nick Hertl, but as he’s in Europe right now I’ll be hunting on my own, and then hopefully he’ll do likewise in a week or two and we can pick a place to live then. I’m touring with an agency from 9am – 1pm on Thursday, so I’m not entirely sure where I’ll be looking, but some places I’d like to see include:

I’m not sure if I’ll be able to tell you what those Ideas are, but I’m going to make an honest effort at updating this blog more frequently, so expect another entry or three with details on the trip.

My Dorm Eats Too Much Candy

As proctor at Mudd, one of the things I supply to my dorm is candy and condoms. For most dorms, that’s about an equal split – you’ll have to check each respective bowl every week or two for refills.

My dorm is special.

I just spent the past hour scouring Target, Wal-Mart, and Vons in search of leftover Easter candy I could get for cheap, to satiate my dorm’s candy addicition. This semester alone, I think I’ve bought $200 worth of candy. That’s a lot for 75 people, especially when less than half of them actually bother to eat any of it.

And in the meantime, I haven’t needed to refill the proctor condom bowl more than once this entire semester.

Job Decision

So I decided to work for Microsoft. This comes as quite a surprise to me, for a few reasons:

  • I love San Diego, and really don’t want to live elsewhere.
  • I’m a Linux zealot. I’ve personally converted a handful of people to Debian from both Windows and other Linux distributions.

Why the change? Am I suddenly a minion of the Evil Empire? Granted, if I am selling my soul to the devil, I certainly garnered a high price. But I don’t really think I am selling out. Of all the companies I visited during interviewing (and I visited a lot), Microsoft was the one where people were the happiest.

Installing Linux with Reiserfs and Wireless on a Dell Inspiron 4000

[Editor’s note: I wrote this a long time ago, but people still stumble upon this old document via search engines and the like. I’m moving it into my blog so it’s still useful to those with old hardware. Things have probably changed at this point, so reader beware…]

I recently purchased a Dell Inspiron 4000 laptop, with the built-in wireless Ethernet for use at School, where they deployed wireless Ethernet across campus in the summer of 2001. The vital stats on the laptop:

  • Pentium III 900MHz
  • 1400×1050 SXGA+ 14.1″ Display
  • 30GB hard drive
  • Dell TrueMobile 1150 Mini-PCI wireless Ethernet controller
  • 512MB RAM
  • Dual 53 WHr batteries
  • 8X Max variable DVD drive
  • PCMCIA Modem and Ethernet controllers

The system is a dream to use, but getting it set up was, to put it nicely, a bear to accomplish. I’m documenting it here in hopes that someone else will have less pain that I did in getting everything running.

First off, if you want a nice, stable, easy-to-install system, you need only make two changes: Don’t use reiserfs and have access to a readily-supported Ethernet card. At the time of installing my system, I didn’t have my PCMCIA Ethernet card (ordered separately from Dell to save money), so all I had was the CD-ROM, floppy drive, and a wireless card that’s generally not supported in install kernels for Linux.

Note that this is all being documented after the fact, and it’s likely I’m missing a step here and there. Regardless, the hints I’ve got should cover the salient details, and if you know what you’re doing with Linux, it should be sufficient to get everything installed. If you’re a newbie, please don’t try these instructions without expecting breakage. Have a Linux Guru available to help out if things don’t go so well. If you’re stumped, you can always email me, but I can’t guarantee I’ll be able to fix your problems, much less even reply.

Battle Plan

When all is said and done, my goal was a Win2k and Debian unstable dual boot system, running reiserfs for all Linux partitions, and fully supporting the wireless Ethernet access on both systems. It should also contain a FAT32 partition, so that I could have read/write access to a common set of files between Win2k and Linux. Ideally I would also have a small rescue partition for Linux installed, which ran completely independently of the main Linux partition and could be used for system recovery.

The main complications I had in setting everything up was that I didn’t have a Debian installation CD. However, it wouldn’t have helped much, because Debian has yet to support reiserfs in the installation routines, and the kernel included in the current stable Debian distribution (2.2 – which is what would be on CD) doesn’t contain support for the wireless Ethernet controller, which makes upgrading to unstable virtually impossible, since I couldn’t even download a more recent kernel and recompile.

Install Windows 2000

As much as I hate Windows, the installation of Windows 2000 went relatively smoothly. I wiped the default Windows Millennium Edition from the computer, deleted the partition, and booted off of Win2k boot disks. After feeding it the four disks, I created a 6GB NTFS partition for Win2k to live in, and installed the operating system.

After the install, the wireless Ethernet wasn’t working, because the driver support isn’t built-in. No worries; pop in the “Drivers and Utilities” CD that the system comes with, and from the web pages you can choose to install the TrueMobile 1150 Client Manager. A reboot later wireless was working.

Installing the rest of Win2k is a rather boring process of installing various programs and security patches from Windows Update, with a million and one reboots to go along with it. I won’t detail the tedium here.

One important item to take into consideration once Win2k is up-and-running is to create a FAT32 partition for moving files back and forth between Linux and Windows. Since I didn’t expect to have network access in the beginning, it was crucial that I had this to download things in Windows and then bring them over to Linux. For reasons I’ll get into later, dedicate at least 1.5 gigs to this purpose.

Preparing for Linux

After searching around, I found a set of modified boot-floppies for Debian that support reiserfs. Download and these 3 disks, then use the favorite utility of your choice to write them to a floppy disk, and download the base2_2.tgz file to your shared FAT32 partition.

Installing the base system in this fashion gives you what is normally a system functional enough to connect to the Internet and download the rest of Debian (be it the stable, testing, or unstable distribution). However, we won’t have a working Internet connection unless we upgrade to the 2.4 series kernels, which entails upgrading the kernel and installing a more recent version of the PCMCIA card services.

To get around this, I needed a system capable of recompiling a recent kernel and PCMCIA card services, which is only available with a fair chunk of the binary CD installed. The solution: download the ISO image of the binary CD, and use a loopback file system to mount the CD during the install process and install from a local file system. This is why we made the shared FAT32 partition so big. While you’re using Windows, go ahead and download the latest Linux Kernel and the latest version of the PCMCIA Card Services.

Note that installing Debian over a network is not only slower and time-consuming than installing directly from a CD, but it also puts a strain on the download servers. If you’re going to download the ISO image as I did to use via a loop back file system or to burn, please use the Pseudo-Image Kit to download the images. It’s nicer on the servers, and works well resuming failed download attempts.

Booting the Linux Install

Go ahead and boot from the fresh copies of the reiserfs boot floppy, and follow the prompts. You should be able to get past the partitioning, reiserfs initialization, etc. without much difficulty.

The first trick comes at the main install. You’ll need to escape out to a command prompt by hitting Alt-F2 on the keyboard. Make directories for the FAT32 partition and the CD ISO image, and mount them:

# mkdir /mnt/shared# mkdir /mnt/cdiso

# mount /dev/hda2 /mnt/shared

# mount -o loop /mnt/shared/binary-i386-1.iso /mnt/cdiso

Now go ahead and switch back to the install program by pressing Alt-F1, and then continue along with the install, pointing it to a file system install rooted in /mnt/cdiso.

At this point in time, the files you’ll be installing this way are nowhere near up-to-date if you’re eventually going to be running testing or unstable. You should only install the packages you deem absolutely necessary (mainly compiler and development tools necessary for recompiling the kernel, plus perhaps a few tools like vi or emacs). Later on you’ll have to re-download more recent versions of all these tools, so don’t go installing XWindows and GNOME already.

Working With the Non-Internet Wireless System

Now you should have a somewhat-function system booting reiserfs, but still unable to get on the network. Ick. Your next step is to get the wireless up and running.

The TrueMobile 1150 Mini-PCI card is actually a re-badged product from Lucent. The best documentation about Wireless support in Linux was here, but beware that at times it’s outdated or just completely wrong. In our case, the page says the driver doesn’t support the USB or Mini-PCI versions. I’m typing in a remote window right now, and there are no wires coming out of my laptop.

That said, we’ll need to compile in support for “Hermes support (Orinoco/WavelanIEEE/PrismII/Symbol 802.11b cards)” also known as CONFIG_PCMCIA_HERMES and CONFIG_NET_RADIO into the kernel. To do this, copy mount your shared FAT32 partition if necessary, untar/gzip the kernel, and follow the normally kernel compilation instructions. Don’t forget to also install reiserfs support built-in to the kernel (not as a module, otherwise you’ll get a kernel panic mounting the root file system).

Next, install PCMCIA card services. Extract the tar.gz file from your shared partition into /usr/src, and then run the following commands:

# make config# make all

# make install

The only funny thing that happened to me in doing this was the the modules didn’t end up in the right place – I actual wireless modules compiled in the kernel end up in /lib/modules/2.4.x/kernel/drivers/net/pcmcia, when the card services want them in /lib/modules/2.4.x/pcmcia. Copy them there and it won’t hurt anything.

Next, you need to copy the file hermes.conf into your /etc/pcmcia directory. This will allow the PCMCIA card services to recognize the card (which to Linux appears to be just another PCMCIA card, in slot 2), and load the appropriate module to configure it.

Reboot With the New (Wireless) Kernel

At this point you should be able to reboot using your new kernel. Don’t forget to lilo, grub, use the boot disk, or whatever other method you decided to use to boot from the new kernel. When it starts up, you should hear two high-pitched beeps as the PCMCIA card services start up – the first notes the presence of the card, and the second notes it being successfully configured.

If you hear nothing at all, your PCMCIA card services aren’t installed correctly. Go read the PCMCIA HOW-TO and figure out where you went wrong. If you hear a high beep followed by a low beep, the card was found but not properly configured. You should look at the contents of /var/log for recent messages to see what went wrong, as well as the output of the dmesg command to see if anything obvious went wrong. If you compiled the support as a module, is it loaded?

At this point, you should be able to use ifconfig to configure the eth0 interface now, or use a dhcp client. (With the 2.2 version of Debian you should have installed at this point, dhcpcd should be the command to run, if you’ve installed that package.) Now you should have working Internet access.

Upgrading to Debian Unstable

Finally, you can install some real software! To upgrade to Debian’s unstable distribution (which is far from unstable, especially compared to Windows), simply remove the current uncommented line from /etc/apt/sources.list and add the following lines:

deb http://http.us.debian.org/debian unstable main contrib non-freedeb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free

Run apt-get update; apt-get dist-upgrade to upgrade to unstable. Go ahead and install whatever other software you’d like now.

Getting XFree86 Working

If you’re following these instructions, be absolutely sure that you have an SXGA+ display, running at 1400×1050 – this will not work for the cheaper models running at 1024×768!

When I installed XFree86, it didn’t work properly by default. The default Debian install wouldn’t even run, and when I used the new auto-configuration option built into the new XFree86 4.0 and above, it would corrupt the display, leaving the computer is a state where the best I could do was type “reboot” as root to safely shutdown and restart, and try again. Eventually I stumbled across a page (now lost, sorry) that had a German XF86Config-4 file that worked, if you like German. I didn’t so a bit of hacking got me to this file. If you want to integrate it into your own pre-existing XF86Config file, the most important line is probably “Modeline “1400×1050″ 108.000 1400 1448 1462 1688 1050 1050 1053 1066” in the Monitor section.

Note that I’ve still yet to get the display corruption on return to text mode fixed. This is okay with me, however, because I always run XWindows. Logging in and out resets the display properly, so as long as I stay in a graphics mode (or never load X if I need a text console for system repair, etc.) then I’m fine.

Getting the Mouse Working

The touchpad built-in works through gpm, the console mouse server. To run in XWindows, I have it set to repeat the commands to X. I set the type to “imps2” and the repeat_type to “raw”, and it works beautifully.

Until you suspend, that is. After resuming from a suspend-to-RAM, it doesn’t work anymore – it’s like the mouse protocol is all messed up again. To solve this, I whipped up a quick script gpm that I put in /etc/apm/event.d/, and that fixed all those problems.

That’s all!

Hopefully you should have a pretty happy setup at this point. If you’re having issues, ask your resident Linux Guru, or failing that, I’ll try to help. Enjoy wireless Linux!