全志A10_linux3.0内核编译记录
第一次尝试编译时按照 Android A10(4.0.3)系统编译详解.pdf 编译打包出来的镜像可用,但是内核没有生成Module.symvers .后来进一步研究才知道 ./build.sh 脚本根本没有执行完.
-----------------------------------------------------------------------------------
编译驱动的时候
make -C $S3C6410_KERNEL_PATH M=${PWD}
输出
WARNING: Symbol version dump /disk1/sources/cb-A10/lichee/linux-3.0/Module.symvers
is missing; modules will have no dependencies and modversions.
和一堆类似这样的错误
/disk1/sources/cb-A10/lichee/linux-3.0/arch/x86/include/asm/processor.h:114:30: error: 'CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
解决方案:
把Makefile里的这两个变量这样改
ARCH ?=arm
CROSS_COMPILE ?=arm-none-linux-gnueabi-
-----------------------------------------------------------------------------------
编译内核:
如果按照那个pdf的方法,这时候才会发现原来根本没有按CONFIG_ARCH_SUN4I 配置编译内核.
查看 .config
CONFIG_ARCH_SUN4I 没有选上,CONFIG_ARCH_VERSATILE is not set 被选上了
又bing了半天....在这个帖子找到编译方法
http://m.oschina.net/blog/83234
#cd lichee/linux-3.0
#make mrproper
#make clean 如果你之前没有编译过那么这一步就不用了
#make ARCH=arm sun4i_crane_defconfig
这个命令会将/arch/arm/configs/sun4i_crane_defconfig 复制到 .config.
我将这个config和buildroot/configs目录下的同名config比较了下.发现这两个不是同一个文件,但是./build.sh 执行时也并没有因为配置不同而重写.config
生成.config 文件后不要用make menuconfig 更改, 应该手动更改.config .具体原因我也忘了,估计是因为make menuconfig 会读取 kconfig,修改覆盖了 build.sh 生成的config
返回上层
#./build.sh -p sun4i_crane -k 3.0
最后按上面的方法编译还是会有点问题.手动修改.config解决. 最后./build.sh 后提示example模块不在.没有像帖子里说的那样成功返回. 但其实内核已经生成好了
-----------------------------------------------------------------------------------
编译内核成功后 脚本会自动到内核目录 make modules
这时会有一些 cp: cannot stat `nand.ko': example.ko not found 之类的错误.
通常都是因为 makefile : $(MAKE) -C $(LICHEE_KDIR) M=$(PWD) 这句错了.
应该是 makefile : $(MAKE) -C $(LICHEE_KDIR) M=$(PWD) modules
-----------------------------------------------------------------------------------
No rule to make target `/disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40183/5.90.125.95.3/open-src/src/dhd/linux/dhd-cdc-sdmmc-gpl-3.0.8/linux_osl.o', needed by `/disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40183/5.90.125.95.3/open-src/src/dhd/linux/dhd-cdc-sdmmc-gpl-3.0.8/dhd.o'. Stop.
如果按照该pdf,只要在makemuconfig 时把bcm相关项n掉就可以编译了.第一次编译时我是这么做的.
但是make ARCH=arm sun4i_crane_defconfig 后又出现链接文件已存在.
mkdir -p dhd-cdc-sdmmc-gpl-3.0.8
make -C dhd-cdc-sdmmc-gpl-3.0.8 -f /disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/../../dhd/linux/Makefile SRCBASE=/disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/../.. modules
make[2]: Entering directory `/disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/dhd-cdc-sdmmc-gpl-3.0.8'
test -r .//disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/../../dhd/sys/dhd_linux.c && ln -s /disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/../../dhd/sys/dhd_linux.c .
make[2]: *** [dhd_linux.o] Error 1
make[2]: Leaving directory `/disk1/sources/cb-A10/lichee/linux-3.0/modules/wifi/bcm40181/5.90.125.69.2/open-src/src/dhd/linux/dhd-cdc-sdmmc-gpl-3.0.8'
make[1]: *** [objdir] Error 2
研究下modules/wifi/bcm40183/5.90.125.95.3/open-src/src/dhd/linux/Makefile
看到这句
540 %.o: %.c
541 # when make is called from 2.6, vpath doesn't work so we need to link the files.
542 test -r $< || ln -s $< .
把542改成 test -r $< || ln -f -s $< . .
还是报错 Too many levels of symbolic links ..其实我不太明白为什么是 || 这个符号,,test存在后不是应该放弃了吗. 是不是该用 &&
然后又各种改,报各种错 www.qcwyo68.com
于是干脆将vpath 目录下所有 *.c 复制到modules/wifi/bcm40183/5.90.125.95.3/open-src/src/dhd/
终于编译通过..
分享一个分析makefile小技巧
$(warning SUBARCH)
$(warning $(SUBARCH))
可以在Makefile执行时打印这个变量.这个小技巧是我在一个不到2页的一个提问帖里的一个楼层找到的.超级有用 www.lefeng123.com
全志A10_linux3.0内核编译记录的更多相关文章
- ubuntu12.04 内核编译 记录
近期学习linux这门课,做实验要编译系统内核,然后..五一没事就捣鼓了一上午,还好成功了,以下就写下过程吧. 注意:以下过程的有些make 这类的命令 可能要获取权限 1.開始时能够查一下自己如今系 ...
- android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)
编译环境必须是64位系统啊,妥妥的又装了64位的ubuntu,虚拟机推荐server版本,不带x省性能…… 接着要装openjdk 1.7,记得更新一下系统的源,下面这个不错 deb http://m ...
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...
- [原创]Nexus5 内核编译烧录过程记录
参考Android系统源代码情况分析第二章进行实践,为了提高效率,也为了增加实践机会,使用Nexus5进行内核编译.需要说明的是,Android源代码工程默认是不包含它所使用的Linux内核源码,如果 ...
- 009全志R16平台tinav3.0下编译不过的问题
009全志R16平台tinav3.0下编译不过的问题 2018/11/13 11:39 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r16平台tinav3. ...
- 全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG)
全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG) 2018/6/13 15:52 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r1 ...
- Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译过程(2)
前面因为博客园维修,所以内核编译过程一直没有发出来,现在把整个内核过程分享出来.本随笔给出内核的编译实现过程,在编译前需要参照我前面一篇随笔: Ubuntu20.04linux内核(5.4.0版本)编 ...
- arm-linux内核编译过程小结
记在前面的杂七杂八 内核的生成,实际上最终的目的是生成一个binary文件zImage,大小2-5MB的数量级. 用户可以从kernel.org得到的tar.gz格式的内核源代码,此代码解压后,就会生 ...
- 【内核】linux2.6版本内核编译配置选项(二)
目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http ...
随机推荐
- Unity 通过Animation实现控件位置的转换
Unity版本:4.5.1 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/unity3d_xyz/article/details/23035521,作者:CSDN in ...
- LA 4726 再看斜率优化
感觉最近一批解题报告没写,现在慢慢补吧,算是noip前攒攒rp了 首先感到深深的自责,因为之前对斜率优化没有深入的理解,只是记住了一般步骤,并没有完全了解为什么这样做 先就这道题目而言 首先这种序列题 ...
- 字符串(扩展KMP):HDU 4333 Revolving Digits
Revolving Digits Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 字符串(后缀数组||SAM):NOI2015 品酒大会
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAByIAAALuCAIAAABtq0bwAAAgAElEQVR4nOy9f2wb150vev4boESeln ...
- 【转】Linux 套接字编程中的 5 个隐患
地址:请点击这里
- Cyclic Nacklace - HDU 3746(next求循环节)
题目大意:给你一些串,问如果想让这个串里面的循环节至少循环两次,需要添加几个字符(只能在最前面或者最后面添加).比如ababc 需要添加5个就是添加ababc. 分析:其实字符串的长度len-next ...
- IntelliJ IDEA安装 一些配置
idea 配置修改 本篇 参考https://blog.liyang.io/234.html. 1.修改IDEA菜单的字体大小: 单击File | Project Structure菜单项,打开Pro ...
- winform timespan 两个时间的间隔(差) 分类: WinForm 2014-04-15 10:14 419人阅读 评论(0) 收藏
TimeSpan 结构 表示一个时间间隔. 先举一个小例子:(计算两个日期相差的天数) 代码如下: DateTime dt = DateTime.Now.ToShortDateString(yyyy ...
- today's learning of english 1
1.curriculum 必修课 主修课 2.sought seek的过去式 3.blessed with a wonderful marriage 有个幸福美满的婚姻 4.al ...
- jquery ajaxform上传文件返回不提示信息的问题
在使用jquery的ajaxform插件进行ajax提交表单并且上传文件的时候,返回类型datatype :json但是后台通过写出一个json对象后,在执行完以后没有进入success函数,而是直接 ...