想学习学习驱动的编写。我从编译开发板带的驱动开始。想通过改它的驱动达到对硬件的控制。
废话不多说。现说下我的编译步骤:
第一步,从光盘里面把内核的压缩包取出来,放到跟目录下的/mysrc下。解压
进到/mysrc/linux-2.6.24.4/include这个目录下,建立链接,ln -s asm-asm asm在进入asm目录。同样,建立链接,ln -s arch-s3c2410 arch
前期准备工作完成。
第二步,编译驱动。把内核文件夹下driver/char下的mini2410-leds.c文件cp到自己的目录。编写Makefile
- KDIR:=/mysrc/linux-2.6.24.4/
- obj-m:=mini2410-leds.o
- default:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
- clean:
- $(RM) .*.cmd *.mod.c *.o *.ko -r .tmp*
obj-m:=mini2410-leds.o 需要与.c文件同名。接下来。make
ok了。到开发板上insmod,mknod接着就好用了。
由于再制作过程中没有遇到太多问题。可能是这个确实就比较简单。所以比较顺利的就成功了。
只有最开始不知道如何编译时走了写弯路,因为我的机器是2.6的内核,开发板也是,因此需要这样编译(通过Makefile)也可能不这样也行。
好像这个和编译2.4内核时不太一样。没有实验过。以上代码都通过测试