一直在使用Openwrt很多年,从路由到IOT终端,网关等,相对于其他开发环境或者厂家SDK来说,openwrt确实很便捷,其内部的Lua,ubox,ubus,rpc等一些机制,能在开发中带来很大的便捷,而且功能也非常稳定;
鉴于Yocto的庞大,复杂 和 buildroot的相对那么不便捷,最近在考虑把Openwrt移植到i.mx6ul中,为后续开发带来更多的便捷性;
移植前的思考:
- 主要的稳定性来自于Kernel,因此Kernel需要使用NXP 官方的,最新的是4.1,Openwrt下载标准kernel然后打patch,不一定完全适用;
- Openwrt可以看成是制作文件系统的工具,帮助更方便的制作而已
- Openwrt支持OPKG包安装和卸载,方便调试和增量升级
- Uboot可以先不管,也没太大作用,仅仅引导系统和设定启动参数而已
使用LEDE的v17.01.2 release分支,其已支持imx6,因此我们在imx6基础上修改即可;主要是配置;
首先是cpu架构,原来的imx6是A9架构,i.mx6ul是A7架构,因此修改如下(git diff方式给出)
diff --git a/target/linux/imx6/Makefile b/target/linux/imx6/Makefile
index 5f7e17b..a7ac682 100644
--- a/target/linux/imx6/Makefile
+++ b/target/linux/imx6/Makefile
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
ARCH:=arm
BOARD:=imx6
BOARDNAME:=Freescale i.MX 6
-FEATURES:=audio display fpu gpio pcie rtc usb usbgadget squashfs targz nand ubifs
-CPU_TYPE:=cortex-a9
-CPU_SUBTYPE:=neon
+FEATURES:=fpu gpio usb usbgadget targz nand ubifs
+C