| 
 | 
 
第一次学写驱动,试着按照 linuxdevicedriver3 里说的写的一个驱动 
 
#include<linux/module.h> 
#include<linux/kernel.h> 
#include<linux/version.h> 
#include<linux/types.h> 
#include<linux/fs.h> 
#include<linux/mm.h> 
#include<linux/error.h> 
#include<linux/config.h> 
#include<asm/segment.h> 
unsigned int test_major = 0; 
static int read_test(struct inode *inode,struct file *file,char *buf,int count){ 
int left; 
if (verify_area(VERIFY_WRITE,buf,count) == -EFAULT) 
return -EFAULT; 
for (left = count; left > 0 ; left--){ 
__put_user(1,buf,1); 
buf++; 
} 
return count; 
} 
 
static int write_test(struct inode *inode,struct file *file,const char *buf, int count){ 
return count; 
} 
 
static void release_test(struct inode *inode,struct file *file,){ 
MOD_DEC_USE_COUNT; 
} 
 
struct file_operations test_fops = { 
NULL, 
read_test, 
write_test, 
NULL, 
NULL, 
NULL, 
NULL, 
open_test, 
release_test, 
NULL, 
}; 
 
int init_module(void){ 
int result; 
result = regster_chrdev(0,"test",&test_fops); 
if(result < 0){ 
printk(KERN_INFO "test:can't get major number!\n"); 
return result; 
} 
if(test_major == 0)test_major = result; 
return 0; 
} 
 
void cleanup_module(void){ 
unregister_chrdev(test_major,"test"); 
} 
 
一般设备驱动写这样一个.c文件就可以了吗?(本人实在不太懂,都没有说这样些一个完整驱动的例子),???? 
然后就执行: 
gcc -O2 -DMODULE -D__KENEL__ -c test.c 
 
出错: 
linux/module.h:No such file or director 
linux/mm.h:No such file or directory 
linux/error.h:No such file or directory 
linux/config.h:No such file or directory 
asm/segment.h:No such file or directory 
 
为什么会这样?是gcc找不到lib文件?我有装 linux-headers- |   
 
 
 
 |