【IMX6UL开发板试用体验】OpenWRT在iMX6UL上面的移植与编译

选择

OpenWRT在最近的时期分裂出了LEDE出来,因此这就涉及到了这两个的选择。

前段时间,编译过LEDE用于树莓派3,于是想着直接使用以前的LEDE,这样子省去了下载,毕竟在国内下载很多source code可能需要很长的时间,如果没有proxy的话。于是想着省些事情就用起来了以前的LEDE来编译,但是编译过程中出现了很多错误, 因此最终我决定切回到OpenWRT,并且使用master上面新的代码来移植编译。


代码仓库: https://github.com/tonyho/OpenWRT_iMX6UL


OpenWRT配置

本身LEDE与OpenWRT里面已经有一个imx6 Cortex-A9的arch支持,因此直接选择这个为base来做Porting与Compile较为合适。配置如下:


Compile Tuning

因为imx6ul是Cortex-A7,所以我们需要更改一下


选择好Target之后,我们需要做移植工作。

Target移植

内核移植

移植需要将内核更改一把,这个位于:

$ ls target/linux/imx6/
base-files  config-3.14  config-4.4  files-4.4  image  Makefile  patches-4.4  profiles

其中config-XX是内核的.config文件,注意不要有modules,全部用builtin,否则将会出错。

然后patches-XX是对应内核的patches,我们不需要这些东西,所以不需要。

内核位置的指定



然后直接编译make即可。


编译的错误

1. DEPEND的问题

如果使用Prebuilt的toolchain可能会出现下面这个问题:

Package libnl-tiny is missing dependencies for the following libraries:
libc.so.6

那么就需要将libc.so添加到DEPENDS变量中。

2. 内核编译错误

内核比较老,但是GCC版本较高,会出现下面这个错误:

init/do_mounts_rd.o: In function `nop_flush_icache_all':
do_mounts_rd.c:(.text+0x0): multiple definition of `nop_flush_icache_all'
init/do_mounts.o:/ExtDisk/Projects/iMX6UL_OpenWRT/BSP_EVB/linux_3.14/init/do_mounts.c:610: first defined here
init/do_mounts_rd.o: In function `nop_flush_kern_cache_all':
do_mounts_rd.c:(.text+0x4): multiple definition of `nop_flush_kern_cache_all'
init/do_mounts.o:/ExtDisk/Projects/iMX6UL_OpenWRT/BSP_EVB/linux_3.14/init/do_mounts.c:610: first defined here
init/do_mounts_rd.o: In function `nop_flush_kern_cache_louis':
要解决这个问题,需要在内核的CFLAG中添加 -fgnu89-inline

这个问题可以参考:

  http://unix.stackexchange.com/questions/250804/error-while-building-linux-kernel-for-versatile-board

3.内核编译的错误2

ERROR: module '/openwrt/build_dir/target-arm_cortex-a9+neon_musl-1.1.16_eabi/linux-imx6/linux-3.14/drivers/usb/gadget/udc/udc-core.ko' is missing.

出现问题是因为我们没有正确的配置kernel module对应的item,但是因为我们暂时不需要,所以直接将其干掉即可:



4. 并发编译出错

一般都是因为make的时候指定-jN的N过大导致。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值