Older blog entries for Dodger (starting at number 17)

8:54am CDT

Well, I've finally released it. My first ever Linux kernel driver is up at my homepage. It's a driver for the TrackIR device I've been talking about in my previous diary entries. I hate to be a beggar, but maybe some developers will look at the source and maybe give me some certs. :)

10:46am CDT

Well, my TrackIR driver is working and appears to be producing correct data. Now all I have to do is figure out how to write the non-blocking interface(not sure how the data is returned to user-space yet) and write an ioctl for sending control messages to the device. I'm really happy with everything I've learned from this project so far. If you've got a TrackIR or just want to look at the driver(hey, I wouldn't mind, I'd like to know I'm doing things right or wrong), email me at tmilker at radiks dot net. I wish there were a utility to keep up to date on Advogato entries, there's just not enough time in the day to keep up with them from the site. :(

6 Apr 2001 (updated 6 Apr 2001 at 21:14 UTC) »
4:13pm CDT

dyork: Free an IRQ for that ISA slot and then one for each pcmcia slot and it should "just work" I had the same issues when people told me the same thing. Once I freed some IRQs for the card everything was golden.

7:54am CDT

Sheesh, I just realized I've been doing all these CDT/CST times backwards for daylight savings time. Oh well, I'll start doing it correctly from here out.

Well, the TrackIR driver is progressing nicely. I think I've got firmware loading the correct way. The only thing I'm not too happy about is that I had to put a flag in the data structure for the driver to tell if the firmware has been loaded or not. I'm hoping there's a way to query the device to see if the firmware is already loaded like the usb/serial/keyspan.c driver in the kernel. Fixing this is a must, if multiple cameras are to be supported. Can't really play that until I get the device, which comes today.

7:44am CST

Wow, I can't believe it. My first kernel driver for a device and it actually worked! The USB protocol makes it almost fun to write drivers for devices(when you actually have documentation for the device). I don't have my TrackIR yet, but UPS says I'll get it on Friday. The only problem with the driver my tester found so far is that I forgot to make a check to see if the firmware was already loaded, so it would load the firmware over and over until the new device was enumerated. I sent off a fix for that at around 4:45am this morning and now I'm waiting to hear back from him. All I need to add now is the open and read functions and it should be done. I'm going to wait to write those until I have mine.

7:47am CST

Well, it's another Monday. Last night's Eco-Challenge was very interesting. It looks quite fun albeit grueling. It will be interesting to see how it turns out. Didn't do a whole lot this weekend. Got an email saying my TrackIR shipped, so I might see that later this week. I still don't quite understand how to write a character device, so I'll be looking into more of the kernel source later on today. Is it just me or did this year's April Fool's jokes just seem really lame compared to some of the stuff done last year. Slashdot had remarkably poor jokes this time around.

7:44am CDT

Wow am I ever glad it's Friday! I've been hearing a lot about the game Black and White. I hope that Peter Molyneux really does release the source like he had mentioned doing a few months ago. The AI sounds very interesting. At the very least, I hope it's released for Linux, which was also stated. Anyway, procedural textures are awesome, I love this book. The authors start from the ground up, which is nice, compared to some books/papers which assume you already know everything(making the document worthless). There's a heavy influence of RenderMan in the book, but RenderMan shaders look a lot like C snippets, and the authors explain and implent the functions the shader language uses.

29 Mar 2001 (updated 30 Mar 2001 at 02:16 UTC) »
8:07pm CDT

Enjoying the evening reading, Texturing and Modeling: A Procedural Approach.

Bantered back and forth with one of the developers at Eye Control Technology over email earlier(the people who sell the TrackIR). They're going to release some more information on their website tonight about the firmware, general questions that everyone is asking(including me). It looks fairly easy, from the kernel source I've looked at, to write a driver that loads the firmware and reconnects to the real device. I've already got one on order, I hope I get it soon so I can start hacking on a driver. It will be the first kernel driver I've really sunk my teeth into, but I feel confident about being able to do it(unlike working on the 3com HomeConnect, which completely shattered my confidence in that device, not being able to work out the format of the color images). My goal is to get the driver to a point where I can write an app that loads a mesh of a face(or possibly a Quake3 model's head) and map vertices of the mesh to reflector dots on my face.

4:34pm CDT

Pet peeve: People who feel the need to correct everyone's grammar and spelling because they couldn't spell Mississippi until high school.

2:07pm CDT

Well, it's been awhile since I last posted. I got my patch for the WaveLAN card and the z50 working perfectly. I've been working on database/php3 interface stuff lately. Most of it has been work outside of my day job, working on it at night. I'm finding it pretty easy to do most of the stuff that we want to. I wish I would have gotten into doing this sooner. The extra money won't hurt at all, either. :) I've been thinking about all these forms that I've been writing and wondering if anyone has come up with a way to describe forms in a generic way, using XML or something. It'd be nice if I could have one generic format and spit out HTML, Java, GTK, QT, whatever, interfaces for them. Then just plug-in the database backend stuff to whatever format I want. That would be cool. I may have to look into that when I have some free time(not anytime soon).

I've also renewed my interest in Ultima Online server/client emulation. Mostly, I've just been following the progress of UOX and Ultima Melange. I've been thinking about a UO client for Linux that uses SDL/OpenAL.

Another thing that I've been messing with in the last month or so is the image format of the 3Com USB HomeConnect Camera. I spent about 15 hours one weekend trying different image types with no success. I've finally given up on that, and have just decided to write a black and white(which is easily decoded from the image data) USB driver for Linux and then either let someone else figure out the format or try again, after I have the driver working. Man, what I wouldn't give to either not have to sleep, or a 40-hour day to work on all this stuff I want to work on. :)

2:28pm CDT

Lots of kernel hacking lately. NetBSD for my z50 wasn't working so well, so I decided to take out the 32MB memory module and try Linux on it again. Once I got the mipsel kernel sources from Linux VR's CVS server and began work on getting a kernel compiled. Since I had already gotten this working in the past before, it went quite easily. After I was up and running, I decided to try getting my new Lucent WaveLAN Turbo 802.11 card working in it. This proved to be more difficult than I thought. I took the wvlan_cs patch for 2.3.50 and applied it to linux-mipsel-2.4.0test1(CVS version). It applied fairly cleanly, however, it broke the pcmcia_net.o build. I'm still pretty green as far as getting around the Linux kernel and build system, so it took a lot of reading the source(thank god for ctags) and grepping to figure out what was going on. I did a lot of whining to myself about not being able to find things on the "bigger picture" of the kernel. "Use the Source, Luke", seems to be the proper phrase for learning more about the kernel. And learn I did, I understand a lot more about the way modules(compiled into the kernel or external) and the PCMCIA subsystem(which, thankfully, is documented well by David Hinds). When you first look at the kernel, it's quite a daunting piece of code, but once you dig under the surface, and have the proper tools for finding your way around it, it reveals it's secrets little by little. This afternoon at lunch, I believe I put in the last fixes to the Makefile that I needed to get the wvlan_cs driver going. Now I just need to copy the kernel over to my Compact Flash card and try booting it up on the laptop when I get home. I've also been wondering if PCMCIA Card Services exposes anything in /proc to see which ethernet cards have support in the kernel. When the pcmcia_net.o build was breaking, I was having problems not knowing if wvlan_cs was actually being linked into the kernel or not. If there was some way to see a listing of the cards that PCMCIA CS has drivers for, from /proc, that'd be helpful. Of course, now I think have it fixed and really wouldn't need that functionality, but I still wonder if it exists or not.

Survivor comes down to the final four tonight, I wonder who makes it.

12:38pm CDT

nymia: vim+ctags works very well for me. I really haven't found the need for a drawing of the class hierarchy yet.

12:18pm CDT

From my computer-less situation at DefCon experience, I've been working on getting a Unix working on my IBM WorkPad z50. There are really only two choices that I know of right now, linux-vr and NetBSD. I've been following the mailing lists for quite some time now, and I know that, at the moment, linux-vr is out of the question. CyaCE, the bootloader for the linux-vr project doesn't support the memory hole that exists between the default 16MB and the 32MB upgrade module I put in the z50. Karl T. on the mailing list has mentioned a rewrite of CyaCE, I can only hope he includes the support I need. So that leaves me with NetBSD. After countless hours of trying to figure out ways to get it installed, I finally did it. I run Linux, so I had to find a file system that was compatible between Linux and NetBSD. The only one I could find was FAT16(ick) so I ended up having to copy the NetBSD packages to my MicroDrive on a FAT partition. Then create a NetBSD filesystem on my CompactFlash card and copy the files over to it and rename them(I could have simply put them on the CF card on a FAT partition to begin with[I tried] but, unfortunately, NetBSD doesn't recognize that the packages are there, if they are not in lowercase[grr, FAT is only uppercase]). Then I started sysinst and partitioned up the MicroDrive and installed. After that, everything was working perfectly. There are still some glitches I have yet to figure out though.

Firstly, the w command segfaults on me, and I have no idea why. The passwd command isn't working either. When I boot off of the GENERIC kernel, it just hangs. After compiling my own kernel, it says it can't find a kerberos server. Having no experience with NetBSD, I don't have a clue how to fix this. Setting kerberos=YES in rc.conf doesn't seem to actually start anything. I have found that /usr/libexec/kdc seems to be what I want running, but there's no kdc.conf, so I'll have to read the man page on that. Finally, my pcmcia ethernet card doesn't work. If you think it's tough to find out if Linux has support for a device, try any *BSD some time, it's even worse. I recompiled the kernel, with, what I think is the correct support for the card, but I forgot the card at home so I won't find out until tonight. I also had to modify the source code for this driver(if_xi.c) because it wouldn't compile(NetBSD-current).

Because of all this, I haven't been working on my XML/Glade stuff lately, though I think this weekend I'll have time to further it. However, I got "The Algorithmic Beauty of Plants" and it's tempting to play with the L-systems they describe. I never though I'd be using it again, but the book(in the beginning) describes things in a LOGO like language, so I'll have to brush up on that. It's been at least 12 years since I played with LOGO on the Apple IIe.

8 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!