简介
本节会讲到环境的搭建、源码的下载、简单的GIT操作管理、编译等知识。此时,OpenWrt的开发,才刚刚开始。
搭建编译环境
编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的。
先说Linux,建议使用Ubuntu14.04 32位版本,编译前要安装以下依赖:
$ 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-7-jdk
如果是64位,还要多安装以下依赖:
$ sudo dpkg –add-architecture i386 $ sudo apt-get update $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
再说macOS,首先从APP Store中安装Xcode command line tools,再安装[brew]工具,接下来使用brew安装依赖:
$ brew install coreutils findutils gawk gnu-getopt gnu-tar grep wget quilt xz
编译中极有可能碰到getopt和xgettext问题,碰到后做以下两步:
$ brew ln gnu-getopt –force $ ln -s /usr/local/Cellar/gettext/0.18.1.1/bin/xgettext xgettext
Windows的话只能用虚拟机了,可以看这篇文章:File:Ubuntu环境搭建.pdf
使用GIT下载源码
下载默认代码(单网口模式)
$ git clone https://github.com/widora/openwrt_widora.git
下载多网口模式代码
$ git clone https://github.com/widora/openwrt_widora.git $ git checkout wllll
更多GIT操作见:GIT常用命令整理
编译
因为众所周知的原因,在国内编译OpenWrt很困难,有很多包被墙无法下载。
我们提供了一个dl镜像的地方,推荐如果编译过程中发现某些包找不到,那么就来dl找一下,下载后放到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
BootLoader编译
下载代码
使用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,并保证系统语言为英文!如果是64位系统,请先进行第六步
$sudo apt-get install openjdk-7-jdk
进入u-boot-mt7688源码,编译
$cd u-boot-mt7688 $make clean;make
编译完,生成到本目录下uboot.bin
$ls uboot.bin''
64位系统需要安装32位兼容库
$ sudo dpkg --add-architecture i386 $ sudo apt-get update $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386