OpenWrt搭建编译环境编译交叉编译工具

##搭建编译环境
兑悦物联小店
编译OpenWrt须要Linux环境或mac环境,不支持Windows,若是要在Windows上开发,那么确定是要装虚拟机的。python

Linuxc++

建议使用Ubuntu14.04 32位版本,编译前要安装如下依赖:git

$ sudo apt-get update 
  $ sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim openjdk-8-jdk

若是是64位,还要多安装如下依赖:github

$ sudo dpkg --add-architecture i386
  $ sudo apt-get update
  $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

###macOSweb

首先从APP Store中安装Xcode command line tools,再安装[brew]工具,接下来使用brew安装依赖:ubuntu

$ brew install coreutils findutils gawk gnu-getopt gnu-tar grep wget quilt xz

编译中极有可能碰到getopt和xgettext问题,碰到后作如下两步:vim

$ brew ln gnu-getopt –force
  $ ln -s /usr/local/Cellar/gettext/0.18.1.1/bin/xgettext xgettext

###Windowssvg

Windows的话只能用虚拟机了,能够看这篇文章:ubuntu环境搭建.pdf工具

下载源码ui

下载默认代码(单网口模式)或者到个人网盘下载

$ git clone https://github.com/widora/openwrt_widora.git

下载多网口模式代码

$ git clone https://github.com/widora/openwrt_widora.git
  $ git checkout wllll

编译

由于众所周知的缘由,在国内编译OpenWrt很困难,有不少包被墙没法下载。咱们提供了一个dl镜像的地方,推荐若是编译过程当中发现某些包找不到,那么就来http://dl.widora.cc找一下,下载后放到openwrt_widora根目录中的dl文件夹内便可,减小编译时间。

更新并安装软件包

$ ./scripts/feeds update -a 
  $ ./scripts/feeds install -a

配置OpenWrt

$ make menuconfig

选择项16MB+128MB配置:

Target System: Ralink RT288x/RT3xxx 
  Subtarget: MT7688 based boards 
     Target Profile: Widora

32MB+128MB配置:

Target System: Ralink RT288x/RT3xxx 
  Subtarget: MT7688 based boards 
    Target Profile: Widora32m

保存退出快速编译,数字为电脑CPU逻辑核数减1 $ make -j4 出错后详细查看编译log,可以使用 $ make V=s 整个编译在dl文件夹完整的状况下持续1个小时左右,编译完会在bin/ramips目录生成固件,名字为:

16M+128M: openwrt-ramips-mt7688-Widora-squashfs-sysupgrade.bin 
32M+128M: openwrt-ramips-mt7688-Widora32m-squashfs-sysupgrade.bin

U-Boot编译

使用git工具下载u-boot-mt7688源码

$git clone https://github.com/widora/u-boot-mt7688.git

解压编译工具链到/opt/目录下

$cd u-boot-mt7688
$sudo tar xvfj buildroot-gcc342.tar.bz2 -C /opt/

安装openjdk,并保证系统语言为英文

$sudo apt-get install openjdk-7-jdk

进入u-boot-mt7688源码,编译

$cd u-boot-mt7688
$make clean;make

编译完,生成到本目录下uboot.bin

$ls uboot.bin