文档章节

openwrt固件编译教程

Kent_0628
 Kent_0628
发布于 2015/11/11 16:00
字数 1183
阅读 841
收藏 5

        刚刚开始探索openwrt的时候,我从网上找了很多文档,在准备搭建固件编译环境的时候,根据网上的文档,从SVN上面checkout源代码,发现走到./scripts/feeds update -a更新拓展出现了错误,提示更新失败。以下是网上教程:

第一部分:搭建至此编译环境

1、安装Ubuntu(编译需要Linux环境),到其官网下载,版本根据自己所需选择即可。可以选择安装到虚拟机或者物理机,图形化安装而且是中文版,连安装都搞不定的,可以关闭本页面了;

2、切记不要改动软件源,同时按住Ctrl + Alt + T,调出终端;

3、逐条输入下列命令(及时验证是否安装成功):

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8

至此编译环境搭建完成。

第二部分:下载OpenWrt源码并编译

OpenWrt源码分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版,建议下载官方源码。下载前先在本地创建文件夹:

mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
选择你想要的版本然后执行下载命令,下载结束会显示版本号:

Trunk版下载命令:

svn co svn://svn.openwrt.org/openwrt/trunk/

Backfire版下载命令:

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

更新扩展,安装扩展:

注:根据教程一步步走下来都是顺利通过,但是走到下面更新扩展的时候,出现了问题。有部分的软件更新不了,我也找了很多其他教程,其他教程都跟这个教程大同小异。我看了feeds.conf.default这个配置文件,发现更新拓展的SVN链接有google的地址,我个人猜测链接被屏闭了,导致这一步报错。

./scripts/feeds update -a
./scripts/feeds install -a
注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行svn update命令更新源码。

测试编译环境:

make defconfig
make prereq
到这里就可以开始编译自己的固件了。进入定制界面:

make menuconfig

编译选项:

根据路由器情况,选择 Target System 和 Subtarget。如意云一代和极壹S的 Target System 均为 Ralink RT288x/RT3xxx 。对于Subtarget ,前者为 MT7620n based boards ,后者为 MT7620a based boards。其他选项根据个人喜好选择。一般来说要选中LuCI界面,选中中文语言包等等。

开始编译:

执行export FORCE_UNSAFE_CONFIGURE=1 && make -j3 V=s 进行编译。-j后面的数字是电脑物理CPU数量加一。V=s可以显示出编译的详细信息。首次编译大概需要几个小时的时间,编译时一定要联网。

错误排查:

编译失败,一般有两种情况:
1.代码下载链接失效。首次编译时,编译程序会实时从网上下载一些软件包的代码。如果下载链接失效,编译就会失败。这时需要根据软件包的名称,从网上自行下载,然后放在 openwrt/dl/ 目录下,执行 export FORCE_UNSAFE_CONFIGURE=1 && make -j3 V=s继续编译即可。
2.软件包自身有问题。这时重新执行 make menuconfig ,取消对应软件包选中即可。这种情况比较少见,目前已知的有 tor 等。

编译成功,但没有生成固件。这种情况一般是因为选中的软件包过多,导致固件大小超过16MB。重新执行 make menuconfig,去掉一些软件包,重新执行编译即可。得到固件。在排除了所有错误后,现在终于得到了固件。对于如意云RY-1,固件在 openwrt/bin/ramips 目录下,形如
openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin



      以上是网上的教程,其实教程大多数都是正确,就是更新扩展这一步过不去,后来我在openwrt的官网发现他们提供github下载源码,我把SVN下载源码换成的git下载:

安装git软件包:

sudo apt-get update
sudo apt-get install git-core build-essential

获取openwrt源码:

git clone git://git.openwrt.org/openwrt.git

再执行更新扩展,安装扩展:

注:在github下载源码的feeds.conf.default里面的更新扩展链接已经没有指向google,基本都是指向github,所以更新扩展这一步也能顺利执行了

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












© 著作权归作者所有

Kent_0628
粉丝 2
博文 21
码字总数 5335
作品 0
广州
私信 提问
OpenWrt系列教程汇总 & OpenWrt简体中文Wiki

OpenWrt系列教程汇总 OpenWrt简体中文Wiki 快速导航

AlphaJay
2011/07/26
42.7K
1
Ubuntu 12.04下编译Openwrt教程 推荐

搭建编译环境 Ubuntu x64 12.04下的命令: sudo apt-get install subversion sudo apt-get install git sudo apt-get install flex sudo apt-get install g++ sudo apt-get install gawk su......

枫影Xda
2012/10/30
9.1K
1
Hiwifi 刷 openwrt

参考地址: https://code.google.com/p/openwrt-hiwifi/ 极路由HC6361 OpenWrt固件补丁 (HiWiFi tw150v1) 说明 · OpenWrt官方源码自r40975起(2014/06/02)支持HC6361,本项目只做基于官方版...

老汉-憨憨
2015/01/11
10.8K
2
极路由4刷OpenWrt(LEDE)

申请开发者模式 登录路由器后台 进入插件中间 选中路由器信息 申请开发者权限 安装开发者插件 刷 Bootloader 下载 的 Breed 通过SSH登录路由器 (必须安装开发者插件,端口 账号 密码 ) 通过...

dingdayu
02/24
1K
0
linkit smart 7688 折腾

这货是联发科出的物联网 开发版 ,CPU是 580MHZ 的 MIPS 处理器,默认的固件是 openwrt ,可以当作一个路由器来用了 ,,2015 年发布, 2016 年更新了一版固件 现在应该是没人管的状态了 。 ...

sincoder
2017/11/06
96
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 安装 mysql5.7 版本(全)

centos 安装 版本说明 :centos7,mysql5.7 ,不是 centos7 可能有些命令不兼容 安装 mysql-server # 下载并安装 mysql yum wget -i -c http://dev.mysql.com/get/mysql57-community-relea......

sanri1993
10分钟前
1
0
Spring3.x升级到Spring4.x-5.x时关于MappingJacksonHttpMessageConverter的报错问题

在Spring4.x或者以上的版本强使用(不然会报错): org.springframework.http.converter.json.MappingJackson2HttpMessageConverter 如果是Spring4.0获者以下的版本可以使用MappingJacksonH...

code-ortaerc
13分钟前
1
0
OSG 渲染状态污染到其它节点怎么解决?

在根节点补上初始状态

洛克人杰洛
15分钟前
1
0
grid 布局 设置行列间距

本文转载于:专业的前端网站➪grid 布局 设置行列间距 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="widt......

前端老手
27分钟前
2
0
spring-data-elasticsearch 和 Jackson 配合使用的bug

下面先简单描述项目。 项目依赖: dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch', version: '2.1.0.RELEASE'......

Landas
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部