hacker emblem
jaegerfesting

Project

Started: 2002-06-18 23:22:38

Submitted: 2002-06-19 00:24:20

Visibility: World-readable

This week, my goal is to work full-time on my senior project. They say that one should put a hundred hours into one's project. One working week is forty hours (and leaves enough time in the evening for DVD watching and instant-messaging of Gem, although not much). If I had done nothing up to this point, I would be forty percent to my quota at the end of this week. My instinct is that I was above my quota when I started, so this means I'm well on my way to the ever-popular two hundred hour projects that are the most interesting.

When I declared myself done on Friday, I had just barely figured out how to talk to the plug-and-pray NE2000 card sitting on my ISA bus. Saturday I spent time with Gem and watched The Patriot (the recent, Mel Gibson movie with that name). We were going to teach her how to drive stick shift, but the vehicle provisionally known as Yoda was almost out of gas (so the fuel indicator revealed), so we were too afraid to try it.

Gem departed at 0800 Sunday morning and managed to successfully rendezvous with Tristan in Portland at noon and pick the photo to use in our wedding announcements from the ones Tristan took Thursday evening, shortly before he left College Place for Longview.

After double-checking that it didn't take much to get a DVD ROM drive running in Linux (although, as I found out, DVD movie playing was an entirely different story), I headed to my local College Place Wal-Mart to pick up a DVD ROM drive. (Gem took only DVD-playing computer within my grasp to her with Longview, rendering the DVDs in my possession (specifically the Netflix ones) unwatchable. My grandparents handed me money for graduation, so I decided to put it to good use. The one box on the shelf that said "DVD" also said "Linux", and I think was no more expensive than the last CD-ROM drive I purchased. (US$50. I acquired my last CD-ROM drive for Ziyal; it's now sitting in Defiant. I'm not counting my CD-RW.)

I acquired gas (which meant I needed to figure out which side of the car the gas inlet was; I should have guessed that it was a Honda (or, in general, a foreign car), so it was on the driver's side) and put only 10.1 gallons into my 11.9 gallon tank (or was that a 10.9 gallon tank? Gem found it in the vehicle's manpage, and I forgot it already), which means that I can go at least twenty miles with the gas needle below the magic red line, which is the same point where the "get gas, moron" light comes on.

I suppose I should wander past the cafeteria eventually for food, but so far I'm having success supplying food for myself from my dorm room. That is, when I don't overload my breaker, which I managed to do today running just my microwave. (Technically, I did have everything still plugged into their respective outlets, but the only things actually in the "on" position were my speakers and microwave.) The thought crossed my mind to borrow Gem's microwave, which is much smaller, since she's currently not using it. At least the breaker box is right across the hall from my room.

I keep seeing The Blue Car (as the Stone family calls the 1991 blue Toyota Camry with Washington license plate 660-GGF) around campus, currently in Tristan's care. Back when it was Gem's primary vehicle, I decided it was too much trouble to borrow Gem's key when she handed the vehicle to me (the middle of spring quarter, when I was without a vehicle), so I made a second-generation copy of her first-generation key copy. A week later, her family swapped vehicles, making my key mostly pointless. I've been tempted to move Tristan's car one parking space over, just to horribly confuse him, but so far I've been able to resist the temptation.

On Sunday, I managed to devote four hours to my project. I ended up borrowing Titiana's PCI network card because the two ISA cards I had on hand wouldn't coexist peacefully. I'm using the "NE2000 compatible plug-and-pray" card I raided from the CS lab Friday afternoon to write my code against so I can debug on Linux and not the DSP, where I have a whole host of other problems to deal with. I didn't want to plug the card I was writing code to drive straight into the school's network, and I still wanted to be able to communicate with it using Ziyal's stack without loosing my own outside world connection, so this meant that I needed three Ethernet cards: my preexisting card plugged into the wall and running my aswwc net ip, the "NE2000 compatible plug-and-pray" (which, try as I might, I couldn't convince to actually work as a plug-and-play card), controlled by my code, plugged into my hub (the noisy thing that Gem will likely relegate to some far-off corner shortly after 04 August 2002, except for the fact that it's a 10/100 hub, and hers is just a 10), and Titiana's PCI Ethernet card also plugged into the hub, albeit controlled by Ziyal's kernel. Getting it to send packets isn't terribly difficult, but getting it to send the right stuff within the packets seems like it could be a whole lot more difficult.

With that accomplished, I devoted myself to convincing DVDs to play on Ziyal. After a lot of fighting, I successfully compiled my own libxine0 and xine-ui 0.9.9 packages to get the d4d and d5d plugins to work with the right API version, although the first time I tried, my libxine0 0.9.9 package ended up depending on libxine0 0.9.10, which was the most recent Debian package, which I had installed at the time. A short (kind of) recompile later and I had a 0.9.9 package that would actually install. (Aside from a few obnoxious X crashes in the interim.) The d4d and d5d plugins worked perfectly from the perspective of playing the DVDs, but the menu navigation (available only in the d5d plugin) left a bit to be desired on the Timecode DVD (which Gem and I watched Wednesday night, but I wanted to poke around the special features), so I watched everything but the director's commentary for The Patriot and declared myself done with that DVD.

Monday morning I remembered that Ziyal seemed especially unstable the previous night when I was attempting to do processor-intensive things, like encode mp3s or compile media players. I glanced down inside Ziyal's case and saw, to my great distress, that her chip fan wasn't working. A quick survey with my voltmeter revealed that my motherboard had apparently arbitrarily declared that it no longer wished to supply the voltage my fan wanted on the appropriate pins for my fan. (Or maybe I just nudged it out of alignment when I was plugging things in and out of Ziyal, a possibility I didn't consider until just now.) I headed to the digital lab in the Chan Shun Pavilion (one of the Farrady cages on campus cleverly disguised as a building, although Sittner Hall does a better job) and re-soldered the fan supply wires to my old fan's grab-power-from-the-drives shunt.

The magic new fan supply cable worked great, providing me with a working chip fan and removing all of the random crashes I experienced the previous evening. I was able to successfully rip all of my Star Wars soundtrack cds for my mp3 listening pleasure. I counted the time I spent resolving that problem in my eight hours of senior project work for the day, since it was a critical thing I had to do to continue work. I continued to consult the RTL8019AS datasheet I printed out (in fake duplex mode, which involved printing all of the even pages first, then feeding them into the paper tray in the right way; a hack, but it worked, and halved the volume of paper the datasheet absorbed) and 8390.c and ne.c from /usr/src/linux-2.4.18/drivers/net. (Use the Source, Luke!) I realized that one of the obnoxious problems transferring data between the Ethernet card and my userspace driver was because I was using the wrong range of on-chip pages for packet buffers. Fixing the range fixed the problem and let me send frames back and forth between my code and my personal, physical lan. It was great.

I consulted Stirling and picked up the Packet Whacker he ordered. He proposed what I'll refer to as Stirling's Hypothesis: when buying a large tech toy, one must budget twice as much as the actual cost of the toy for the toy's complements. He acquired a digital camcorder and is now putting together a video-editing computer, which is approaching the cost of the camcorder. Perhaps one day we will refer to this as Stirling's Law.

Today I managed to get the DSP development tools installed on one of the Windows boxen in the digital lab. I plugged Stirling's new Packet Whacker into a breadboard and poked around. I eventually fetched my digital logic board and realized, to my great distress, that the problem I experienced with my Packet Whacker was not a bug but rather a feature: I didn't tie RESET to ground. Stupid. That launched me on a wild goose chase with the SMC Ultra card I managed to get my hands on. Had I known this two months ago, there's a chance I might have actually finished my project on time. Stupid stupid.

I wire-wrapped the Packet Whacker into the development board and successfully managed to read the command register, which was rather gratifying.

I tossed my small Ethernet driver into CVS and checked it out into my DSP development tree (I love CVS. Have I mentioned that lately?) and fought with more DSP braindamage and eventually managed to get it to compile. I gave up on it for the night (after nine hours) when the fancy integrated development environment (I ended up using gvim to edit the source files and just using the IDE to compile and link) started refusing to upload the finished binary to the DSP. I have yet to determine if that's because of more DSP braindamage that I'm not compensating for or something else.

Work continues. I'm now confident that I'll actually be able to finish it in some finite amount of time.


Log In to post a comment.


When ignorance is bliss
Won't you save me from myself?
- Jars of Clay, "Fade to Grey"