Ok, I'm stumped.

I wrote a kernel module a while ago. When I load it using insmod the driver's init gets called and everything is fine. Tonight I installed it in the modules directory so that modprobe could do it on start. When modprobe loads the module it gets loaded, but the driver init does not get called.

Help?!?!?!

#linux #linuxkernel

Turns out that I am an idiot.

strace revealed that i somehow named my driver identical to an existing driver. insmod was, of course, loading the driver file i explicitly pointed at. modprobe traversed the installed modules and found the pre-existing named driver first and loaded it.
So, a quick driver rename later and modprobe loads the 'correct' driver.
What the odds must have been for me to pick a name that already existed...

#linux #linuxkernel