全志A10_linux3.0内核编译记录
这次为了编译这个内核花费了我半个多月的时间.期间学习了不少关于内核的makfile和android编译的知识,也了解了下buildroot这个工具.写点东西记录一下把.blog写的不多,条理不清晰,有漏洞请见谅,只是提供个关键词给搜索的人.
第一次尝试编译时按照 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-
-----------------------------------------------------------------------------------
编译内核:
又bing了半天....在这个帖子找到编译方法
http://m.oschina.net/blog/83234
生成.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存在后不是应该放弃了吗. 是不是该用 &&
然后又各种改,报各种错
于是干脆将vpath 目录下所有 *.c 复制到modules/wifi/bcm40183/5.90.125.95.3/open-src/src/dhd/
终于编译通过..
分享一个分析makefile小技巧
$(warning SUBARCH)
$(warning $(SUBARCH))
可以在Makefile执行时打印这个变量.这个小技巧是我在一个不到2页的一个提问帖里的一个楼层找到的.超级有用!!!
全志A10_linux3.0内核编译记录相关推荐
- 编译内核启用KASan动态检测内核内存错误功能(ubuntu16.04 4.4.0内核编译升级到linux-4.4.252版本)
目录 一.编译内核并配置支持KAsan 1.下载源码 2.安装编译内核必须的库 3.清理之前内核编译生成及相关配置 4.配置内核参数 5.开始编译 6.模块(驱动)安装 7.安装新编译的内核 8.修改 ...
- Android 9.0 内核编译实战(以一加6为例)
前人栽树后人乘凉- 我们这里用EX内核编译做个示范 https://github.com/flar2/OnePlus6/tree/ElementalX-3.00 1.同步代码啦 git clone h ...
- 安卓9.0刷linux,Android 9.0 内核编译实战(以一加6为例)
前人栽树后人乘凉... 1.同步代码啦 git clone https://github.com/flar2/OnePlus6.git -b ElementalX-3.00 我这里直接这么干了.最好还 ...
- iMX6UL---zlg M6G2C开发板内核编译记录
开发板型号:zlg EPC-6G2C-L ARM架构:Cortex-A7 Kernel :4.1.15 CPU:[iMX_6UL系列]MCIMX6G2CVM05AA 主频528MHz RAM: IS4 ...
- linux imx6 内核编译,iMX6UL---zlg M6G2C开发板内核编译记录
开发板型号:zlg EPC-6G2C-L ARM架构:Cortex-A7 Kernel :4.1.15 CPU:[iMX_6UL系列]MCIMX6G2CVM05AA 主频528MHz RAM: IS4 ...
- 全志a64linux内核编译,全志A64 lichee编译脚本build.sh分析
全志A64 lichee编译脚本build.sh分析 发布时间:2018-08-22 15:58, 浏览次数:269 , 标签: lichee build sh lichee目录下的./build.s ...
- 华为荣耀6x内核编译修改PTRACE安装xposed/frida并打开ro.debuggable记录
华为荣耀6x内核编译修改PTRACE安装xposed/frida并打开ro.debuggable记录 1.内核编译 2.刷机 3.ro.debugable 1.内核编译 注意要点: 内核源码 官方下载 ...
- 全志A33移植ubuntu系统记录(1)V1.0(分色排版)
http://blog.csdn.net/lushengchu_luis/article/details/72457449 全志A33移植ubuntu系统记录(1) 大文实验室/大文哥 壹捌陆捌零陆捌 ...
- android8.1内核编译,Android8.1.0安卓源码编译
换中科大源18.04 由于新安装的Ubuntu默认配置为Ubuntu官方源,基本软件包下载速度较慢,下面修改软件源: 备份下sources.list sudo cp /etc/apt/sources. ...
最新文章
- Spring配置文件中注入复杂类型属性
- 框架SpringMVC笔记系列 二 传值
- redhat配置dns服务器bind
- bapi sap 创建物料_SAP使用BAPI创建物料主数据的最小输入-阿里云开发者社区
- jvm运行时类加载机制_JVM体系结构:JVM类加载器和运行时数据区
- 闲话 - 火车硬座座位分布图
- 减治法在求解拓扑排序问题中的应用(JAVA)--有向无环图
- sql 生成一列1到10的数字_SQL 打印矩阵(三)
- 一切都是瞬息,一切都会过去,而那过去了的,将成为亲切的回忆。
- 蓝牙打印 设置打印样式_双编辑模式 打印自由更轻松!——海鸟贴纸打印机蓝牙按键版体验...
- 快速搭建一个前端模板
- java购物系统需求分析_java网上购物系统需求分析报告.doc
- 数字电路基础知识——组合逻辑电路(数据选择器MUX、多路复用器)
- 如何降低论文查重率?
- 【转】常用0x000000类型颜色代码表
- SONET/SDH概述
- 坚果pro android版本,坚果Pro有几个版本 哪个版本好?坚果Pro各版本的区别
- java字符串反转reverse();
- python计算最大公约数函数_python如何求解两数的最大公约数
- JNPF快速开发框架的八大功能介绍
热门文章
- Android_微信分享时提示“签名不对,请检查签名是否与开放平台上填写的一致。”
- UC浏览器版爱情买卖
- 魅蓝2 Android m,魅蓝2:Flyme
- 有了这三款软件,你家的智能电视和电视盒子就够用了
- 赛迪智库丨在符合伦理规范下做好AI全球化治理
- μCosII的体系结构
- GPS芯片获取的卫星时间会出现快几秒的原因
- 辐射4ap回复速度_磁共振清晰没辐射,为何却总推荐做CT,道理很简单,但有人不相信...
- [Gitlab CI/CD] Error loading key “/dev/fd/63“: invalid format
- PS学习-人像照片综合处理(四)--通道磨皮