然后make就可以了,写驱动程序的时候,如果定义一个没有形参的函数,括号里一定要写上void,否则会有一个警告,虽然没什么大碍,不过有警告很不爽,看来养成良好的变成习惯也很重要,make之后会生成一个can_bus.ko,下面的就简单了
1、安装模块insmod can_bus.ko
如果要想看到输出信息,可以用cat /var/log/messages或者切换到文本界面,直接就能在控制台看到输出:can_bus major num = 249,这是我这里显示的,就是说生成的主设备号是249,用lsmod可以查看模块是否加载了
2、创建设备文件
mknod /dev/can_bus c 249 0,上面提到的249就用到了,我一直在想,当我使用open打开can_bus设备的时候,怎么跟我的驱动关联起来,这个249就是关键了,刚开始的时候,我就随便写了个主设备号,结果怎么也打不开设备。
3、测试
如果成功打开就能看到控制台open can bus的输出,这时,一个完整的驱动就差不多了。要卸载模块,使用rmmod can_bus即可。
4、开机自动加载
差不多就是还差一点,驱动不可能每次都要手动去加载,我想让驱动开机的时候自动加载,这就要修改rc.local文件,输入vim /etc/init.d/rc.local,在文件的最后两行添上
insmod /can/can_bus.ko
mknod /dev/can_bus c 249 0
我的can_bus.ko是放在/can目录下的,读者可自行修改,这下就完整了,重启电脑,在做下上面的测试,OK了,不用手动去加载了,大功告成。