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介绍的更多相关文章

  1. openwrt教程 第一章 物联网&amp;openwrt开发概述

    1.1 我们的宗旨 互联网.移动互联网的时代已经过去,物联网的时代已经来临!2014年,是物联网元年,2016年,物联网将达到高潮!为了迎接该潮流,我们工作室(F403科技创意室:http://f40 ...

  2. 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制

    安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程?  详细代码介 ...

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

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

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

    Alljoyn瘦客户端库介绍(上) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设 ...

  5. 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤

    一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...

  6. 【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板

    烧写bin文件到开发板的方式有很多种,我采用的是通过web页面直接上传文件的方式 首先通过浏览器登陆路由器(192.168.1.1),作者的开发板已经烧好了OpenWrt并且可以通过Luci登陆,所以 ...

  7. 【OpenWRT】【RT5350】【一】OpenWrt开发环境搭建

    [宿主机构建] 本人电脑配置如下: CPU: intel 酷睿 i3 3.3G 双核 内存: 金士顿 8G 硬盘:希捷 1TB 7200rpm 操作系统:win7  旗舰版 64位 OpenWrt是在 ...

  8. CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记

    一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3,  针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...

  9. 360路由器刷openwrt、不死uboot、双系统 、wifi中继

    该类教程网上有很多,但是很多不全,给小白用户造成了很多困扰.我也是按照网上的教程刷了半天,才熟悉了是怎么个回事.这里整理成教程. 注意: 请看教程步骤走,不要跳跃性刷机.不懂的术语.软件,若本文无介绍 ...

随机推荐

  1. 怎么使用pipenv管理你的python项目

    原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 翻译者:Jiong 在thought ...

  2. cordova相关

    官网 安装nodejs 常用命令: $ npm install -g cordova //安装cordova $ cordova create [project name] //创建工程 $ cord ...

  3. Pro Git - 笔记2

    Git Basics Getting a Git Repository Initializing a Repository in an Existing Directory For Linux: $ ...

  4. Java判断数字的奇偶

    package anli; import java.util.Scanner; public class jiou { public static void main(String[] args){ ...

  5. 第5讲——cin处理字符输入

    本来这一讲应该是while.for.if之类的,但是,我们可是学过C的男人,再浪费时间搞这个??? 还不如学点C++中的新知识. cin对象支持3种不同模式的单字符输入,其用户接口各不相同. 下面我们 ...

  6. lintcode-96-链表划分

    96-链表划分 给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前. 你应该保留两部分内链表节点原有的相对顺序. 样例 给定链表 1->4->3->2-&g ...

  7. jquery在页面加载完成后再append的元素事件无效问题

    最近遇到一个问题,jquery在页面加载完成后再append的元素,append元素上有onclick事件,但是在append的元素上怎么点击都不会触发onclick事件.就如: <ul cla ...

  8. 微信小程序开发中怎么设置转发(分享)的信息

    如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({ onShareAppMessage: funct ...

  9. 微信小程序小程序使用scroll-view不能使用下拉刷新的解决办法

    <scroll-view class="movie-grid-container" scroll-y="true" scroll-x="fals ...

  10. 详细介绍javascript中的几种for循环的区别

    偶然间见到了forEach循环,感觉很新奇,就研究了一下,顺带着把js中的几种for循环做了一个比较. 首先,简单说一下,js中一共大概有四种for循环:(1).那种简单常见的for循环:(2).fo ...