3 Answers
3

If the device shows up in /proc/devices, and you're sure you've got the number right in mknod, then the driver itself is refusing the open. The driver can return any error code from open() - including "no such device", which it might if it discovered a problem initialising the hardware.

Added the lsmod info above - I think that I wouldn't have gotten that major number from /proc/devices if it did not load. I'm using the .ko extension because i'm loading the module in place where I built it - it's not in one of the standard places where modules are loaded from.
–
Paul IvanovApr 23 '09 at 19:11

.ko is the extension generally used by Linux drivers since 2.4 - older kernels used .o but this caused confusion with other object files which weren't kernel objects.
–
MarkRApr 23 '09 at 20:08

Well, I last wrote a kernel module in 1993, so what do I know?
–
Paul TomblinApr 23 '09 at 20:28