linux第一个驱动helloword遇到的问题
2015-12-02 11:44
288 查看
开发板:TQ210 V4 coreB
虚拟机 fedora 9
由于TQ开发板附带光盘里没有linux2.6源码,只有出厂的烧录镜像,所以用的是友善之臂tiny210提供的源码去编译hello.c
make后生成hello.ko,放到开发板上 insmod hello.ko 报错,
hello: version magic '2.6.35.7-FriendlyARM preempt mod_unload ARMv7 ' should be '2.6.35.7-EmbedSky preempt mod_unload ARMv7 '
insmod: can't insert 'hello.ko': invalid module format
才知道是版本检测不匹配,
参照http://blog.sina.com.cn/s/blog_5d2a81780100mat6.html,网上有参照此种方法改了 utsrelease后发现再次编译后仍无法解决,原因是utsrelease是make后自动生成的,所以手动改没什么意义。
既然是make后生成,就修改源码目录下的Makefile 可以修改版本号,再查看.config配置文件CONFIG_LOCALVERSION="-FriendARM",开发板内核版本与生成的hello.ko内核版本就只有此处不同,所以将CONFIG_LOCALVERSION="-FriendARM改为CONFIG_LOCALVERSION="-EmbedSky"然后重新make ,再编译hello.c,生成hello.ko,使用/sbin/modinfo hello.ko查看,可以看到vermagic:
2.6.35.7-EmbedSky preempt mod_unload ARMv7 ,此时与开发板 vermagic一致
在开发板上insmod hello.ko出现了内存溢出的错误,也不知道怎么解决。
实在没辙,好不容易在网上找了天嵌公司提供的linux2.6源码,解压 拷贝配置文件到.config,make后却发现有错误,下了linux3.0源码 编译也有同样的错误,仔细看报错信息显示源码目录下drivers/media/video/samsung/tv20/ s5p_stda_grp.c 第594行有语法错误,也不知道怎么改,就将友善之臂提供的源码同样的文件打开对比了下,确实有不同,反正也不懂就干脆将这个文件用友善之臂提供的替换掉了,再次make 通过,然后修改hello.c的Makefile文件里的内核源码目录,再次make,开发板nfs挂载文件后,insmod
hello.ko终于见到了久违的helloword
虚拟机 fedora 9
由于TQ开发板附带光盘里没有linux2.6源码,只有出厂的烧录镜像,所以用的是友善之臂tiny210提供的源码去编译hello.c
make后生成hello.ko,放到开发板上 insmod hello.ko 报错,
hello: version magic '2.6.35.7-FriendlyARM preempt mod_unload ARMv7 ' should be '2.6.35.7-EmbedSky preempt mod_unload ARMv7 '
insmod: can't insert 'hello.ko': invalid module format
才知道是版本检测不匹配,
参照http://blog.sina.com.cn/s/blog_5d2a81780100mat6.html,网上有参照此种方法改了 utsrelease后发现再次编译后仍无法解决,原因是utsrelease是make后自动生成的,所以手动改没什么意义。
既然是make后生成,就修改源码目录下的Makefile 可以修改版本号,再查看.config配置文件CONFIG_LOCALVERSION="-FriendARM",开发板内核版本与生成的hello.ko内核版本就只有此处不同,所以将CONFIG_LOCALVERSION="-FriendARM改为CONFIG_LOCALVERSION="-EmbedSky"然后重新make ,再编译hello.c,生成hello.ko,使用/sbin/modinfo hello.ko查看,可以看到vermagic:
2.6.35.7-EmbedSky preempt mod_unload ARMv7 ,此时与开发板 vermagic一致
在开发板上insmod hello.ko出现了内存溢出的错误,也不知道怎么解决。
实在没辙,好不容易在网上找了天嵌公司提供的linux2.6源码,解压 拷贝配置文件到.config,make后却发现有错误,下了linux3.0源码 编译也有同样的错误,仔细看报错信息显示源码目录下drivers/media/video/samsung/tv20/ s5p_stda_grp.c 第594行有语法错误,也不知道怎么改,就将友善之臂提供的源码同样的文件打开对比了下,确实有不同,反正也不懂就干脆将这个文件用友善之臂提供的替换掉了,再次make 通过,然后修改hello.c的Makefile文件里的内核源码目录,再次make,开发板nfs挂载文件后,insmod
hello.ko终于见到了久违的helloword
相关文章推荐
- Linux环境下段错误的产生原因及调试方法小结
- linux——使用fidsk对linux硬盘进行操作【转】
- linux系统的cat命令
- linux socket编程
- linux uniq 命令详解
- centos下安装cdh5
- Linux ALSA声卡驱动之四:Control设备的创建
- Linux ALSA声卡驱动之一
- linux之sort用法
- linux ps 命令详解
- CentOS 7默认的jdk 1.7升级方法(到1.8) - alternatives的功能
- 无乱码解决Linux下sendEmail发送邮件
- centos 安装 mongo3.0
- Centos 7.1 快速搭建postfix邮件系统
- Kali Linux 2.0配置并安装常用的工具
- Linux 中卸载旧版本的JDK安装新版本JDK
- Linux awk
- linux管道pipe
- linux快速修改文件夹及文件下所有文件与文件夹权限
- Linux:file命令显示自定义文件类型