mkdir /opt/EmbedSky/modules
cd modules
mkdir hello
cd hello
vim hello.c
hello 驱动代码如下:
/********************
hello.c qudongduopin:2012.4.22
********************/
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
static int hello_init(void)
{
//use printk ,not printf --k is kernel
printk(KERN_ALERT "Hello, world!!\nthis is my hello world!!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, my hello next go --haha\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);
/
vi Makefile // notice :一定要是M大写
KERNELDIR=/opt/EmbedSky/linux-2.6.30.4 ####point kernel tree
PWD:=$(shell pwd)
INSTALLDIR=$(PWD)
CC=arm-linux-gcc
obj-m := hello.o # the same to hello.c name
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules # use tab
clean:
rm -rf *.o *.ko *.mod.c *.markers *.order *.symvers # use tab
.PHONY:modules clean
///
生成.ko
make
//
cp hello.ko /opt/EmbedSky/nfs_root/lib/
//boot system 8
cd /lib/
insmod hello.ko
rmmod hello //.ko
cat /proc/devices
ls /dev/
ps:
要写和硬件的驱动,可能还是加上头文件 eg:tq2440_adc.h