4963|7

384

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ubuntu12.04(pc机下)下helloworld驱动从失败到成功过程 [复制链接]

最近想弄弄OK335xII开发板,发现以前也做过一些嵌入式有关的工作,重新开始搞搞了。把之前的东西搬到论坛里来和大家一起学习,进步。
最近在看linux的设备驱动程序,写一个简单的helloworld程序都花了我好久的时间,具体过程如下:
编写helloworld.c

编写Makefile

注意,makefile中的命令那里是一个tab,而不是多个空格,还有源文件的名字不要写错了,然后make,出现了下面这些错误make -C /lib/modules/3.8.0-29-generic/build  M=/home/Linux/helloworld modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-29-generic'
  CC [M]  /home/Linux/helloworld/helloworld.o
In file included from include/linux/types.h:5:0,
                 from include/linux/init.h:5,
                 from /home/Linux/helloworld/helloworld.c:1:
include/uapi/linux/types.h:4:23: fatal error: asm/types.h: No such file or directory
compilation terminated.
make[2]: *** [/home/Linux/helloworld/helloworld.o] Error 1
make[1]: *** [_module_/home/Linux/helloworld] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-29-generic'
make: *** [default] Error 2

在pc机的linux下运行helloworld驱动时不需要重新编译内核的,然后上面却提示缺少文件,后面看看确实是缺少文件,于是,我在windows下装了个虚拟机,用的也是ubuntu12.04,关于安装可以看我上传的资源,将这个helloworld.c和Makefile拷贝虚拟机下的ubuntu下,运行make,出现

ls一下可以看到生成的文件如下:

可以看到什么都没有改,然而这里就make成功了。看来用wubi安装系统有一定的缺陷。
insmod ./helloworld.ko加载驱动,没有打印信息,在/var/log/syslog下可以看到打印信息,注意不是在/var/log/messages下的哦。vim /var/log/syslog后按下G,跳到后面,看下图

这样,ubuntu12.04下pc机的helloworld驱动就正常运行起来了。

注明:上面的东西发表在10月15日,但在10月17日才找出真正的原因,上面的历程就当是一个回忆,下面对上面的错误的理解进行纠正。
首先:上面提到了再pc机的ubuntu(不是虚拟机,即是用wubi安装的ubuntu),编译helloworld驱动不成功,这个确实是不用编译内核的,上面报错的原因是由于他在make的时候是采用了交叉编译环境,而不是gcc。在修改了

注释到下面的3行,make就成功了。而绝不是wubi安装ubuntu系统带来了的问题。注明:修改的文件是/etc/bash.bashrc,然后修改后必须要重启终端。

发现该问题的过程:
10月15号,装了一个虚拟机,成功的运行了helloworld驱动程序后,就有了上面的文档,之后再虚拟机上装了交叉编译工具,在17日编译的时候再度出错,原来成功的东西又出错,就觉得是这里的问题了,过来,安装上面的改法就成功了,不容易啊,菜鸟。

最新回复

楼主,我用交叉编译器的时候也出现了这种情况,您在下面注释的什么  详情 回复 发表于 2016-12-30 16:57

赞赏

1

查看全部赞赏

点赞 关注

回复
举报

384

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
竟然可以直接粘贴图片了,哈哈

点评

一直可以直接帖图片,只是有的网站图片允许外链,比如CSDN,有的网站不允许外链,比如 百度 腾讯  详情 回复 发表于 2014-8-14 10:51
 
 

回复

2万

帖子

74

TA的资源

管理员

板凳
 
南盗 发表于 2014-8-14 10:12
竟然可以直接粘贴图片了,哈哈

一直可以直接帖图片,只是有的网站图片允许外链,比如CSDN,有的网站不允许外链,比如 百度 腾讯

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

ok,明白了,之前没试过,  详情 回复 发表于 2014-8-15 10:04
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

384

帖子

0

TA的资源

一粒金砂(中级)

4
 
soso 发表于 2014-8-14 10:51
一直可以直接帖图片,只是有的网站图片允许外链,比如CSDN,有的网站不允许外链,比如 百度 腾讯

ok,明白了,之前没试过,
 
 
 

回复

105

帖子

0

TA的资源

一粒金砂(中级)

5
 
请问你的hello_world驱动是在PC上运行还是可以在ARM板子上运行

点评

这个是运行在pc下得,在板子得要过几天我试试。  详情 回复 发表于 2014-8-18 12:49
 
 
 

回复

384

帖子

0

TA的资源

一粒金砂(中级)

6
 
cer1991 发表于 2014-8-18 11:12
请问你的hello_world驱动是在PC上运行还是可以在ARM板子上运行

这个是运行在pc下得,在板子得要过几天我试试。
 
 
 

回复

7228

帖子

192

TA的资源

五彩晶圆(高级)

7
 
MARK适合新手 回头看
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

8
 
楼主,我用交叉编译器的时候也出现了这种情况,您在下面注释的什么
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表