openwrt 使用 usb 实现4G拨号上网功能
上班一年了,最近才觉得应该把学到的东西好好用博客展示出来,而不是排的整整齐齐的放在浏览器收藏夹里!也开始从头发一些博客,但是觉得手头上的工作,也应该及时总结,这篇文章是关于 openwrt 拨号上网的博客,具体关于openwrt的使用以后博客慢慢补吧。
废话不多说,进入主题!
本人使用的是MTK-7628的一块板子,因为需要,现在想通过usb外接上网卡的形式,实现4G拨号上网,并让内部的设备能向外互通。4G上网模块使用的是龙尚的U9300C,应该用的高通的基带,如果有读者和我类似的话,下面文章希望对大家有些帮助!接下来的内容可能需要一点openwrt使用的经验,如果不太懂的话我后续的博文会详细介绍的,我也是小白一个,现在就先看看吧!
修改内核USB驱动
- 访问下面位置,打开option.c文件
openwrt-sdk\build_dir\target-mipsel_24kec+dsp_uClibc-0.9.33.2\linux-ramips_mt7628\linux-3.10.14\drivers\usb\serial\option.c
- 搜索0x1c9e,下面增加定义
#define LONGSUNG_VENDOR_ID 0x1c9e#define LONGSUNG_U9300_PRODUCT_ID 0x9b3c#define LONGSUNG_U8300_PRODUCT_ID 0x9b05
- 修改数组
由于USB串口跟netdev都属于非标准CDC设备,需要防止NDIS口被USB串口驱动加载而导致无法正常加载NDIS口驱动。可以通过设置 interface 4 不加载 otpion 驱动
先在 option_ids[ ] 数组前面增加
static const struct option_blacklist_info longsung_u8300_blacklist = { .reserved = BIT(4),
};static const struct option_blacklist_info longsung_u9300_blacklist = { .reserved = BIT(4),
};
再搜索0xea42,下面增加数组
. . .
{ USB_DEVICE(LONGSUNG_VENDOR_ID, LONGSUNG_U8300_PRODUCT_ID),.driver_info = (kernel_ulong_t)&longsung_u8300_blacklist},
{ USB_DEVICE(LONGSUNG_VENDOR_ID, LONGSUNG_U9300_PRODUCT_ID),.driver_info = (kernel_ulong_t)&longsung_u9300_blacklist},
. . .
编译龙尚 Gobinet 驱动
下载驱动
访问Github下载Gobinet驱动,驱动地址:https://github.com/DiUS/sierra-gobi-drivers
git clone https://github.com/DiUS/sierra-gobi-drivers
创建应用
在 openwrt-sdk/package/ 目录下新建 gobinet目录存放程序, gobinet 目录中新建 src 目录用于存放源码,创建 Makefile文件描述相关配置,Makefile填入下面内容。
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mkPKG_NAME:=gobinet
PKG_RELEASE:=1include $(INCLUDE_DIR)/package.mkdefine KernelPackage/gobinetSUBMENU:=Other modulesTITLE:=Support Module for gobinetDEPENDS:=+kmod-usb-core +kmod-usb-netFILES:=$(PKG_BUILD_DIR)/GobiNet.koAUTOLOAD:=$(call AutoLoad,81,GobiNet)
endefdefine KernelPackage/gobinet/descriptionThis is a gobinet drivers
endefMAKE_OPTS:=ARCH="$(LINUX_KARCH)" \CROSS_COMPILE="$(TARGET_CROSS)" \SUBDIRS="$(PKG_BUILD_DIR)"define Build/Preparemkdir -p $(PKG_BUILD_DIR)/$(CP) -R ./src/* $(PKG_BUILD_DIR)/
endefdefine Build/Compile$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) modules
endef$(eval $(call KernelPackage,gobinet))
复制源码
将 sierra-gobi-drivers\GobiNet\ 目录下的全部文件复制到 src 目录中去。
添加依赖
在 make menuconfig 中添加如下依赖
//查看USB设备的命令
Base System-> busybox-> Linux System Utilities<*> lsusb// libpthread 应该默认支持了// libstdcpp c++可以选择加上//USB相关模块
Kernel Modules-> USB Support<*> kmod-usb-acm<*> kmod-usb-net<*> kmod-usb-net-cdc-eem<*> kmod-usb-net-cdc-mbim<*> kmod-usb-net-cdc-subset<*> kmod-usb-net-qmi-wwan <*> kmod-usb-net-rndis<*> kmod-usb-ohci<*> kmod-usb-serial<*> kmod-usb-serial-ark3116<*> kmod-usb-serial-belkin<*> kmod-usb-serial-ch341<*> kmod-usb-serial-cp210x<*> kmod-usb-serial-cypress-m8<*> kmod-usb-serial-ftdi<*> kmod-usb-serial-option<*> kmod-usb-storage<*> kmod-usb-uhci<*> kmod-usb2//自己创建的驱动Other modules<*> gobinet
编译
驱动应该算是弄好了,直接 make V=s 吧。
拨号上网
好久了,过了半年才来更新这篇文章,上一家公司已经离职了,写的交接文档忘了备份,最近心血来潮想把之前弄的 openwrt 总结一下,把做的东西概括一下,至少自己知道自己做了什么吧。
下面根据记忆,简单说一下吧,最后拨号上网是没问题了,还能发出WiFi,让连接设备上网。
检查 usb 设备
使用 lsusb 应该可以找到找到一个设备,注意一下这个物理接口,后面要配置 WAN 口要用到。
lsusb
配置一个新的 WAN 口
接下来在 openwrt 的网页上增加一个新的接口,模仿着已有的 WAN 口改就可以。
协议选择
在上面的 WAN 口中,好像选的 PPP 协议,貌似写的是 3G 的,实际出来 4G 也能用。
配置防火墙
在 openwrt 的网页上配置防火墙,主要是对我们新增的 WAN 口进行配置,同样模仿着这页的 WAN 口配置改就是,具体我也记不清了,应该很好理解,意思就是让 WAN 口的数据能够通过 WAN 口传递到 LAN 口去,而 WLAN 也是一样的。
串并转换
这部分是另一个同事做的了,好像通过 usb 端口得到的数据需要进行一次串并转换,好像写在龙尚那个驱动应用里面,具体网上找找吧。
重启
重启应该就生效了,好像要经过一次查找信号,查找到信号后再进行拨号,同事好像在龙尚那个应用里面也加了拨号的逻辑,具体是上面路由器网页配置生效的还是代码生效的我就不清楚了,这里提供一个思路吧!但是如果只是在代码里面配置了拨号,肯定是不能使用的,仍然需要按上面的步骤,在路由器的网页上配置,也算是我和同事的代码加起来才生效的。
openwrt 使用 usb 实现4G拨号上网功能相关推荐
- 4g模块注册上网 移远_【技术分享】Openwrt实现4G模块上网功能
大家都知道传统的路由器无非基于以下几种方式上网:首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话上 ...
- 4g模块注册上网 移远_Openwrt实现4G模块上网功能
Openwrt 实现 4G 模块上网功能 上海润欣科技股份有限公司创研社 大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线 / 双绞线 / 光纤. ...
- 4g模块注册上网 移远_Openwrt如何实现4G模块上网功能
大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话 ...
- linux下4g拨号上网问题,解决 Ubuntu 18.04 下无法建立 4G 拨号的问题
如果你像我一样用 Ubuntu Unity 的话,你可能会遇到"无法建立 4G 拨号上网"的问题.不过这个问题不是一直都会出现,如果你是标准的 Gnome Shell 或者 KDE ...
- 3G模块SIM5360E 实现拨号上网功能
1.添加USB转串口驱动 ftp://studio.iot-yun.com/ 添加成功后,打开 此电脑 -> 属性 -> 设备管理器 -> 端口 查看端口号 2. SecureCRT ...
- openwrt 18.06 ec20 R2.0 qmi 4G拨号上网
记录18.06 下驱动 EC20 openwrt 18.06 已经支持EC20 这个模块的识别了 只要在make menuconfig下选中以下模块, 是直接可以用AT命令读取到信息的,只是无法用qm ...
- 迅为IMX6开发板Buildroot文件系统4G拨号上网工具测试
给IMX6开发板烧写好 buildroot 的文件系统,连接好 4G 模块和天线并将 SIM 卡插入卡槽启动如下图: 输入用户名 root ,密码 :XXXXXX 开始测试 ppp 拨号,先将 eth ...
- 4G拨号上网 之 AT指令学习
目录 一.busybox 1.下载busybox 2.查看busybus 3.查看microcom用法: 二.检测4G模块 1.检测4G模块是否被系统识别 2.检测USB模块是否载入系统 3.列出US ...
- 群晖双网口虚拟机openwrt主路由二级路由拨号上网配置
最终目的如下图: 目录 一. 虚拟机套件配置 二. openwrt安装 三. openwrt配置 首先按照下图连接设备 一.虚拟机套件配置 1.1 安装虚拟机套件后,在控制面板开启open vSwit ...
最新文章
- Python3中装饰器@typing.overload的使用
- OVS ovs-vsctl(二十五)
- Mysql 提示:Communication link failure
- android 编译报错,android avc 编译报错neverallow问题查找
- Jquery常用标签
- python 输入框查询_Element输入框带历史查询记录
- Hessian的使用与介绍
- windows10 配置深度学习环境
- clientHeight、offsetHeight、scrollHeight、scrollTop的区别以及上拉加载的实现
- Godot 导出 Android apk
- 遥感数据相关资源获取
- 以太网帧机构 ,mtu ,分包原理 tcp的三次握手,四次挥手
- 微信将迎来重大更新:绑定银行卡的用户请注意
- html の第一天(上)-----适合新手入门前端
- 短视频的素材在哪里找呢?推荐给你一个好办法
- Quartus无法选择器件库
- STL之vector函数详解
- 番茄学习法及番茄钟软件 Pomodairo 1.9
- MindSpore分类指标之准确率、AUC/ROC详解(一)
- DB-概念-数据库:数据库/Database
热门文章
- linux性能优化实战 倪朋飞,Linux性能优化实战:系统的swap变高(09)
- 利用可扩展样式表语言xsl显示xml文档
- JVM学习 谁是垃圾?判断对象是否能被垃圾回收 可达性分析 四大引用
- 拼多多,拼什么?商业模式+店铺运营+爆品打造
- 2021上海交大附中高考成绩查询,2021年上海高中排名
- 乔布斯传记电影暂定名为《灵光乍现》
- 用python画甜小兔_Python 实现画一个小猪佩奇
- cir模型matlab代码,CIR模型MATLAB程序
- Quartz 时间配置详解
- 关于Struts2及Weblogic反序列化工具被他人擅自公布下载的声明