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
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OpenWrt是一个基于Linux的嵌入式操作系统,可以运行在各种路由器和嵌入式设备上。OpenWrt固件编译是指将OpenWrt源代码编译成可在特定硬件平台上运行的固件的过程。 首先,我们需要准备编译环境。在Ubuntu或其他基于Debian的发行版上,可以通过以下命令安装所需的软件包: ``` sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget ``` 接下来,我们需要获取OpenWrt的源代码。可以使用以下命令来获取最新的OpenWrt源代码: ``` git clone https://git.openwrt.org/openwrt/openwrt.git ``` 获取源代码后,进入源代码目录: ``` cd openwrt ``` 在配置编译选项之前,可以运行以下命令更新源代码: ``` ./scripts/feeds update -a ./scripts/feeds install -a ``` 接下来,我们需要选择目标平台和配置编译选项。可以通过以下命令启动配置界面: ``` make menuconfig ``` 在配置界面中,可以选择目标平台、应用软件包、内核和其他编译选项。选择完成后,保存配置并退出。 最后,开始编译固件。可以运行以下命令来启动编译: ``` make -j4 ``` 编译过程可能需要一些时间,具体时间取决于计算机性能和配置选项。编译完成后,在`bin/targets`目录下可以找到编译生成的固件文件。 总之,OpenWrt固件编译的过程包括准备编译环境、获取源代码、配置编译选项和开始编译编译完成后,可以得到适用于特定硬件平台的OpenWrt固件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值