从零开始学习OpenWrt:刷机 + 使用 + 编译教程
liebian365 2024-10-31 15:19 7 浏览 0 评论
从零开始学习OpenWrt:刷机 + 使用 + 编译教程
(如果你也想试试OpenWrt,希望这篇介绍文章能帮度你到本文系新手入门(FLASH FIRMWARE用家)+高手入门(修改Firmware Coder),大家各取所需吧!) Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G 的IOS的源代码公开。2003年3月, Cisco迫于公众压力公开了WRT54G的源代码。此后就有了一些基于Cisco源码的第三方路由器固件,OpenWrt就是其中的一个。
摘要节点
OpenWrt的特点:
- 可扩展性好,可以在线安装您所需要的功能,目前有1000多个功能包可选;
- 是一台完整的Linux工作站,文件系统可读可写,便于开发者学习和实践;
现在有越来越多的Maker(也就是DIYer啦~WeMaker群组的人喜欢自称Maker)开始折腾OpenWrt,但作为一个Maker新手来讲,在网上还是很难找到一份系统的入门级数据。查找数据很辛苦,而且OpenWrt的门坎相对较高(Upsangel小语:如果不做编译调整FIRMWARE本门槛CODING,门坎还是很低的。。。),希望这篇文章所提供的从零开始学OpenWrt编译 + 刷机 + 使用教程能降低新手们的入门难度,当然,编译过程非必须,一般的路由都可找到可用的稳定固件直接刷机
第一部分:将OpenWrt刷入路由器
要在路由器上使用OpenWrt,首先要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:
- Web上传固件更新 (就是平时进入管理界面固件升级那个版面)
- tFTP上传固件更新 (把自己的计算机设置成为tFTP服务器)
- TTL写入固件
具体型号的路由器适用于哪种或哪几种方法,需自行尝试 (Upsangel小语:千万不要自行尝试!乱来的FLASH很有机会把路由变砖,正确的方法如下:
- 先上openwrt official website:寻找你的Router的支持情况,如果你的型号没有蛛丝马迹,要不放弃,要不自行编译(参考第三部分))如果是神州大陆的品牌,可以上openwrt.org.cn , right.com.cn,anywlan.com的论坛寻找
- 寻找合适的固件:最理想的情况是官网有atitude adjustment的完整支持
- 寻找刷入FLASH FIRMWARE的方法:通常你到了这一步都会找到合适的刷的方法了。。。)
第二部分:开始使用OpenWrt
要对OpenWrt进行配置,一般有两条途径:
- SSH或Telnet登录通过命令行控制 (就像DOS的打命令)
- Web登录通过Web界面设置
首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。在Windows下面telnet和SSH登录可以使用"butty",十分容易使用的,就像一个FTP软件,连接进去就出现命令行模式:
这是MW4530R刷入Haxc 大神的固件的SSH截图,如果没有用过命令行就不算用过Openwrt了
一般指令与常见Linux发行版相同,但是OpenWrt使用自己的包管理器:opkg,使用“opkg –help”查看帮助信息。以下是一些常用操作命令:
- opkg update //更新软件包列表
- opkg install //在线安装软件包
- opkg remove //移除软件包
登录Web管理界面,前提是该OpenWrt系统中要安装了Web界面,一般是Luci,登录方式与普通路由器无异,打开浏览器,输入路由器IP即可进入登录界面,OpenWrt的默认IP是192.168.1.1。在Luci里面操作是十分User Friendly了~
不能不说的是这款MW4530R,是国产的OPENWRT超性价比产品,硬件上复制的TPLINK WDR4700,软件上由Haxc大神领军,流行将8M ROM硬改成16M,配置大量应用,入选小U小贩的性价比之选。
到此,OpenWrt的大门已为你敞开。接下来,开始尝试利用OpenWrt实现更多智能应用吧,比如单号多拨榨取运营商带宽、绑定域名远程控制、挂载大容量硬盘、搭建BT下载机、搭建网络摄像头、Samba/DLNA家庭NAS
第三部分:搭建编译环境 和 进行编译
如果你的路由器不在支持范围之内,或者有这样那样的固件你想进行编辑,不妨动手试试制作属于自己的OpenWRT Firmware,你的目标是进入到下面这个编辑FIRMWARE的界面:
搭建编译环境
1、安装Ubuntu(编译需要Linux环境),到其官网下载,版本根据自己所需选择即可。可以选择安装到虚拟机或者物理机,图形化安装而且是中文版,连安装都搞不定的,可以关闭本页面了; 2、切记不要改动软件源,同时按住Ctrl + Alt + T,调出终端; 3、逐条输入下列命令(及时验证是否安装成功):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 |
(Upsangel小语:apt-get install 安装一大堆编程所需套件)至此编译环境搭建完成。
下载OpenWrt源码并编译
OpenWrt源码分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版,建议下载官方源码。下载前先在本地创建活页夹:
1 2 3 | 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修改为feeds.conf:cp feeds.conf.default feeds.conf 更新扩展,安装扩展:
- ./scripts/feeds update -a
- ./scripts/feeds install -a
注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行svn update命令更新源码。 测试编译环境:make defconfig 到这里就可以开始编译自己的固件了。进入定制界面:make menuconfig 如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。 如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。 开始编译:
- make
- make V=99
- 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盘等),开始刷机吧。 (原文载于 author LaRiver,edited by Upsangel)
相关推荐
- 快递查询教程,批量查询物流,一键管理快递
-
作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...
- 一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递
-
对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...
- 快递查询单号查询,怎么查物流到哪了
-
输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...
- 3分钟查询物流,教你一键批量查询全部物流信息
-
很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...
- 快递单号查询,一次性查询全部物流信息
-
现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...
- 快递查询工具,批量查询多个快递快递单号的物流状态、签收时间
-
最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...
- 快递查询软件,自动识别查询快递单号查询方法
-
当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...
- 教你怎样查询快递查询单号并保存物流信息
-
商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...
- 简单几步骤查询所有快递物流信息
-
在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...
- 物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号
-
最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...
- 连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息
-
快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...
- 快递查询教程,快递单号查询,筛选更新量为1的单号
-
最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...
- 掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析
-
在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...
- 从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息
-
在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...
- 物流单号查询,在哪里查询快递
-
如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)