CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
楼主: WindLand

[教程]如何编译单个驱动文件

[复制链接]
发表于 2013-4-23 16:18:19 | 显示全部楼层
WindLand 发表于 2013-4-23 15:44
你随便找个正常的ko看看modinfo , 如果和你gpio这个一样的话,应该就不是版本问题了。
可能是这个驱动是 ...

我先试下编译整个内核(正在编译 ),再看看。

谢谢您。
回复 支持 反对

使用道具 举报

发表于 2013-4-23 16:26:31 | 显示全部楼层
WindLand 发表于 2013-4-23 15:44
你随便找个正常的ko看看modinfo , 如果和你gpio这个一样的话,应该就不是版本问题了。
可能是这个驱动是 ...
确实是一样的

我输入 dmesg|tail 后得到了这个
[   18.240000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.260000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.280000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.300000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.320000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.340000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.360000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.370000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   18.400000] systemd[1]: systemd-tmpfiles-clean.timer: time change, recalculating next elapse.
[   25.970000] eth0: no IPv6 routers present
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-23 22:32:57 | 显示全部楼层
Ttcd 发表于 2013-4-23 16:26
确实是一样的

我输入 dmesg|tail 后得到了这个

这些应该是无关信息。
insmod之后再立即看dmesg|tail
不管dmesg输出什么,反正编译整个内核是可以解决的。
我看了你那篇帖子了,arch我没用过,如果实在无法解决依赖问题,还是在pc上装个ubuntu来交叉编译吧。
回复 支持 反对

使用道具 举报

发表于 2013-5-6 19:41:30 | 显示全部楼层
楼主,用你方案编译了,可是insmod的时候出现了exec format error。
这个应该怎么办啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-6 20:10:42 | 显示全部楼层
siriux 发表于 2013-5-6 19:41
楼主,用你方案编译了,可是insmod的时候出现了exec format error。
这个应该怎么办啊? ...

insmod出错的时候,就查看dmesg的结尾输出:
dmesg|tail

把看到的信息拿去google
回复 支持 反对

使用道具 举报

发表于 2013-5-6 22:20:16 | 显示全部楼层
我觉得如果内核版本不匹配导致insmod失败,有下面几种解决方式:
1. 使用uname -r查看内核版本号,然后在github.com/linux-sunxi中下载对应的源码;
   在cb的/proc下找config.gz文件,zcat /proc/config.gz出来。带着zcat出来的config文件重新编译内核(注意这里编译只是让内核产生一些形如autoconf.h等文件,不需要替换cb原系统上的kernel以及模块
   然后在模块编译你自己的模块,内核根目录需要指定上面的路径
2. 在github.com/linux-sunxi中获取源码,整个重新编译并替换。这个可能是最简单的
其实一起的linux发行版,在/usr/src/linux(具体目录名我忘记了)下是放了一个可以用来编译内核模块的最小头文件目录,不知道现在的系统有没有?明天我可以检查一下
回复 支持 反对

使用道具 举报

发表于 2013-7-18 15:44:23 | 显示全部楼层
mybays 发表于 2013-2-24 00:44
建议用Sourcery G++的交叉编译链:arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
或 ...

为什么这么建议呀,这个是通用的吗?
回复 支持 反对

使用道具 举报

发表于 2013-7-19 09:54:36 | 显示全部楼层
可惜呀  没说怎么编译无线网卡,楼主 我看你编译通过RTL8187的,可以写一下怎么编译的嘛 谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-21 03:14:32 | 显示全部楼层
oneisthis 发表于 2013-7-19 09:54
可惜呀  没说怎么编译无线网卡,楼主 我看你编译通过RTL8187的,可以写一下怎么编译的嘛 谢谢 ...

8187在源码里是自带的,只需要在meke memuconfig的时候把它选上就行了
他依赖一些其他选项,勾上依赖的东西之后才会出现8187的选项。

大概可以参考此文:http://linux.chinaunix.net/techd ... 08/06/1128770.shtml
不保证选项的路径是一样的,路径记不太清楚了,找不到的时候搜索下试试。
回复 支持 反对

使用道具 举报

发表于 2013-7-29 11:25:17 | 显示全部楼层
本帖最后由 yzbx 于 2013-7-29 13:46 编辑

楼主你好,在编译gpio.ko中出现了版本不一致的问题,linux-sunxi-3.0的具体版本是3.0.62,而在CB板上的android使用uname -r 得到的是3.0.52+, 在android 上还有其它一样驱动,比如8188eu.ko, 在git 上找不到精确到3.0.52+的linux-sunxi。所以个人觉得只有换CB板的内核,这样会影响到8188eu.ko等驱动 么?不然我再去找找3.0.52+的linux-sunxi?
由于楼主说git里不太好找,我先试试编译 uImage 的方法 吧!
matson 的方法经过尝试,意外发现CONFIG_SUN4I_GPIO_UGLY=y, 这不是不用编译gpio.ko了?
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-4-30 04:00 , Processed in 0.030870 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部