说来惭愧,给上海一家小公司提供一个摄像头sensor的驱动,他们回信说驱动做的太粗糙。。。⊙﹏⊙b汗,主要是由于模块太简单,我就把它注册成一个简单的字符设备,insmod之后用mknod在/dev下建立设备文件。现在要求insmod之后直接就在/dev下生成设备结点。
看来是要用udev机制了。于是将原来的驱动稍作改动,也就是新建立一个设备类,然后把这个类设备注册到内核就可以了。用到两个函数
第一个函数创建一个设备类,第二个函数将该设备类的一个设备注册到内核。果然加载驱动后就自动在/dev下生成设备结点了。
翻了一下Ldd3,上面讲class_simple接口现在用不了,主要是随着内核的升级,这些class_函数的名称在一直变。我用的2.6.18的内核是class_create,不晓得后面的内核又变成了什么样子。又看到说各个子系统,比如tty, misc,input等会自动进行创建设备文件,于是想把sensor注册为平台设备+misc。这样就不用显式的去调用class_类函数了。设备加载过程没有问题,但是在rmmod的时候出现了问题
3>Device 's