文档章节

如何搭建OpenWRT编译环境

杨树苗
 杨树苗
发布于 2016/11/09 17:36
字数 1430
阅读 80
收藏 1
点赞 0
评论 0

 

本教程最新版本:V1.4   20161107更新。

1工具

台式电脑或笔记本

Ubnutu Desktop 16.10

VMware Workstation 12.5

确保网络持续稳定、可靠、快速

2基础软件安装

如果不会安装/设置Windows、VMware Workstation、Ubuntu等基础软件者,请无需往下浏览。

Windows 安装、设置:

确保你的Windows操作系统稳定、硬件配置较高,且运行流畅,建议采用Windows 7或者Windows 10操作系统、安装,并且确保电脑可以正常上网。为避免OpenWRT固件在编译过程中Windows进入屏保、休眠、关闭硬盘等情况,从而引起网络中断及固件编译无法联网等问题,建议关闭Windows屏保、休眠等设置。

 

 

VMware Workstation下载、安装:

请从VMware官方网站下载、安装最新版VMware Workstation 12.5及自行百度一下VMware Workstation 12.5在安装过程中所需要的序列号。

 

Ubnutu下载、安装、设置

1、请从Ubnutu官方网站下载最新版Ubnutu Desktop 16.10,在VMware Workstation 12.5安装Ubnutu16.10时,建议每一步均采用默认设置即可,分区建议不小于30G;

 

 

2、优选Ubnutu组件更新服务器,打开“System Settings”-“Software&Updates”

选择“Other”

 

点击“Select Best Server”,系统会根据你当前所在城市、宽带运营商、宽带质量、网速等综合条件优选出最佳服务器,优选出最佳服务器后,点击“Choose Server”。

 

Password:输入Ubuntu开机登录密码,然后点“Authenticate”

 

3、Ubuntu屏保设置:

因OpenWRT固件编译过程中涉及的环节较多、时间较久等因素,为避免OpenWRT固件在编译过程中Ubuntu进入屏保、休眠、关闭硬盘等情况,从而引起的网络中断及固件编译无法联网等问题,建议关闭Ubuntu屏保设置。

 

 

 

注意:本节没有特殊要求的参数设置,Ubuntu系统中建议采用默认设置即可。

3Ubuntu平台所需组件安装

在编译之前我们先要搭建环境,用Ctrl+Alt+T,打开如下图Shell模式,在Ubuntu Shell模式下安装OpenWrt固件编译环境所需要的如下组件,以下组件安装命令均在根目录下运行,务必确保Ubuntu可以正常上网,否则更新无法完成:

 

sudo apt-get update(用于更新Ubuntu软件仓库中软件包的索引文件,提示输入密码时,请输入Ubuntu开机登录密码)

sudo apt-get install libssl-dev

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install autoconf

sudo apt-get install texinfo

sudo apt-get install sharutils

sudo apt-get install ncurses-term

sudo apt-get install libncurses5-dev

sudo apt-get install zlib1g-dev

sudo apt-get install subversion

sudo apt-get install gawk

sudo apt-get install git-core

sudo apt-get install original-awk

sudo apt-get install gcc

sudo apt-get install binutils

sudo apt-get install bzip2

sudo apt-get install python

sudo apt-get install perl

sudo apt-get install grep

sudo apt-get install tlp

备注:如果以上或者其他某个软件无法正常安装,请在下图将服务器切换至Ubnutu美国服务器,并继续安装未完成的组件,如下图:

 

4下载OpenWRT固件源代码并登录配置目录

 

下载最新版OpenWRT固件源代码

git clone git://git.openwrt.org/15.05/openwrt.git(根据电脑硬件性能、网速等综合因素大约需要10分钟左右,如果在更新过程中因某些因素导致的中断,请重新运行此命令)

 

登录OpenWRT固件编译配置目录

cd openwrt

 

注意:接下来的所有命令都在/openwrt目录下运行

5更新、安装OpenWRT固件系统软件包

./scripts/feeds update -a(更新OpenWRT固件系统软件源,文件较大,请耐心等待。根据电脑硬件性能、网速等综合因素大约需要15分钟左右,如果在更新过程中因某些因素导致的中断,请重新运行此命令sudo apt-get install命令安装即可)

 

./scripts/feeds install -a(安装OpenWRT固件所有软件包)

 

make defconfig(测试编译环境,如果在测试编译环境时,提示缺少某些组件,请用sudo apt-get install命令安装即可)

 

6进入OpenWRT固件编译环境

 

输入如下命令,进入编译环境,如果一切正常,会出现下图固件配置菜单,可以选择要编译的硬件平台、型号,还能选择固件中要添加的功能和组件,至此编译环境就搭建好了。

make menuconfig

 

 

在OpenWRT固件编译平台选择好固件的运行硬件平台、型号、固件中要添加的功能和组件等选项后,选择“Save”-“Exit”退出OpenWRT固件编译平台,使用如下命令生成最终所需要的固件:

 

               make V=s(首次整个编译过程请确保网络稳定、可靠、网速快,并请耐心等待。根据电脑硬件性能、网速等综合因素大约需要3-5小时左右)

 

注意:在编译固件时,提示缺少某些组件,请用sudo apt-get install安装,如果提示缺少某个软件包,因缺少的软件包可能处于国内稳定性不好或者国外的服务器,可以在百度上搜索下,用迅雷等断点续传软件下载到/openwrt/dl目录,并重新运行make V=s即可。

因OpenWRT固件技术处于高速发展过程中,未来本教程也会根据OpenWRT固件源代码的更新、广大网友的实际使用和反馈情况,持续、及时的更新本教程,请定期刷新本教程,以便获得更多有关OpenWRT固件编译环境的技术。

 

版权声明:深圳市华森通讯技术有限公司(http://www.wuasun.com)倾情奉献,如要转载务必注明

© 著作权归作者所有

共有 人打赏支持
杨树苗
粉丝 1
博文 1
码字总数 1430
作品 0
西安
其他
嵌入式linux系统的开发——SPI Bit-banging方法的实现

前言 SPI(Serial Peripheral Interface)是一种应用广泛的通信总线,通常微处理器上会集成SPI模块以支持该通信协议,输出正确的信号的时序,并保证时序间同步,实现与外部SPI设备正常通信。...

元宵大师 ⋅ 06/07 ⋅ 0

配置overlay(overlayfs)根目录挂载构建debian无盘工作站

据wikipedia描述overlayfs在2014年融入linux内核,其轻量和易用特性已在openwrt中应用,但在debian发行版本中还没有直接使用overlayfs挂载根目录的启动选项。增加启动选项需对启动initrd进行...

btvnlue ⋅ 05/24 ⋅ 0

Alljoyn瘦客户端库介绍(官方文档翻译 下)

由于其他事情耽误,这个翻译现在才完成。接上篇—— 4 瘦客户端核心库架构   由于AllJoyn瘦客户端核心库(AJTCL)必须运行在那些功耗受限、计算能力有限、资源紧缺的设备上,因此它无法像运...

ai物联网 ⋅ 2014/09/01 ⋅ 0

Snappy已支持最新的Nvidia专有图形驱动程序

导读 Canonical发布了Snapd的新维护版本,Snapd是其Snappy技术的主要组件,使基于Linux的操作系统能够支持通用的Snap应用程序,上周末,为最新的专有Nvidia驱动提供支持。 Snapd 2.32.2现在可...

linuxprobe16 ⋅ 04/25 ⋅ 0

支持 n2n 协议的手机 VPN 软件 - Hin2n

n2nvLTS n2n是一个支持内网穿透p2p的VPN项目,最初由ntop.org大神 deri@ntop.org, andrews@ntop.org开发并开源的项目,后由大神 https://github.com/meyerd继续做优化工作。我们的目的是在几...

Switch_阳 ⋅ 06/12 ⋅ 0

OpenWRT中使用无线网卡做中继器与AP热点

中继器与AP的实现 这里我们假定中继器完成下面这样的一个功能: Wired Network ---> Wireless Network ---> 上级无线路由器 即从外部插入一个网线,通过imx6UL上面的无线网卡将数据转发到上级...

sy373466062 ⋅ 2017/02/05 ⋅ 0

物联网技术周报第 86 期: 为认知 IoT 应用程序实现区块链

新闻 《微软推出主打安全性的 Project Sopris 低成本物联网设备》在“始终连接”的物联网世界,微软亦希望坚持保证安全性,并推出了一套名叫“Project Sopris”的低成本 IoT 设备。他们在首个...

雪花又一年 ⋅ 04/19 ⋅ 0

openwrt编译ifb.ko模块问题

开始时候怎么都编译不了ifb.ko模块 最后通过Kconfig发现 查看内核.config文件, CONFIGNETCLS_ACT=y make V=99 最后会发现内核里出现了ifb.ko...

Linux_woniu ⋅ 2017/12/13 ⋅ 0

OpenWRT添加无线USB网卡

说明 要完成网线网卡的驱动需要在内核中添加驱动,同时还需要将固件放入rootfs中正确的位置,如果需要固件的话。 内核驱动添加 因为内核中对常规的USB网卡均支持,所以直接添加即可, 例如下...

sy373466062 ⋅ 2017/02/04 ⋅ 0

OpenWrt中服务配置选项

dhcp网关上配置另一台机器的TFTP启动服务 /etc/config/dhcp /overlay/upper/etc/config/dhcp

btvnlue ⋅ 01/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 7分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

楠木楠 ⋅ 19分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 48分钟前 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 48分钟前 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部