下面以添加一個字符設備為例,說明添加設備驅動的過程.塊設備與網絡設備可以比照處理.
0.原文件放在 linux-2.4.x/driver/char/ ;本例中,名為xyz.c
1.設備驅動原文件必須包括這樣的一個函數:
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 調用它
2.修改 linux-2.4.x/driver/char/Makefile 在適當位置添加一行:
obj_$(CONFIG_XYZ) += xyz.
3.修改linux-2.4.x/driver/char/Config.in, 添加一行:
bool 'xyz hahahaha' CONFIG_XYZ
便于在 make menuconfig 時選擇
4.修改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
5. 修改vendor/Samsung/4510b/Makefile ,建立設備節點;
在12---35行間,DEVICE 部分添加 如下內容
xzy,c,254,0
6.make menuconfig 選中 xyz hahahaha,
編譯,下載;啟動后你會看到 /proc/devices 中字符設備多了一項 xyz 254
////過程其實簡單,我寫過一個很簡單的,在red hat 80下可以正常編譯,起動,使用;在uclinux下就是不能正常引導;浪費了幾天青春,后來才發現,我的源文件里包含了一些有害的宏. 去掉后一切正常..
uclinux添加設備驅動的完整過程
更新時間: 2007-06-08 11:18:12來源: 粵嵌教育瀏覽量:877