OpenWRT介绍
1. 介绍
OpenWRT是一款第三方路由器固件, 其特别在于开放性, 如它的文件系统可写, 用户可在路由器上安装需要的第三方软件.
通过刷入OpenWRT, 我们可以完成如下事情
- DLNA共享
- 私有NAS/私有云存储(Seafile)
- ShadowSock翻墙
- 远程下载(transmission/transmission-web)
…
2. 设备选购
由于OpenWRT并非支持所有的路由器, 所以我们需要进行选择<Table of Hardware>中选择中意而且可购买到的设备
以下是在一些高性能的路由器
- Mercury MW4530R V1
- Netgear R7000(支持有限)
- Netgear R6300 v2(支持有限)
- TP-Link TL-WDR4310
3. 开发环境
除了直接使用固件, 比较常见的玩法是定制固件, 比如说你可能对某些功能不满意
如此一来就需要搭建OpenWRT开发环境
笔者使用的是CentOS7, 目前了解到需要安装如下软件
# yum install ncurses ncurses-base ncurses-libs gcc-c++
4. 源码下载
OpenWRT的源码在网上有多种获取方式
- OpenWRT Mirror
- OpenWRT Official
- OpenWRT on Github
下面介绍的是从github下载源码的方式
/* 主分支 */
$ git clone git://github.com/openwrt/openwrt.git
/* 15.05: Chaos Calmer */
$ git clone -b chaos_calmer git://github.com/openwrt/openwrt.git
/* 14.07 Barrier Breaker */
$ git clone -b barrier_breaker git://github.com/openwrt/openwrt.git
下载之后更新软件包
$ ./scripts/feeds update –a
$ ./scripts/feeds install -a
5. 配置编译
首先生成默认配置文件
$ make defconfig
这里我们以NETGEAR WNDR4300 v1为例
$ make menuconfig
首先在Subtarget项中选择Generic devices with NAND flash
随后在Target Profile中选择WNDR4300, 然后进行一些其他配置
最后就是编译
$ make or make V=99
or
$ make -j V=99
6. 刷入固件
编译完成后会在源码目录出现bin文件夹
如果你手里的路由是原版固件: 刷机选用xxx-factory.bin固件
如果路由已经刷了OpenWrt: 升级界面刷入升级固件xxx-sysupgrade.bin
不同设备厂商首次刷入OpenWRT的方式不尽相同, 需要参考具体设备
7. 使用管理
首次使用需要进入Web界面或者telnet登录设备后设置root密码
其web界面一般是LUCI, 地址为192.168.1.1
正确配置之后可以使用SSH登录进行管理
8. 包管理器
OpenWrt的包管理器是opkg
常用命令如下
# opkg update
# opkg install
# opkg remove
参考:
<OpenWrt>
<OpenWrt Cn>
<OpenWrt Dev>
<Developer Guide>
<OpenWrt Forums>
<Netgear Open Source>
<向openwrt源码添加水星MW4530R支持>
OpenWRT介绍的更多相关文章
- openwrt教程 第一章 物联网&openwrt开发概述
1.1 我们的宗旨 互联网.移动互联网的时代已经过去,物联网的时代已经来临!2014年,是物联网元年,2016年,物联网将达到高潮!为了迎接该潮流,我们工作室(F403科技创意室:http://f40 ...
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程? 详细代码介 ...
- Alljoyn瘦客户端库介绍(官方文档翻译 下)
由于其他事情耽误,这个翻译现在才完成.接上篇—— 4 瘦客户端核心库架构 由于AllJoyn瘦客户端核心库(AJTCL)必须运行在那些功耗受限.计算能力有限.资源紧缺的设备上,因此它无法像运行在通用型 ...
- Alljoyn瘦客户端库介绍(官方文档翻译)
Alljoyn瘦客户端库介绍(上) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设 ...
- 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...
- 【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
烧写bin文件到开发板的方式有很多种,我采用的是通过web页面直接上传文件的方式 首先通过浏览器登陆路由器(192.168.1.1),作者的开发板已经烧好了OpenWrt并且可以通过Luci登陆,所以 ...
- 【OpenWRT】【RT5350】【一】OpenWrt开发环境搭建
[宿主机构建] 本人电脑配置如下: CPU: intel 酷睿 i3 3.3G 双核 内存: 金士顿 8G 硬盘:希捷 1TB 7200rpm 操作系统:win7 旗舰版 64位 OpenWrt是在 ...
- CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记
一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3, 针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...
- 360路由器刷openwrt、不死uboot、双系统 、wifi中继
该类教程网上有很多,但是很多不全,给小白用户造成了很多困扰.我也是按照网上的教程刷了半天,才熟悉了是怎么个回事.这里整理成教程. 注意: 请看教程步骤走,不要跳跃性刷机.不懂的术语.软件,若本文无介绍 ...
随机推荐
- 怎么使用pipenv管理你的python项目
原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 翻译者:Jiong 在thought ...
- cordova相关
官网 安装nodejs 常用命令: $ npm install -g cordova //安装cordova $ cordova create [project name] //创建工程 $ cord ...
- Pro Git - 笔记2
Git Basics Getting a Git Repository Initializing a Repository in an Existing Directory For Linux: $ ...
- Java判断数字的奇偶
package anli; import java.util.Scanner; public class jiou { public static void main(String[] args){ ...
- 第5讲——cin处理字符输入
本来这一讲应该是while.for.if之类的,但是,我们可是学过C的男人,再浪费时间搞这个??? 还不如学点C++中的新知识. cin对象支持3种不同模式的单字符输入,其用户接口各不相同. 下面我们 ...
- lintcode-96-链表划分
96-链表划分 给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前. 你应该保留两部分内链表节点原有的相对顺序. 样例 给定链表 1->4->3->2-&g ...
- jquery在页面加载完成后再append的元素事件无效问题
最近遇到一个问题,jquery在页面加载完成后再append的元素,append元素上有onclick事件,但是在append的元素上怎么点击都不会触发onclick事件.就如: <ul cla ...
- 微信小程序开发中怎么设置转发(分享)的信息
如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({ onShareAppMessage: funct ...
- 微信小程序小程序使用scroll-view不能使用下拉刷新的解决办法
<scroll-view class="movie-grid-container" scroll-y="true" scroll-x="fals ...
- 详细介绍javascript中的几种for循环的区别
偶然间见到了forEach循环,感觉很新奇,就研究了一下,顺带着把js中的几种for循环做了一个比较. 首先,简单说一下,js中一共大概有四种for循环:(1).那种简单常见的for循环:(2).fo ...