For about a week now, I've had a problem. Linux just wasn't cutting it for two of my devices; "my" 802.11b card (which I conveniently stole from Krause) and my Canon Digital IXUS 400. Both hardware's I knew were in working condition, and both were discovered and utilized through some manner of hotplug system, but both simply did not work. It was a major headache; in part because I knew that both of them had been working and I was happy in my "linux is great" little world.
Enter Reiser4FS and my 2.6.4 kernel. I got everything up pretty well in Reiser4, considering that I had not strayed in that way during an install before, but the damned 802.11b card just wouldn't work. To make matters worse, the new file system meant I could not figure out what was wrong by inspecting slackware's stock kernel. I kept getting an error: "Uhhuh, NMI error. Dazed and Confused." It mentioned something might be bad with one of my RAM chips, but that was so ridiculous that I didn't even bother dignifying it with thought.
For a few days I tried to trouble shoot this problem, but unfortunately did not have a wireless connection where I live to test it on. We got some wireless yesterday, so last night (and for me still "today") I decided to finally tackle this problem and get it solved. My first thought was to recompile and make sure that everything was indeed kosher. This failed; and thanks to the fact that it takes about 30 minutes for me to compile Linux 2.6.4, it was time consuming. I next tried to compile the modules into the kernel, which also failed.
Undeterred (and convinced that it was not a Reiser4FS patch bug), I decided to download Linux-2.6.3 and Linux-2.6.2. I compiled them in parallel, and an hour later I had one working kernel (the patch failed to compile for 2.6.2). A quick reboot, and I still got the same bogus error. I decided to download the package for the alpha version of the Linux Orinoco drivers, but that seemed to not compile correctly; Orinoco_cs was complaining about the "CardServices" function.
Undeterred, I scanned the developers mailing list and found that the PCMCIA API had changed in Linux 2.6 and now all functions which used to be CardServices(YourFirstArg, ..) were now pcmcia_your_first_arg(..). This took about an hour of research, and it took me 30 minutes to hand-modify the code to a state where it compiled cleanly. I loaded in the drivers, and sure enough they failed.
While reading the README.orinoco file that came with the drivers, I did not find anything in reference to any NMI errors or any other errors that I was getting, but I did find an interesting tidbit; there was an error that people were getting that resulted from an error in a configuration file; OR, it would happen when you did not have ISA support. That rung a particular note, because I usually disable ISA support (I have no ISA devices), and I had not known that PCMCIA is apparently derivative of ISA. I recompiled the kernel and put back the same stock drivers, and voila, after 7 hours, it worked!
The alpha drivers had some features that I wanted to try, specifically the functionality that let me scan for networks, ad-hoc mode and promiscuous mode, so I decided to compile them again and install them; they work like a charm, and I'm currently typing this update outside.
Most people with 4 year old laptops can't really use them outside, but apparently I'm special. I was blessed with a battery that was no longer wanted, but apparently worked quite well. And it better last long, when your screen brightness is set to "barely" and your processor speed drops from 650 MHz to 263.
As for the IXUS 400, I still haven't figured out a driver solution that will actually fix that problem. One of the problems is that I'm dealing with a group developing 3 products simultaneously; a second is that there are over 100 drivers currently in development and maintainence, and finally, with the help of Jerumu's compact flash card reader, I figured out that it was neither my cards nor my camera (which I was not so sure about), and am much more relieved. I plan on downloading the old versions of the software (the ones that worked properly) and using them until the next release.
Linux has become fun for me again (somehow), and I'm glad to say that since "my" wireless card now works I don't need windows for anything anymore (until my next piece of hardware breaks). My PC is 3 years old and is perfectly fine; my laptop is 4 years old and compiling the kernel is starting to get annoying; but with 3 hard drive upgrades (10 -> 14 -> 20 GB) and a brand new screen and battery (at 0 cost), I must say that I'm pretty pleased with the way I've made out on it. In the spirit of johnny, I've decided to become somewhat adventurous again in the Linux arena, and try out technologies which might break my computer.
I dropped down to just the "a" set of slackware packages the other day and rebuilt my desktop from scratch in an attempt to fix what I believed to be a library issue (which turned out to be shitty programming). I tried out Keith Packard's very interesting "xserver", and also compiled a new although similar window manager. Openbox3 is a very nice window manager that somewhat breaks away from the other *box WM's, but its missing a slit and, although my initial reactions about blackbox were similar (how the hell can you do anything without a start bar and icons?!), I don't think I can live without the slit telling me what iconified windows I have and what time it is.
Besides wasting 3 hours in a car yesterday and taking an online test, I also have two essays for gym to look forward to, and an essay for Macroeconomics which I am going to purchase the book for today. My week, which is actually another hell week, is composed thusly: Monday : "breather", Tuesday : macro paper (20% of grade) due. Wednesday: gym paper [2] due. Thursday: 2 Jan Schaumann projects due. Friday : breather. There might be a senior design presentation in there somewhere, but I think that might be next tuesday. Either way, I can't work on it during the week, and I can't work on it during the weekend, so I guess we're just screwed. Looks like I'll be going underground again for a week, and I guess pacman and this site will once again suffer.
Other than suffering, I'm doing pretty good. It's one of the best times of the year; spring is in the air, and the flowers are blooming. If you're interested in the modified orinoco-0.14alpha2.tar.gz that will actually compile without any "CardServices" functions or undefined symbols, you know where you can get it.