LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1221|回复: 4

[求助]linux驱动 编译不过去

[复制链接]
发表于 2007-4-10 10:49:23 | 显示全部楼层 |阅读模式
原程序是#ifndef __KERNEL__
#  define __KERNEL__
#endif         
#ifndef  MODULE
#  define MODULE
#endif     
#define DEVICE_NAME  "simple_dev"
#define OPENSPK 1
#define CLOSESPK 2
MODULE_LICENSE("GPL")
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/sched.h>
#include<linux/fs.h>
#include<asm/uaccess.h>
#include<asm/io.h>
int my_major=0;
static int Device_Open=0;
static char Message[]="hello world";
char *Message_Ptr;


。。。。。。。。。。。。。
int dev_init(void)
{  int  result;
   result=register_chrdev(my_major,DEVICE_NAME,&simple_file);
   if(result<0)  return result;
   if(  my_major == 0)
         my_major=result;
   printk("\nRegister OK.major_number=%d\n",result);
   return 0;
}
void dev_exit(void)
{   printk("\nunload\n");
    unregister_chrdev(my_major,DEVICE_NAME);
}
module_init(dev_init);
module_exit(dev_exit);

编译时出现很多错误:
include/linux/sched.h:1091: 错误:声明的参数 ‘release_task’ 不存在

include/linux/sched.h:1090: 错误:声明的参数 ‘unblock_all_signals’ 不存在

include/linux/sched.h:1089: 错误:声明的参数 ‘block_all_signals’ 不存在

include/linux/sched.h:1074: 错误:声明的参数 ‘dequeue_signal’ 不存在

include/linux/sched.h:1073: 错误:声明的参数 ‘flush_signal_handlers’ 不存在

include/linux/sched.h:1072: 错误:声明的参数 ‘flush_signals’ 不存在

include/linux/sched.h:1071: 错误:声明的参数 ‘proc_caches_init’ 不存在

include/linux/sched.h:1069: 错误:声明的参数 ‘in_egroup_p’ 不存在

include/linux/sched.h:1068: 错误:声明的参数 ‘in_group_p’ 不存在

include/linux/sched.h:1058: 错误:声明的参数 ‘wake_up_new_task’ 不存在

include/linux/sched.h:1057: 错误:声明的参数 ‘wake_up_process’ 不存在

include/linux/sched.h:1056: 错误:声明的参数 ‘wake_up_state’ 不存在

include/linux/sched.h:1054: 错误:声明的参数 ‘do_timer’ 不存在

include/linux/sched.h:1050: 错误:声明的参数 ‘switch_uid’ 不存在

include/linux/sched.h:1049: 错误:声明的参数 ‘free_uid’ 不存在

include/linux/sched.h:1043: 错误:声明的参数 ‘alloc_uid’ 不存在

include/linux/sched.h:1038: 错误:声明的参数 ‘find_task_by_pid_type’ 不存在

include/linux/sched.h:1035: 错误:声明的参数 ‘init_mm’ 不存在

include/linux/sched.h:1033: 错误:声明的参数 ‘init_task’ 不存在

include/linux/sched.h:1032: 错误:声明的参数 ‘init_thread_union’ 不存在

include/linux/sched.h:1015: 错误:形参 ‘default_exec_domain’ 的类型不完全

include/linux/sched.h:1015: 错误:声明的参数 ‘default_exec_domain’ 不存在

include/linux/sched.h:1010: 错误:声明的参数 ‘yield’ 不存在

include/linux/sched.h:1008: 错误:声明的参数 ‘set_curr_task’ 不存在

include/linux/sched.h:1005: 错误:声明的参数 ‘sched_setscheduler’ 不存在

include/linux/sched.h:1004: 错误:声明的参数 ‘idle_cpu’ 不存在

include/linux/sched.h:998: 错误:声明的参数 ‘sched_idle_next’ 不存在

include/linux/sched.h:982: 错误:声明的参数 ‘sched_clock’ 不存在

include/linux/sched.h:911: 错误:声明的参数 ‘__put_task_struct_cb’ 不存在

include/linux/sched.h:908: 错误:声明的参数 ‘free_task’ 不存在

include/linux/sched.h:687: 错误:声明的参数 ‘groups_search’ 不存在

include/linux/sched.h:686: 错误:声明的参数 ‘set_current_groups’ 不存在

include/linux/sched.h:685: 错误:声明的参数 ‘groups_free’ 不存在

include/linux/sched.h:684: 错误:声明的参数 ‘groups_alloc’ 不存在

include/linux/sched.h:656: 错误:声明的参数 ‘exit_io_context’ 不存在

include/linux/sched.h:533: 错误:形参 ‘prio_array_t’ 的类型不完全

include/linux/sched.h:533: 错误:声明的参数 ‘prio_array_t’ 不存在

include/linux/sched.h:530: 错误:声明的参数 ‘root_user不存在

include/linux/sched.h:528: 错误:声明的参数 ‘find_user’ 不存在

include/linux/sched.h:369: 错误:声明的参数 ‘sighand_free_cb’ 不存在

include/linux/sched.h:283: 错误:声明的参数 ‘mm_counter_t’ 不存在

include/linux/sched.h:259: 错误:声明的参数 ‘arch_unmap_area_topdown’ 不存在

include/linux/sched.h:258: 错误:声明的参数 ‘arch_unmap_area’ 不存在

include/linux/sched.h:257: 错误:声明的参数 ‘arch_get_unmapped_area_topdown’ 不 存在

include/linux/sched.h:253: 错误:声明的参数 ‘arch_get_unmapped_exec_area’ 不存在
include/linux/sched.h:249: 错误:声明的参数 ‘arch_get_unmapped_area’ 不存在

include/linux/aio.h:248: 错误:声明的参数 ‘aio_max_nr’ 不存在

include/linux/aio.h:247: 错误:声明的参数 ‘aio_nr’ 不存在

include/linux/aio.h:212: 错误:声明的参数 ‘io_submit_one’ 不存在

include/linux/aio.h:211: 错误:声明的参数 ‘lookup_ioctx’ 不存在

include/linux/aio.h:207: 错误:声明的参数 ‘io_submit_one’ 不存在
....................
请问这是怎么回事?
谢谢!
发表于 2007-4-10 10:51:53 | 显示全部楼层
楼主,我不知道怎么编译,你能教我一下怎么编译吗?
我的信箱:songduanlei@gmail.com
谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-10 10:53:18 | 显示全部楼层
还有很多错误:
include/linux/workqueue.h:65: 错误:声明的参数 ‘schedule_delayed_work’ 不存在

include/linux/workqueue.h:64: 错误:声明的参数 ‘schedule_work’ 不存在

include/linux/workqueue.h:62: 错误:声明的参数 ‘flush_workqueue’ 不存在

include/linux/workqueue.h:61: 错误:声明的参数 ‘queue_delayed_work’ 不存在

include/linux/workqueue.h:60: 错误:声明的参数 ‘queue_work’ 不存在

include/linux/workqueue.h:58: 错误:声明的参数 ‘destroy_workqueue’ 不存在

include/linux/workqueue.h:54: 错误:声明的参数 ‘__create_workqueue’ 不存在

include/linux/sched.h:243: 错误:声明的参数 ‘sysctl_max_map_count’ 不存在

include/linux/sched.h:235: 错误:声明的参数 ‘schedule_timeout_uninterruptible’ 不存在

include/linux/sched.h:234: 错误:声明的参数 ‘schedule_timeout_interruptible’ 不 存在

include/linux/sched.h:233: 错误:声明的参数 ‘schedule_timeout’ 不存在

include/linux/sched.h:230: 错误:声明的参数 ‘in_sched_functions’ 不存在

include/linux/sched.h:213: 错误:声明的参数 ‘touch_softlockup_watchdog’ 不存在

include/linux/sched.h:212: 错误:声明的参数 ‘spawn_softlockup_task’ 不存在

include/linux/sched.h:211: 错误:声明的参数 ‘softlockup_tick’ 不存在

include/linux/sched.h:208: 错误:声明的参数 ‘scheduler_tick’ 不存在

include/linux/sched.h:207: 错误:声明的参数 ‘update_process_times’ 不存在

include/linux/sched.h:206: 错误:声明的参数 ‘trap_init’ 不存在
这是怎么回事呀?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-10 10:58:51 | 显示全部楼层
编译写个makefile文件就行了。
obj-m=simple_dev.o
在在命令行写入命令:make -C  ~/kernel-2.6 M=‘pwd'  modules就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-10 10:59:31 | 显示全部楼层
我的问题?
大家帮帮我呀!很急呀!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表