因为工作需要需要,需要深入了解openwrt的相关知识,那么就从编译镜像开始吧。
0. 准备工作
编译环境: Ubuntu 16.04
源码: Github
1. 开始干活
- 首先,我们去到上面的github仓库里面下载源码,下载到我们的编译机里面。
- 打开源码目录,执行
make menuconfig
看一下各种依赖库是否都安装好,理论上需要安装下述这些依赖:gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers
我们更新下组建和包
./scripts/feeds update -a ./scripts/feeds install -a
- 修改下芯片信息就可以开始编译了,
make menuconfig
进行修改,Target System>MediaTek Ralink ARM
,这里需要注意,我第一次编译没有注意这里,发现编译出来的不是我板子的芯片的,然后修改这里重新编译就好了。 开始编译,第一次编译建议使用
make -j1 V=s
,虽然这会很慢,但是好排错(大神介绍的,我一次过的),确定没问题了,后面为了加快速度你可以使用make -j4
2. 生成文件
编译完成后,会在
build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-mediatek_32
目录下生成编译后的镜像文件:mtk-bpi-r2-SD.img
另外还有一个文件也要注意一下,就是位于`bin/targets/mediatek/32/lede-mediatek-32-bananapi,bpi-r2-sysupgrade.tar`,这个文件可以用于系统升级。