免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5153 | 回复: 10
打印 上一主题 下一主题

[驱动] 关于LDD3第三章字符驱动编译时出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-28 20:31 |只看该作者 |倒序浏览
[root@localhost scull]# make
make -C /lib/modules/2.6.23.17/build/include/linux/ M=/test/LDD/PC/scull LDDINC=/test/LDD/PC/scull/../include modules
make[1]: Entering directory `/usr/src/linux-2.6.23.17/include/linux'
make[1]: *** 没有规则可以创建目标“modules”。 停止。
make[1]: Leaving directory `/usr/src/linux-2.6.23.17/include/linux'
make: *** [modules] 错误 2
[root@localhost scull]#
这个是编译出错的信息,我自己建的内核源码树应该是没有问题的。我在编译hello,world!就可以正常的。
那个有遇到过这样的问题啊,请高手们帮忙看一下啊。。我想了很久就是解决不了!
所以才到这里提问的。。

论坛徽章:
0
2 [报告]
发表于 2011-08-29 11:22 |只看该作者
*** 没有规则可以创建目标“modules”。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
3 [报告]
发表于 2011-08-29 17:03 |只看该作者
kernel路径没设置对吧?看看你的kernel路径下的Makefile里有modules: 没有

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2011-08-29 17:04 |只看该作者
试试
KERNEL_DIR := /usr/src/linux-2.6.23.17/

论坛徽章:
0
5 [报告]
发表于 2011-08-29 20:27 |只看该作者
KERNEL_DIR := /usr/src/linux-2.6.23.17/
这个我试了。又有新的问题出来了。
[root@localhost scull]# make
make -C /usr/src/linux-2.6.23.17/ M=/test/LDD/PC/scull LDDINC=/test/LDD/PC/scull/../include modules
make[1]: Entering directory `/usr/src/linux-2.6.23.17'
  CC [M]  /test/LDD/PC/scull/main.o
/test/LDD/PC/scull/main.c:17:26: 错误:linux/config.h:没有那个文件或目录
make[2]: *** [/test/LDD/PC/scull/main.o] 错误 1
make[1]: *** [_module_/test/LDD/PC/scull] 错误 2
make[1]: Leaving directory `/usr/src/linux-2.6.23.17'
make: *** [modules] 错误 2
[root@localhost scull]#
这个问题我好像在网上看到过。
!!!!!!!!!!!!!!版主帮我看一下!!!!!!!
我自己也查一下问题在那里啊。。。。

论坛徽章:
0
6 [报告]
发表于 2011-08-29 21:03 |只看该作者
我把linux/config.h注解掉结果有出问题了。。。。。。。。。
[root@localhost scull]# make
make -C /usr/src/linux-2.6.23.17/ M=/test/LDD/PC/scull LDDINC=/test/LDD/PC/scull/../include modules
make[1]: Entering directory `/usr/src/linux-2.6.23.17'
  CC [M]  /test/LDD/PC/scull/main.o
  CC [M]  /test/LDD/PC/scull/pipe.o
  CC [M]  /test/LDD/PC/scull/access.o
/test/LDD/PC/scull/access.c: 在函数 ‘scull_u_open’ 中:
/test/LDD/PC/scull/access.c:106: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c:107: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c:114: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c: 在函数 ‘scull_w_available’ 中:
/test/LDD/PC/scull/access.c:165: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c:166: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c: 在函数 ‘scull_w_open’ 中:
/test/LDD/PC/scull/access.c:179: 错误:‘TASK_INTERRUPTIBLE’ 未声明 (在此函数内第一次使用)
/test/LDD/PC/scull/access.c:179: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
/test/LDD/PC/scull/access.c:179: 错误:所在的函数内只报告一次。)
/test/LDD/PC/scull/access.c:179: 错误:隐式声明函数 ‘signal_pending’
/test/LDD/PC/scull/access.c:179: 错误:隐式声明函数 ‘schedule’
/test/LDD/PC/scull/access.c:184: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c: 在函数 ‘scull_w_release’ 中:
/test/LDD/PC/scull/access.c:205: 错误:‘TASK_INTERRUPTIBLE’ 未声明 (在此函数内第一次使用)
/test/LDD/PC/scull/access.c: 在函数 ‘scull_c_open’ 中:
/test/LDD/PC/scull/access.c:277: 错误:提领指向不完全类型的指针
/test/LDD/PC/scull/access.c:281: 错误:提领指向不完全类型的指针
make[2]: *** [/test/LDD/PC/scull/access.o] 错误 1
make[1]: *** [_module_/test/LDD/PC/scull] 错误 2
make[1]: Leaving directory `/usr/src/linux-2.6.23.17'
make: *** [modules] 错误 2
[root@localhost scull]#
这下问题更多了啊。。。。。搞不懂为什么学驱动老是有问题啊。。
////////////版主帮我看一下啊。////////
///////////先谢谢版主了////////////

论坛徽章:
0
7 [报告]
发表于 2011-08-30 07:38 |只看该作者
上面这两个问题我已解决了。但是我的驱动可以编译但是就是出现这个问题
[root@localhost scull]# insmod scull.ko
insmod: error inserting 'scull.ko': -1 Invalid module format
这个问题我之前也遇到过,我的内核源码树是2.6.23.17而我用的发行版内核树是2.6.21.1。用2.6.23.17内核源码树编译的HELLO,WORLD!可以在发行版内核树是2.6.21.1运行。但是scull就不能在 这上面运行了。
请懂的人指教一下,这个问题已经困拢我很久了。。。。

论坛徽章:
0
8 [报告]
发表于 2011-08-30 08:05 |只看该作者
对了我的内核有升级过之前发行版内核树是2.6.21.1我升级到了2.6.23.17,但是我进到2.6.23.17这个内核中运行hello,world,和scull就显示insmod: error inserting 'hello.ko': -1 Invalid module format
进入2.6.21.1中运行hello,world可以但是运行scull就显示这个了insmod: error inserting 'hello.ko': -1 Invalid module format
请懂的人帮忙看一下!

论坛徽章:
0
9 [报告]
发表于 2011-08-31 09:40 |只看该作者
对了我的内核有升级过之前发行版内核树是2.6.21.1我升级到了2.6.23.17,但是我进到2.6.23.17这个内核中运行 ...
LINUX农场 发表于 2011-08-30 08:05



    内核与可加载模块不匹配。

你的板子上运行的如果是2.6.21.1的内核,那么你在编译模块时的内核树就应该是2.6.21.1。
你的板子上运行的如果是2.6.23.17的内核,那么你在编译模块时的内核树就应该是2.6.23.17。

论坛徽章:
0
10 [报告]
发表于 2011-08-31 17:17 |只看该作者
板子上运行的如果是2.6.23.17的内核,编译模块时的内核树就应该是2.6.23.17。但是这样还是有问题啊。。。。Aug 31 07:06:56 localhost kernel: scull: version magic '2.6.23.17 SMP mod_unload 686 4KSTACKS ' should be '2.6.23.17-88.fc7 SMP mod_unload 686 4KSTACKS
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP