Blow me.
- Brad
So, uh, I'd been using the kernel pcmcia drivers for my net card because pcmcia-{cs|modules} blows. But now I have to get pcmcia-cs working because I want to use my CompactFlash as a drive and want to use my new Orinoco wireless card.
But cardmgr hangs my system hard. Oh, gotta disable cardmgr from using ports 0x800-0x8ff in /etc/pcmcia/config.opts, ya know? It should fucking auto-detect that. It's in the documentation, along with 30 other work-arounds for different laptop modules... go put it in a database and detect it at run time. Windows manages. Linux should too.
Okay, cardmgr works now. Now I have to build pcmcia-modules because I'm using a custom kernel for ReiserFS and other shit. So I have to get pcmcia-source and build my pcmcia-modules using make-kpg modules_image ... not a problem. Done it before, easy enough.
Oh, but pcmcia-cs won't build modules if you have CONFIG_PCMCIA on in your kernel. Okay, undo that... guess I'll use pcmcia-cs for my wired network card also. Feh.
make-kpkg modules_image (documentation says to use -rev but Debian bitches... yay for outdated documentation)
Compile, compile... woah, it's compiling *_cs modules now! Oh, there's ide_cs.o ... bad ass. Chug chug chug... ERROR.
Turns out wvlan_*.c uses the old min()/max() macros from pre-linux-2.4.8/9 when they changed to three-argument min()/max(). But in linux-2.4.10 they changed it back because everybody got pissed off. So in the meantime (because Debian hasn't packaged 2.4.10 with its mods and the 2.4.10 patch won't apply cleanly over debian's 2.4.9) I have to use 2.4.9 ... with three argument min/max.
So then I had to modify wvlan*.cs in pcmcia-cs to add the first type argument (which is the max_t and min_t macros in 2.4.10).
Everything built now. I now have:
pcmcia-modules-2.4.9_3.1.28-2+Custom.4_i
Linus can blow me. Stupid API changes in the middle of a stable kernel series.
In retrospect, I could've used non-Debian linux-2.4.10 ... I tried it and it wouldn't build my modules_image so I figured I was screwed, but I realize now that's because I had CONFIG_PCMCIA on when I tried. GAAAR.
Hooray. Time to reboot lapwarmer. Then Starbucks?
Update: "{wvlan|ide}_cs.: Card Services release does not match!" *sigh* Die, bitch... I will fix you.... cd /usr/src/modules/pcmcia/ && debian/rules binary