参考《linux设备驱动程序》第三版,写一个简单的hello.c文件,然后放到linux源码目录下
的/drivers/char/目录下,并修改该目录下的Makefile文件,在适当的位置添加一项:
目录下,会生成hell0.ko文件,这就是模块文件,把该文件copy到SD卡中。在real6410开发板中的
/mnt/目录下,找到sd卡的挂载文件sdcard,然后找到hello.ko文件,直接用命令 insmod
hello.ko,即可在看到终端上显示的打印消息,手动加载起来后可以使用命令lsmod查看当前挂在起
这种编译成模块的方法有点投机取巧的感觉,接下来要在drivers/目录下自己建一个文件夹,并自
己写Makefile来编译添加驱动,这样能更好的理解系统的编译的流程。
的/drivers/char/目录下,并修改该目录下的Makefile文件,在适当的位置添加一项:
“obj-m += hello.o”保存即可。
目录下,会生成hell0.ko文件,这就是模块文件,把该文件copy到SD卡中。在real6410开发板中的
/mnt/目录下,找到sd卡的挂载文件sdcard,然后找到hello.ko文件,直接用命令 insmod
hello.ko,即可在看到终端上显示的打印消息,手动加载起来后可以使用命令lsmod查看当前挂在起
来的模块,最后使用rmmod hello(没有.ko)即可卸载模块。
# insmod hello.ko //加载hello.ko模块
# lsmod //查看当前加载模块
# rmmod hello //卸载模块,没有.ko
在编译模块时,可能会遇到“*****没有规则可以创建目标“....”****”的错误,只要先执行一
下make distclean,然后再上面的方法编译模块就好了。这种编译成模块的方法有点投机取巧的感觉,接下来要在drivers/目录下自己建一个文件夹,并自
己写Makefile来编译添加驱动,这样能更好的理解系统的编译的流程。