OpenWrt固件编译

OpenWrt固件编译


编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的。(根据云隐技术7688开发板)

若不想折腾,下载虚拟机(vmdk格式,默认virtualbox,可能需要重新安装增强功能) Ubuntu14.04_X64.vmdk,虚拟机用户:openwrt, 密码:123456

Linux(建议使用Ubuntu14.04/16.04 32位/64位版本)

: 在Ubuntu18.04上编译将无法通过,所以推荐使用低版本编译

: 如果提示找不到openjdk-8-jdk,可以试试openjdk-7-jdk

编辑

1、安装依赖环境

Ubuntu

$ 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 zlibc zlib1g zlib1g-dev openjdk-7-jdk build-essential ccache gettext xsltproc

如果是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

如果编译过程中有“date illegal option”错误,因为macos里默认的date不是GNU的date,参数有些差异,可以这样:

$ cd /usr/local/bin/
$ ln -s gdate date

重新打开终端后生效.

编辑

2、下载OpenWrt源码

$ git clone https://github.com/Ying-Yun/openwrt.git

Note:需准备12GB左右的空间,源码体积百兆左右,但是编译过程中会产生大量文件,会使文件夹体积非常大

编辑

3、更新OpenWrt源码

$ git pull

更新完后,由于本地编译环境有上次的残留,会造成异常,最好做如下清理工作(在OpenWrt源代码文件夹目录内):

$ make clean
$ rm .config
$ rm -r tmp/

编辑

4、更新并安装软件包

OpenWrt源码下载下来后,进入到OpenWrt源码目录,输入如下两个指令,更新OpenWrt所支持的软件包。

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

Note:因为众所周知的原因,在国内编译OpenWrt很困难,有很多包被墙无法下载。 我们提供了一个dl镜像的地方,推荐如果编译过程中发现某些包找不到,那么就来GitHub - Torchwoods/dl: openWrt download files或者Index of /sources/找一下,下载后放到openwrt源码根目录中的dl文件夹内即可,减少编译时间。

编辑

5、硬件信息配置

在OpenWrt源码的顶层目录输入make menuconfig指令,对编译的信息进行配置

$ make menuconfig

目标配置:

TargetSystem -> Ralink RT288x/Rt3xxx
Subtarget->MT7688 based boards
Target Profile->XiaoYin0864

其他选项配置:

“Package the OpenWrt-base Toolchain”是为了有搭建交叉编译环境方便,不是必选的。 此外,勾选LuCI(网页形式的控制台)还是非常必要的。要勾选(前面出现*号):

LuCI→1.Collections→luci

别忘记勾选中文:

LuCI→2.Modules→Translations→Chinese(zh-cn)

最后Save,退出。

以上是基本的固件编译,如果需要其他功能,要再勾选或添加

Note: mt7688拥有两个版本,其不同之处在于内存和FLASH存储空间不同。

型号一:XiaoYin0864:8MB   FLASH + 64MB RAM
型号二:XiaoYin1664:16MB  FLASH + 64MB RAM
型号三:XiaoYin32128:32MB FLASH + 128MB RAM

编辑

6、固件编译

配置完成后,接着输入make V=s -j2指令,进行固件编译

$ make V=s -j8

V=s 代表显示编译信息,一定要勾选,否则出错的话无法看到错误信息。

-j8代表使用的CPU线程数量,例如4C8T的CPU可是使用8个线程提高速度,使用时有时会出错,可以改成-j1或者不加这个参数。

Node:其他make指令

  • make defconfig 运行该命令后,会将所有配置选项恢复到OpenWrt默认的时候

  • make clean 此命令将删除 bin 目录和 build_dir 等目录下所有的编译后产生的文件

  • make distclean 此命令会清除所有的编译文件和已经下载的软件包

  • make package/system/uci/clean V=s 编译指定的软件包

  • make download 下载使用到的软件包

编辑

7、固件

当OpenWrt编译完成后,生成的固件位于源码目录下的

bin/bin/ramips/openwrt-ramips-mt76x8-xxx-squashfs-sysupgrade.bin

编辑

U-Boot 编译


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

  $ git clone https://github.com/Ying-Yun/u-boot-mt76x8.git

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

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

如果没有安装openjdk,则安装JDK,如果已经安装,则省略这个步骤。

  $sudo apt-get install openjdk-7-jdk

进入u-boot-mt76x8源码

  $ cd u-boot-mt76x8

进入到目录后,首先对u-boot进行配置,

  $ make menuconfig

配置如下 

NOTE:根据自己模块内存大小修改内存大小

配置完成后,进行编译

  $ make clean
  $ make

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

  $ ls uboot.bin

烧写到网关设备,界面如下所示: 

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值