udoo neo 开发板,kernel 内核源码编译

作者: robe.zhang
上传时间为: 2018-01-02 09:08 AM
2018-01-02
阅读:

编译环境就和上一篇编译 uboot 的一样样,编译 kernel 内核源码,先去下载 源码:

使用 udoo 官方 github 的代码,这个代码 udoo 在维护,和 udoo neo 开发板适配更好吧

下载:git clone https://github.com/UDOOboard/linux_kernel,800多兆大小,200KB/S 网速,下载了一晚上;

配置,加载 udoo 默认配置:ARCH=arm make udoo_neo_defconfig:

(给 udoo 板子建了个目录,uboot ,kernel 都放里面了,下载时候下到别处了,规整一下)


调整 官方的 默认配置,ARCH=arm make menuconfig,不调整可以省略这一步。

调整完,save,exit,回到命令行:

开始编译:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage -j4:

(-j4 这个选项可以不要,4这个数字也可以随便改,是个多线程编译参数,自己cpu有几个核就写几,无所谓不影响编译出来的文件)

刚刚开始编译碰到一个错误,退出编译了,说是 fatal error ,很严重的错误,找一下 compiler-gcc6.h 这个文件:

find /samba/udoo/linux_kernel/ -name "compiler-gcc*" 果然没有的。

看看我的gcc 版本号:arm-linux-gnueabihf-gcc -v

gcc 是 6.3 的。编译 kernel 源码没有那个文件报的错,去哪弄一个去?

上一篇 uboot 也是用这个编译器编译的,没问题,做个全盘搜索:find / -name "compiler-gcc*" 

/samba/udoo/ 目录下 uboot 目录有 compliler-gcc6.h  ,kernel 里面没有:

那就把 uboot 的直接复制一个过去,看看行不行:

 cp /samba/udoo/uboot-imx/include/linux/compiler-gcc6.h /samba/udoo/linux_kernel/include/linux/compiler-gcc6.h

复制完了接着编译,还是那个命令:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage -j4

这个问题过去了,(如果你用 gcc 3/4/5 版本都没事,不会报这个错)接下来就开始编译了,一边看着就行

编译过程,有一些 warning:变量定义了没使用,或者c99 标准,没啥大问题,先不管

等了 7-8 分钟吧,就编译完了:

zImage 编译出来在 kernel 目录下的 arch/arm/boot/ 目录下,稍后需要用这些文件。kernel 编译就完了。

自己编译时候,编译环境不一样,可能报错和这个不大一样。看提示排查问题吧。

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示