上班一年了,最近才觉得应该把学到的东西好好用博客展示出来,而不是排的整整齐齐的放在浏览器收藏夹里!也开始从头发一些博客,但是觉得手头上的工作,也应该及时总结,这篇文章是关于 openwrt 拨号上网的博客,具体关于openwrt的使用以后博客慢慢补吧。

废话不多说,进入主题!

本人使用的是MTK-7628的一块板子,因为需要,现在想通过usb外接上网卡的形式,实现4G拨号上网,并让内部的设备能向外互通。4G上网模块使用的是龙尚的U9300C,应该用的高通的基带,如果有读者和我类似的话,下面文章希望对大家有些帮助!接下来的内容可能需要一点openwrt使用的经验,如果不太懂的话我后续的博文会详细介绍的,我也是小白一个,现在就先看看吧!

修改内核USB驱动

  1. 访问下面位置,打开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
  1. 搜索0x1c9e,下面增加定义
#define LONGSUNG_VENDOR_ID          0x1c9e#define LONGSUNG_U9300_PRODUCT_ID   0x9b3c#define LONGSUNG_U8300_PRODUCT_ID   0x9b05
  1. 修改数组

由于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拨号上网功能相关推荐

  1. 4g模块注册上网 移远_【技术分享】Openwrt实现4G模块上网功能

    大家都知道传统的路由器无非基于以下几种方式上网:首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话上 ...

  2. 4g模块注册上网 移远_Openwrt实现4G模块上网功能

    Openwrt 实现 4G 模块上网功能 上海润欣科技股份有限公司创研社 大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线 / 双绞线 / 光纤. ...

  3. 4g模块注册上网 移远_Openwrt如何实现4G模块上网功能

    大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话 ...

  4. linux下4g拨号上网问题,解决 Ubuntu 18.04 下无法建立 4G 拨号的问题

    如果你像我一样用 Ubuntu Unity 的话,你可能会遇到"无法建立 4G 拨号上网"的问题.不过这个问题不是一直都会出现,如果你是标准的 Gnome Shell 或者 KDE ...

  5. 3G模块SIM5360E 实现拨号上网功能

    1.添加USB转串口驱动 ftp://studio.iot-yun.com/ 添加成功后,打开 此电脑 -> 属性 -> 设备管理器 -> 端口 查看端口号 2. SecureCRT ...

  6. openwrt 18.06 ec20 R2.0 qmi 4G拨号上网

    记录18.06 下驱动 EC20 openwrt 18.06 已经支持EC20 这个模块的识别了 只要在make menuconfig下选中以下模块, 是直接可以用AT命令读取到信息的,只是无法用qm ...

  7. 迅为IMX6开发板Buildroot文件系统4G拨号上网工具测试

    给IMX6开发板烧写好 buildroot 的文件系统,连接好 4G 模块和天线并将 SIM 卡插入卡槽启动如下图: 输入用户名 root ,密码 :XXXXXX 开始测试 ppp 拨号,先将 eth ...

  8. 4G拨号上网 之 AT指令学习

    目录 一.busybox 1.下载busybox 2.查看busybus 3.查看microcom用法: 二.检测4G模块 1.检测4G模块是否被系统识别 2.检测USB模块是否载入系统 3.列出US ...

  9. 群晖双网口虚拟机openwrt主路由二级路由拨号上网配置

    最终目的如下图: 目录 一. 虚拟机套件配置 二. openwrt安装 三. openwrt配置 首先按照下图连接设备 一.虚拟机套件配置 1.1 安装虚拟机套件后,在控制面板开启open vSwit ...

最新文章

  1. Python3中装饰器@typing.overload的使用
  2. OVS ovs-vsctl(二十五)
  3. Mysql 提示:Communication link failure
  4. android 编译报错,android avc 编译报错neverallow问题查找
  5. Jquery常用标签
  6. python 输入框查询_Element输入框带历史查询记录
  7. Hessian的使用与介绍
  8. windows10 配置深度学习环境
  9. clientHeight、offsetHeight、scrollHeight、scrollTop的区别以及上拉加载的实现
  10. Godot 导出 Android apk
  11. 遥感数据相关资源获取
  12. 以太网帧机构 ,mtu ,分包原理 tcp的三次握手,四次挥手
  13. 微信将迎来重大更新:绑定银行卡的用户请注意
  14. html の第一天(上)-----适合新手入门前端
  15. 短视频的素材在哪里找呢?推荐给你一个好办法
  16. Quartus无法选择器件库
  17. STL之vector函数详解
  18. 番茄学习法及番茄钟软件 Pomodairo 1.9
  19. MindSpore分类指标之准确率、AUC/ROC详解(一)
  20. DB-概念-数据库:数据库/Database

热门文章

  1. linux性能优化实战 倪朋飞,Linux性能优化实战:系统的swap变高(09)
  2. 利用可扩展样式表语言xsl显示xml文档
  3. JVM学习 谁是垃圾?判断对象是否能被垃圾回收 可达性分析 四大引用
  4. 拼多多,拼什么?商业模式+店铺运营+爆品打造
  5. 2021上海交大附中高考成绩查询,2021年上海高中排名
  6. 乔布斯传记电影暂定名为《灵光乍现》
  7. 用python画甜小兔_Python 实现画一个小猪佩奇
  8. cir模型matlab代码,CIR模型MATLAB程序
  9. Quartz 时间配置详解
  10. 关于Struts2及Weblogic反序列化工具被他人擅自公布下载的声明