下面以添加一个字符设备为例,说明添加设备驱动的过程.块设备和网络设备能够比照处理. 1.原文档放在 linux-2.4.x/driver/char/ ;本例中,名为xyz.c 2.设备驱动原文档必须包括这样的一个函数: void xyz_init(void){register(254, 'xyz', &xyz_fops)} 这个函数完成注册.在linux-2.4.x/driver/mem.c 将会调用他. 这个函数也能够写成: void __init xyz_init(void){register(254, 'xyz', &xyz_fops)} 这样不必须在 linux-2.4.x/driver/mem.c 调用他 3.修改 linux-2.4.x/driver/char/Makefile 在适当位置添加一行: obj_$(CONFIG_XYZ) += xyz.o 4.修改linux-2.4.x/driver/char/Config.in, 添加一行: bool 'xyz hahahaha' CONFIG_XYZ 便于在 make menuconfig 时选择 5.修改linux-2.4.x/driver/char/mem.c 在适当位置(您去找就会发现,在文档头部)添加: #ifdef CONFIG_XYZ extern void xyz_init(void); #endif 在chr_dev_init()函数添加: #ifdef CONFIG_XYZ xyz_init(); #endif 6. 修改vendor/Samsung/4510b/Makefile ,建立设备节点; 在12---35行间,DEVICE 部分添加 如下内容 xzy,c,254,0 7.make menuconfig 选中 xyz hahahaha, 编译,下载;启动后您会看到 /proc/devices 中字符设备多了一项 xyz 254
在uclinux添加设备驱动的完整过程
最新推荐文章于 2021-05-13 19:13:44 发布