完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
什么是软路由和OpenWrt?
与软路由相对的是我们平时家用的路由器,软路由是指利用台式机或服务器等设备配合软件形成的路由解决方案,主要靠软件的设置,达成路由器的功能;而硬路由则是以特有的硬设备,包括处理器、电源供应、嵌入式软件,提供设定的路由器功能。 OpenWrt便是软路由系统中的十分受欢迎的一员,它是一款高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、路由器等设备中。 |
|
|
|
OpenWrt可以实现的功能
得益于高度的可定制和可扩展性,OpenWrt软路由除了可以完成一般家用路由器的功能之外,还可以实现:端口转发、内网穿透、4G联网、FTP服务器等更多强大功能。 如在笔者的“基于4G模块的远程采集控制与数据传输的实现”的项目中,以微雪SIM7600 CE 4G模块、树莓派4B(2GB RAM)、5口千兆交换机模块为硬件;以OpenWrt为系统搭建了一台软路由,该软路由中通过控制4G模块联网完成数据传输;通过配置端口转发实现了本地多级路由下的设备互通;通过Frp内网穿透客户端结合云服务器端Frp内网穿透服务实现异地组网进而实现项目的远程开发、调试、部署,远程访问设备终端等。 |
|
|
|
OpenWrt的编译和定制
对于有一定Linux使用基础的用户来说,OpenWrt的编译已经十分便捷。本次编译采用Lean的Github项目源码,项目源码链接为: 编译过程大致分为:
首先编译环境建议选择Ubuntu 1804操作系统,同时必须具备全局科学上网环境,可以选择谷歌云、Github Action、Vmware虚拟机等等,在此基础上,以非Root用户登录终端并输入以下命令: sudo apt-get -y update 获取最新的软件列表sudo apt-get -y upgrade 升级软件到最新的版本sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget swig rsync 安装编译环境依赖git clone https://github.com/coolsnowwolf/lede 拉取项目源码到本地cd lede/ 进入项目文件夹./scripts/feeds update -a 更新组件./scripts/feeds install -a 下载组件勾选配置信息 make menuconfig 勾选系统基本信息并配置所需的功能 这一步只需在以下的图形界面下按空格或回车勾选相应选项即可完成配置。 以本次编译的系统为例,首先选择树莓派 4B对应的CPU型号等信息: 之后,由于勾选对应的CPU型号后,配置文件中会加载一部分默认配置,这部分配置已经包含了最基础的路由器功能,如DHCP、防火墙、WIFI等,因此我们只需要在此基础之上勾选我们额外需要的功能即可。 添加对于3G、4G 等USB外接设备的支持 本文使用微雪电子SIM7600CE 4G模块其外观如下图所示 中明确说明了如何构建支持3G、4G的系统镜像,但由于官方文档老旧,部分选项的路径已经失效,本文重新整理了全部软件包的路径,使用者只需要按照如下路径全部双击空格以进行勾选即可。 Kernel ModulesUSB Support<*> kmod-u***2<*> kmod-u***-ohci<*> kmod-u***-uhci<*> kmod-u***-acm # For ACM based modem, such as Nokia Phones<*> kmod-u***-net # For tethering and rndis support(以下为官方指定的部分,建议直接全部勾选) <*> kmod-u***-net-asix...... Kernel module for USB-to-Ethernet Asix convertors <*> kmod-u***-net-cdc-eem..................... Support for CDC EEM connections -*- kmod-u***-net-cdc-ether.............. Support for cdc ethernet connections <*> kmod-u***-net-cdc-mbim..................... Kernel module for MBIM Devices -*- kmod-u***-net-cdc-ncm..................... Support for CDC NCM connections <*> kmod-u***-net-cdc-subset...... Support for CDC Ethernet subset connections <*> kmod-u***-net-dm9601-ether........ Support for DM9601 ethernet connections <*> kmod-u***-net-hso.. Kernel module for Option USB High Speed Mobile Devices <*> kmod-u***-net-ipheth..................... Apple iPhone USB Ethernet driver <*> kmod-u***-net-kalmia................... Samsung Kalmia based LTE USB modem <*> kmod-u***-net-kaweth.. Kernel module for USB-to-Ethernet Kaweth convertors <*> kmod-u***-net-mcs7830 <*> kmod-u***-net-pegasus <*> kmod-u***-net-qmi-wwan.................................... QMI WWAN driver <*> kmod-u***-net-rndis......................... Support for RNDIS connections <*> kmod-u***-net-sierrawireless.......... Support for Sierra Wireless devices <*> kmod-u***-net-smsc95xx. SMSC LAN95XX based USB 2.0 10/100 ethernet devices<*> kmod-u***-serial..................... Support for USB-to-Serial converters(以下为官方指定的部分,建议直接全部勾选)<*> kmod-u***-serial-ark3116........ Support for ArkMicroChips ARK3116 devices <*> kmod-u***-serial-belkin........................ Support for Belkin devices <*> kmod-u***-serial-ch341.......................... Support for CH341 devices <*> kmod-u***-serial-cp210x........... Support for Silicon Labs cp210x devices <*> kmod-u***-serial-cypress-m8.............. Support for CypressM8 USB-Serial <*> kmod-u***-serial-ftdi............................ Support for FTDI devices <*> kmod-u***-serial-ipw.................... Support for IPWireless 3G devices <*> kmod-u***-serial-keyspan........ Support for Keyspan USB-to-Serial devices <*> kmod-u***-serial-mct.............. Support for Magic Control Tech. devices <*> kmod-u***-serial-mos7720.............. Support for Moschip MOS7720 devices <*> kmod-u***-serial-motorola-phone............ Support for Motorola u*** phone <*> kmod-u***-serial-option................... Support for Option HSDPA modems <*> kmod-u***-serial-oti6858...... Support for Ours Technology OTI6858 devices <*> kmod-u***-serial-pl2303............... Support for Prolific PL2303 devices <*> kmod-u***-serial-qualcomm................. Support for Qualcomm USB serial <*> kmod-u***-serial-sierrawireless....... Support for Sierra Wireless devices <*> kmod-u***-serial-ti-u***...................... Support for TI USB 3410/5052 <*> kmod-u***-serial-visor............... Support for Handspring Visor devices -*- kmod-u***-serial-wwan..................... Support for GSM and CDMA modemsNetwork <*>chat <*>pppNetwork WWAN <*>uqmi <*>umbim <*>comgtUtilities <*>u***-modeswitchLuci Collections <*> luci Applications <*> luci-app-mwan3 <*> luci-app-qos Protocols <*> luci-proto-3g -*- luci-proto-ppp<*> luci-proto-qmi添加USB3.0转千兆网口有线网卡支持 (具体型号依据手中的有线网卡型号而定,本次采用下图型号) Kernel ModulesUSB Support<*> kmod-u***-u***3<*> kmod-u***-net-asix<*> kmod-u***-net-asix-ax88179添加Frp客户端 Luci Applications <*> luci-app-frpc勾选好需要的功能之后,保存配置文件并退出即可,此时在lede/目录下会生成一个名为.comfig的配置文件,该文件中包含了以上步骤中的宣布配置参数,可下载并保存,日后需要再次编译相同配置的系统镜像或在此基础上增添新的功能时,可以直接将将旧的.config文件放到lede/目录下来节省重新配置旧参数的时间。 使用screen防止编译过程终端会话意外断开 在开始编译之前,由于考虑到初次编译时间长达数小时,为了避免编译中途终端连接断开等情况的发生,强烈建议使用screen开启一个新的会话,这样即使会话断开,编译任然会继续在后台运行,保证编译中途不会中断,当然也可以选择全程都在screen创建的会话下进行,这样更加保险。 安装和使用screen可在终端输入命令: sudo apt-get install screen -y 安装screensudo screen -S compile 新建一个名为 compile 的会话sudo screen -d compile 断开处于连接状态的会话(意外退出的会话被锁死,使用此命令将其释放后即可重连)sudo screen -r compile 重连会话编译OpenWrt系统镜像 使用screen创建好会话后进入lede/目录下输入命令: make -j8 download V=s && make -j1 V=s 下载dl库并开启带线程编译 获取镜像 编译成功后的镜像位于lede/bin/target……目录下,如树莓派4B的镜像目录为:lede/bin/target/bcm27xx/bcm2711,根据型号自行选择对应的目录找到镜像下载到本地即可。 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:57 , Processed in 0.971340 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号