文章中相关知识整理自网络。
1:WAN和LAN是什么?
WAN是英文Wide Area Network的首字母所写,即代表广域网; ==》对外
LAN则是Local Area Network的所写,即本地网(或叫局域网)。 ==》对内
====》都连接在LAN口上,把宽带路由器当交换机用。
2:openwrt是什么?
OpenWrt 项目是一个针对嵌入式设备的Linux操作系统。
对于开发人员来说,OpenWrt 是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。
哪些有趣且强大的插件:https://zhuanlan.zhihu.com/p/103121214
广告屏蔽大师 Plus +;上网时间控制;解锁网易云灰色歌曲;应用过滤(OpenAppFilter);动态 DNS;SmartDNS 服务器;网络唤醒;Shairplay;Turbo ACC 网络加速;ser2net
3:旁路由
指挂靠在主路由网络下的一个旁系网络,他分担了一部分路由器的功能,因此被大众简称为「旁路由」,本质上它是一个通过 LAN 口与主路由连接的一个客户端设备。
一种是发烧友在软路由系统中,通过虚拟化的形式,安装两套路由系统,它们各司其职,在软件层面上形成了主旁网络架构。 另一种就是通过使用两个实体路由器,通过连接和配置打造的硬件形式上的主旁网络结构。 虽然他们形式上有一定区别,但这种双路由系统(硬件或虚拟化)的网络布局,殊途同归,最终目的都是为了将家庭网络带宽进行合理的分配利用,并提供更强的扩展性,以实现更多强大的功能
4:如何在虚拟机VMWare中安装openwrt?
理解:
1:openwrt是一套源码,通过源码,通过make menuconfig 选择自己适合的机型,选择目标文件类型==》这里选择虚拟机
然后通过生成的VMDK文件直接用虚拟机取。
2:直接去论坛或者其他地方,取别人编译好的固件,进行安装。
5:交叉编译
在一个平台上生成另一个平台上的可执行代码。
1:在项目的起始阶段,目的平台尚未建立,因此需要做交叉编译,以生成我们所需要的bootloader(启动引导代码)以及操作系统核心;
2:当目的平台能启动之后,由于目的平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。
要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
常见的交叉编译例子如下:
1、在Windows PC上,利用ADS(ARM开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。
2、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码
如何搭建openwrt交叉编译环境?
1: 下载SDK包,【参考链接】(如何选择自己硬件对应的openwrt?)
2:设置相关的环境变量,【参考】(export PATH 和export STAGING_DIR)
3:通过设置编译用的第三方库,进行编译。
交叉编译环境的配置:
1:下载SDK包,编译toolchain进行交叉编译环境的安装
2:直接去官网取对应的Toolchain版本,进行交叉编译环境的设置和安装。
解释包的含义:
如上图:
第一个黄线是编译固件要用的ImageBuilder,是编译完整固件用的,我们只编译ipk软件包所以用不到,
第二个黄线就是我们要用的SDK文件了 ==》里面包含有交叉编译环境用到的toolchain,以及可以用make menuconfig 配置生成自己想要的环境。
第三个和第四个都是纯净版的OP系统,可以下载然后刷到wndr4300路由器里面,一个是原有OP网页刷,一个是原版或者tftp刷的固件。刷入这个固件然后再opkg安装我们编译出的ipk包就具备相关功能了。