- 论坛徽章:
- 0
|
1.在/usr/src/linux2.4.26-vsrl-hzh/drivers/char 目录下编写源程序 globalvar.c 。其中源文件中包涵这样一个函数:
Int globalvar_init(void)
{ 。。。。。。。。。。。。。
Register_chrdev(MAJOR_NR,DEVICE_NAME,&globalvar_fops)//对驱动程序进行注册
。。。。。。。。。。。。。
}
2.修改/usr/src/linux2.4.26-vsrl-hzh/drivers/char/Makefile 在适当的位置添加一行:
obj_$(CONFIG_GLOBALVAR) += globalvar.o
3.修改 /usr/src/linux2.4.26-vsrl-hzh/drivers/char/Config.in, 在适当的位置添加一行:
bool ‘globalvar devices’ CONFIG_GLOBALVAR //在make menuconfig 时可以进行配置。
4.修改 GLOBALVAR/mem.c 在适当的位置添加:
#ifdef CONFIG_GLOBALVAR
extern int globalvar_init(void);
#endif
在chr_dev_init()函数中添加:
#ifdef CONFIG_GLOBALVAR
globalvar_init();//在内核启动的时候对GPIO驱动程序进行注册
#endif
5.在make menuconfig 中选中 globalvar device,进行编译,编译内核过程中出错!
错误如下:
vers/input/inputdrv.o drivers/at91/at91drv.o \
net/network.o \
arch/arm/nwfpe/math-emu.o arch/arm/lib/lib.a /usr/src/linux-2.4.26-vrs1-hzh/lib/lib.a \
--end-group \
-o vmlinux
drivers/char/char.o: In function `chr_dev_init':
drivers/char/char.o(.text.init+0xb4): undefined reference to `globalvar_init'
make: *** [vmlinux] Error 1
[root@localhost linux-2.4.26-vrs1-hzh]#
请高手指点,非常感谢!我的内核是linux-2.4.26-vrs1-hzh,是移植到ARM上的内核。。。。
谢谢,呵呵 |
|