栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

OpenWrt固件编译

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号