Tiny6410 我的第一个嵌入式Linux驱动程序模块


研究了好久模块驱动的安装方法,今天终于做出来东西了,纪念一下!

第一步:编译配置linux-2.6.36/drivers/char/Kconfig文件。

比如我要配置一个模块

config guozhiyuan
        tristate "guozhiyuan sample"
        depends on CPU_S3C6410
        help
          guozhiyuan sample.

第二步:在linux-2.6.36下运行make menuconfig  选择Device Drivers -->Character devices 选择要编译的对象,变成<M>。

第三步:编译linux-2.6.36/drivers/char/Makefile 文件

加入obj-$(CONFIG_guozhiyuan)     += guozhiyuan.o

第四步:回到linux-2.6.36下执行make modules ,就可以生成

   LD [M]  drivers/char/guozhiyuan.ko

前提是要执行过make zImage一次,只需一次就可以了。

至此,就完成了模块驱动的编译了

接着我们要把编译好的guozhiyuan.ko用ftp命令下载到开发板上使用,并移动到/lib/modules/2.6.36-FriendlyARM,

在运行modprobe guozhiyuan (注意使用modprobe命令加载模块不需要加“ko”后缀) 会出现如下错误:

modprobe: module 'guozhiyuan.ko' not found 

这是要把模块文件放到/lib/modules/2.6.38-FriendlyARM/kernel 目录下;

运行 depmod

再 回到/lib/modules/2.6.38-FriendlyARM  目录下执行modprobe guozhiyuan 就好了

最终会显示:

[root@FriendlyARM 2.6.38-FriendlyARM]# modprobe guozhiyuan
Hello, welecome guozhiyuan !
[root@FriendlyARM 2.6.38-FriendlyARM]# rmmod guozhiyuan
Good-bye, guozhiyuan was removed!
[root@FriendlyARM 2.6.38-FriendlyARM]#

相关内容