从零开始学习OpenWrt完美教程

2023-11-15

Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的OS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G 的OS的源代码公开。2003年3月, Cisco迫于公众压力公开了WRT54G的源代码。此后就有了一些基于Cisco源码的第三方路由器固件,OpenWrt就是其中的一个。

OpenWrt的特点:

  • 可扩展性好,可以在线安装您所需要的功能,目前有1000多个功能包可选;
  • 是一台完整的Linux工作站,文件系统可读可写,便于开发者学习和实践;

 

  现在有越来越多的Maker开始折腾OpenWrt,但作为一个Maker新手来讲,在网上还是很难找到一份系统的入门级资料。查找资料很辛苦,而且OpenWrt的门槛相对较高,希望这篇文章所提供的从零开始学OpenWrt编译 + 刷机 + 使用教程能降低新手们的入门难度,当然,编译过程非必须,一般的路由都可找到可用的稳定固件直接刷机。

第一部分:搭建编译环境

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

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

3、输入下列命令:

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

至此编译环境搭建完成。

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

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

1 mkdir openwrt
2 sudo chmod 777 openwrt
3 cd openwrt

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

Trunk版下载命令:

Backfire版下载命令:

添加软件扩展包,将feeds.conf.default修改为feeds.conf:

1 cp feeds.conf.default feeds.conf

更新扩展,安装扩展:

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

注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行

1 svn update

命令更新源码。

测试编译环境:

1 make defconfig

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

1 make menuconfig

  如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。


  如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。

开始编译:

1 make

或者

1 make  V=99

或者

1 make -j V=99

make是编译命令,V=99表示输出debug信息,V一定要大写,如果要让CPU全速编译,就加上 -j 参数,第一次编译最好不带-j参数。

  编译过程保持联网(会从网上下载一些源码包),所以断网可能造成编译中断,编译所需时间与电脑CPU及网络环境有很大关系,第一次编译时间较久,快则半小时长则2、3个小时,之后的编译所需时间较短。编译完成后会在源码文件目录出现bin文件夹(如trunk/bin/XXXX),如果你手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin升级用的,在升级界面升级即可。进到文件夹找到你需要的固件传出(通过邮箱、网盘、U盘等),开始刷机吧。

第三部分:将OpenWrt刷入路由器

  要在路由器上使用OpenWrt,首先要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:

  • Web上传固件更新
  • PFTP上传固件更新
  • 编程器写入固件

 

具体型号的路由器适用于哪种或哪几种方法,需自行尝试。

第四部分:开始使用OpenWrt

要对OpenWrt进行配置,一般有两条途径:

  • SSH登录通过命令行控制
  • Web登录通过Web界面设置

 

  首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。在Windows下面telnet和SSH登录可以使用Putty,在Linux或Mac下可分别使用如下命令:

1 ssh –l root 192.168.1.1 #Linux
2 ssh root@192.168.1.1 #Mac


一般指令与常见Linux发行版相同,但是OpenWrt使用自己的包管理器:opkg,使用“opkg –help”查看帮助信息。以下是一些常用操作命令:

1 opkg update #更新软件包列表
2 opkg install  #在线安装软件包
3 opkg remove  #移除软件包

  登录Web管理界面,前提是该OpenWrt系统中要安装了Web界面,一般是Luci,登录方式与普通路由器无异,打开浏览器,输入路由器IP即可进入登录界面,OpenWrt的默认IP是192.168.1.1。


  到此,OpenWrt的大门已为你敞开。接下来,开始尝试利用OpenWrt实现更多智能应用吧,比如单号多拨榨取运营商带宽、绑定域名远程控制、挂载大容量硬盘、搭建BT下载机、搭建网络摄像头、Samba/DLNA家庭NAS共享、私有云同步、FTP、个人网站/服务器…

http://www.tigeek.cc/?p=150


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始学习OpenWrt完美教程 的相关文章

  • openwrt opkg错误的问题解决办法之一

    解决方法 echo nameserver 114 114 114 114 gt tmp resolv conf rm f var lock opkg lock opkg update
  • Openwrt编译报错 TCP Fast Open is not available for client mode 的解决办法

    报错信息 configure error TCP Fast Open is not available for client mode please rerun without enable tfo client gmake 3 Makef
  • Buildroot用户指南

    第一章 关于Buildroot Buildroot是一个包含Makefile和修补程序 patch 的集合 这个集合可以使你很容易的为你的目标构建交叉工具链 cross compilationtoolchain 根文件系统 root fil
  • OPENWRT中SSH免密钥登陆(详细步骤)

    通过使用ssh keygen生成公钥 在两台机器之间互相建立新人通道极客 假设本地机器是client 远程机器为server 1 使用ssh keygen生成rsa keygen 在这里会覆盖以前生成的 ssh id rsa文件 请提前做好
  • (N1盒子) Openwrt 下 docker 容器访问互联网故障排除

    环境 硬件 N1盒子 Openwrt版本 openwrt flippy 60 o 情况描述 先是跑了个运行php的docker容器 日志里报错信息为 cURL error 7 Failed to connect to 域名 port 端口号
  • openwrt之initramfs-kernel

    在下载openwrt系统时 经常能看到initramfs kernel bin squashfs factory bin squashfs sysupgrade bin等结尾的文件 factory适用于从原厂系统刷到openwrt sysu
  • 青龙脚本 小黄鸟配合虚拟机抓变量 软件集

    鉴于很多青龙脚本变量 真机很难抓到 需要小黄鸟配合虚拟机抓变量 为方便网友 把相关3个软件分享 以单个文件形式 1 小黄鸟 https wwm lanzouy com i5vWT01qi6na 2 虚拟机 https wwm lanzouy
  • 基于WR703N路由器的WIFI机器人

    可以说 wifi机器人是一个比较成熟作品了 特别是使用wr703制作wifi机器人的有很多例子 因为1 其体积小 2 实时获取视频相比STM32容易 STM32F1系列性能不够 使用OV系列的摄像头较为吃力 3 可以使用路由器连接外网 使用
  • 703n无法进入路由管理界面reset无效重刷方法

    现在没法接网线获取不到地址 winscp也登不了 请问除了ttl线外不拆机能重刷吗 安全模式恢复 具体方法如下 网线连接电脑和703n 设置电脑ip地址为192 168 1 2 掩码默认 网关192 168 1 1 电脑 gt 开始 gt
  • OpenWrt系统无法进入Luci解决办法之一

    当在OpenWrt系统重启后 打开Luci后台时有时可能会遇到以下错误报告 usr lib lua luci dispatcher lua 577 bad argument 1 to pairs table expected got nil
  • openwrt调试用到的

    PC间文件共享 python3 m http server 在共享的电脑上 打开浏览器 直接输入 serverip 8000 NFS Ubuntu PC端 sudo apt get install nfs kernel server sud
  • opkg 更新软件

    opkg 不同的版本存在不同的配置文件 一般常用的是 etc opkg conf etc opkg customfeeds conf 和 etc opkg distfeeds conf三个 这三个配置文件将会影响opkg运行时软件资源的取向
  • openwrt上opkg更新报错"opkg_download: Failed to download ............."

    开始搞op的时候 看到op竟然可以直接安装一些插件 激动坏了 因为这东西对嵌入式的小系统来说简直不敢想 但是op就支持了 就是这么任性 好不容易编译了固件 按照网上的教程 telnet进去 首先opkg update 结果没有想象中的华丽更
  • OpenWrt后台管理启用https-OpenSSL

    OpenWrt 默认使用http 访问管理后台 这样不安全 推荐修改为 https 访问 加密数据传输 本文介绍配置步骤 1 卸载旧的ssl软件包 root OpenWrt opkg remove luci ssl px5g px5g mb
  • OpenWRT添加模块(一)Makefile和Config.in

    第一次接触到openwrt 真是被毁三观啊 不要说makefile 连源代码在哪里都找不到 知道嵌入式系统水深 没想到迈出第一步就没过了脖子 好在旁边有人指点 直接在芯片厂商提供的既有代码上做二次开发 项目进展倒也完全满足了前期计划的目标
  • 0-OpenWrt前菜

    前言 接触 op 已达四年 今年开始梳理整体所学 具体还参考了佐大的视频 对 op 缺乏系统知识的可以尝试 总体而言官方文档和源码是最好的教程 文章目录 OpenWrt Study uboot下升级固件 进入uboot 安装串口工具 安装t
  • 基于rt2860v2的wifi探针

    实验室有块7620a的板子 之前做过探针方面的试验 rt2860v2的驱动源码来自网络 探针是基于这份源码做的试验 最初在驱动中采集的数据是通过proc节点送到应用层 但是发现数据的实时性啥的不够好 改用了netlink方式 有感兴趣的同学
  • 5-Openwrt package Makefile

    Openwrt package Makefile 在 Openwrt main Makefile 章节里面有说道主Makefile会通过include package Makefile调用package下的Makefile package下
  • UCI提供给shell和lua使用的配置接口

    转自 http m blog csdn net article details id 47989493 1 uci提供给shell使用的配置借口有两套 1 config get用来读取一个config值 命令格式如下 config getv
  • make menuconfig报错:Build dependency: Please install Git (git-core) >= 1.6.5

    版本号为chaos calmer 15 05 1 注意 在执行make menuconfig的时候 会报一个错误 如下 Build dependency Please install Git git core gt 1 6 5 这是open

随机推荐

  • Binder机制详解(三)

    系列目录 Binder机制详解 一 Binder机制详解 二 文章目录 前言 一 Binder机制理解 二 应用层 1 Linux下的进程通信 2 binder通信 3 stub 4 流程总结 三 native层 1 Binder基于mma
  • 【计算机视觉

    文章目录 一 分割 语义相关 18篇 1 1 TomatoDIFF On plant Tomato Segmentation with Denoising Diffusion Models 1 2 CGAM Click Guided Att
  • k8s跨namespace复制pvc方式之一

    前言 今天发现小伙伴把mysql的pod部署到了default命名空间下 而且已经用了好久 而恰巧我们清理k8s空间 就把他pod删了 小伙伴很恼火 哈哈哈哈 default命名空间禁止部署业务pod 幸好pvc还在 那如何把default
  • 如何用 Github Pages 免费部署静态站点

    最低成本部署静态网站 所谓静态网站 是指它所有内容都是静态的 即预先编写好并存储在服务器上 访问者获取到的是事先准备好的静态文件 所以完全不需要购买服务器 除了域名之外 几乎不会有其他花销 我在构建五个静态站点的过程中 积累了大量经验 本篇
  • sql uniqueidentifier转换成varchar 数据类型

    塗聚文 Geovin Du DECLARE myid uniqueidentifier SET myid NEWID SELECT CONVERT char 255 myid AS char GO 塗聚文 Geovin Du declare
  • css背景图片和背景颜色一起显示

    如果需要在一个元素中既要显示背景图片也要显示背景颜色 我们都知道背景图片可以使用background image url 来指定 也可以省略image 但是如果我们既显示背景图片又要显示背景颜色 那么我们可以将background url
  • 使用grep 过滤logcat输出

    转自 http www xmumu com post 2012 02 15 15478732 如何过滤 adb logcat 输出 简介 本文介绍如何在shell 命令行中过滤 adb logcat 输出的几个小技巧 开发当中经常看到别人的
  • 自定义busybox文件系统存在的问题

    1 串口终端看不到命令行入口 只能在显示器端HDMI 看到 2 内核默认无法加载除了busybox openwrt文件系统 debian ubuntu无法加载
  • 缓冲转换流

    只用字符流时可能出现乱码 而转换流可以解决这个问题 再加上缓冲流又可以提高效率 import java io BufferedReader import java io BufferedWriter import java io FileI
  • C++&QT-day5

    作业 多重继承 1 定义一个学生类 Student 私有成员属性 姓名 年龄 分数 成员方法 无参构造 有参构造 析构函数 show函数 2 再定义一个党员类 Party 私有成员属性 党组织活动 组织 成员方法 无参构造 有参构造 析构函
  • python封装一个logging模块,可以直接使用

    记录下遇到的问题以及解决方法 日志等级 等级 等级代码 翻译 NOTSET 0 未设置 DEBUG 10 调试 INFO 20 信息 WARNING 30 警告 WARN 30 警告 ERROR 40 错误 CRITICAL 50 至关重要
  • 【论文阅读】Multimodal Fusion with Co-Attention Networks for Fake News Detection --- 虚假新闻检测,多模态融合

    本博客系本人理解该论文之后所写 非逐句翻译 预知该论文详情 请参阅论文原文 论文标题 Multimodal Fusion with Co Attention Networks for Fake News Detection 作者 Yang
  • 学深度学习可以做什么?可以从事什么工作?

    学习深度学习可以让您涉足人工智能领域的前沿 为各种领域带来巨大的创新和改进机会 深度学习的核心思想是通过多层神经网络模拟人类大脑的工作方式 从而实现对复杂数据的高级处理和理解 这为以下方面的应用提供了广泛的可能性 学深度学习可以做什么 首先
  • 分布式爬虫学习笔记

    安装python 虚拟环境 将使用python2 3的项目分开 1 安装virtualenvcmd cmd命令 pip install virtualenv 2 因为下载开发包很慢 所以下载开发包的第三方镜像 python豆瓣源 百度 安装
  • 精品,全网最详细-软件测试技术自动化测试总结,最屌详解看了默默卷起来

    目录 导读 一 自动化测试 二 自动化测试的意义 三 手工测试的局限性 四 自动化测试带来的好处 五 自动化测试的前提条件 1 需求变动不频繁 2 项目周期足够长 3 自动化测试脚本可重复使用 4 手工测试无法完成 六 自动化测试的方法 七
  • 使用Python编写一个多线程的12306抢票程序

    国庆长假即将到来 大家纷纷计划着自己的旅行行程 然而 对于很多人来说 抢购火车票人们成了一个令人头疼的问题 12306网站的服务器经常因为流量高而崩溃 导致抢票变得越来越严重异常困难 首先 让我们来了解一下12306抢票的难点 由于很多人都
  • 程序员的职级和薪酬体系

    今天我们要讨论一个程序员都关心的话题 学了程序到底能赚多少钱 老有人问学程序到底有没有前途 我应该是学前端呢 还是应该学大数据 程序员百万年薪到底有多难 其实 这些问题抛开兴趣的本质都在问一个问题 当了程序员能赚多少钱 我相信广大程序员的力
  • MYSQL lag()和lead()函数用法

    这两个函数是偏移量函数 可以查出一个字段的前面N个值或者后面N个值 配合over来使用 下面举例说明 新建表格如下 drop table if exists exam record CREATE TABLE exam record id i
  • Python——beautiful,requests,歌单(多线程)

    目录 一 定义三个函数方便之后调用 1 由url获取soup函数 2 传入soup 进具体信息进行解析 3 由图片链接保存到本地 二 生产 消费主模块 精华部分 1 获取一个分类下的所有歌单的id 相当于生产者 2 对每个id 获取歌单的详
  • 从零开始学习OpenWrt完美教程

    Cisco Linksys在2003年发布了WRT54G这款无线路由器 同年有人发现它的OS是基于Linux的 然而Linux是基于GPL许可证发布的 按照该许可证Cisco应该把WRT54G 的OS的源代码公开 2003年3月 Cisco