4G上网卡一般为双对外通讯口,一个是串口、一个是USB。

  但是基于串口的常用波特率为115200,速度过于底下,所以大多使用USB。

  1)一般来说常用ppp拨号方式,ppp拨号方式分为应用层pppd与驱动层pppk。

    驱动层pppk通讯主要接口为ppp_async_send与tty->ldisc->receive_buf,并调用tty驱动,而tty驱动转为USB则需要针对GSM/CDMA的usb_wwan、option驱动,而usb_wwan驱动又依赖于usb-serial基础转换。此时驱动已经将通讯转换为USB。

    应用层pppd主要以option脚本、chat脚本、ppp应用,进行发送AT命令,拨号上网。

  2)当不使用ppp拨号方式,而是使用NDIS拨号,那么ppp软件没有了,就需要替代他的东西,这时候,需要三样东西:Rmnet驱动 + dhclient + minicom/echo命令。当然Rmnet驱动也是USB总线驱动。而由于发送AT命令是以串口发送,所以依旧需要usb-serial、usb_wwan、option驱动进行串口USB转换。

  值此特别声明:USB设备驱动架构:分为HID、CDC、mass storage,而Rmnet是非标准的Rmnet驱动。NDIS是windows提出的网络驱动接口规范,linux下并没有。

  以下就是USB总线方式的Rmnet驱动流程:

  • 注册驱动  :module_init(NDIS_Init);
  • 创建类   :Rmnet_class= class_create( THIS_MODULE, "Rmnet_class" );
  • 注册USB设备:usb_register(&usb_drv_Rmnet);
  • 定义    :static struct usb_driver usb_drv_Rmnet{...};
  • 探针函数

    int Rmnet_Probe( struct usb_interface * usb_interf, const struct usb_device_id * usb_devid)

    •   获取端点信息

      • cur_altsetting->desc.bInterfaceNumber
      • cur_altsetting->desc.bNumEndpoints
      • cur_altsetting->endpoint

  

未完待续....

4G上网卡NIDS拨号之Rmnet驱动的更多相关文章

  1. 在ARM-linux上实现4G模块PPP拨号上网【转】

    本文转载自:http://blog.csdn.net/zqixiao_09/article/details/52540887 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从 ...

  2. 4G模块*99#拨号上网

    操作系统:win10 模块型号:quectel EC20 CE FAG 4G模块拨号步骤如下: 1. 打开网络和internet设置 2. 选择“拨号” 3. 选择“设置新连接” 4. 选择“拨号调至 ...

  3. android下4G上网卡

    架构: APP Call Trachker/SMS Dispatch/Service Tracker/Data Tracker ------------------------------------ ...

  4. openwrt固件支持3G和4G上网卡

    http://wiki.openwrt.org/doc/howtobuild/wireless-router-with-a-3g-dongle Building image with support ...

  5. 树莓派 4G模块 PPP 拨号 NDIS 拨号

    资料参考:树莓派使用4G模块(华为ME909s-821)亲身尝试的可行方法(上)

  6. dhcp源码编译支持4G上网卡

    1. tar xvzf dhcp-4.2.5-P1.tar.gz 2. ./configure --host=arm-linux ac_cv_file__dev_random=yes 3. vi bi ...

  7. ROS-RouterOS hAP ac2+usb 4G上网卡+小米新推的无线上网卡是绝配

    月租9元.每日缴1元.上网不限量 Model Tested RouterOS version Format Passthrough support TechnologiesZTE MF823 v6.8 ...

  8. 嵌入式Linux系统---ppp拨号,4G模块上网【转】

    本文转载自:http://blog.csdn.net/qq562029186/article/details/65438553 4G模块PPP拨号上网 方法1 所需文件: xxx-chat-conne ...

  9. linux设备驱动归纳总结(一)内核的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...

随机推荐

  1. MVVM_Android-CleanArchitecture

    前言 "Architecture is About Intent, not Frameworks" - Robert C. Martin (Uncle Bob) Uncle Bob ...

  2. Android推送通知Notification

    参考: 1.http://www.cnblogs.com/anrainie/archive/2012/03/07/2383941.html 总结: 代码:

  3. BI名词解释

    BI名词解释     浏览数Page Views: 网页(含文件及动态网页)被访客浏览的次数.Page View的计算范围包括了所有格式的网页,例如:.htm..html..asp..cfm. asa ...

  4. Python爬虫处理抓取数据中文乱码问题

    乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. ...

  5. 【单页应用】view与model相关梳理(转载)

    [单页应用]view与model相关梳理 前情回顾 根据之前的学习,我们形成了一个view与一个messageCenterview这块来说又内建了一套mvc的东西,我们这里来理一下首先View一层由三 ...

  6. java NIO 资料总结

    1.http://developer.51cto.com/art/201204/328340.htm 2.http://ifeve.com/file-channel/并发编程网系列 3 http:// ...

  7. CC2530芯片介绍

    CC2530,体积更小,功能全, C8051内核,使用起来跟平时的单片机没什么两样,就是程序复杂一些,需要一些时日才能看懂,吃透就更长了,而且对于CC2530TI公司提供了一套完整的解决方案,有布线图 ...

  8. vimrc语法

    前言 工欲善其事,必先利其器.一个programmer必然要先有一个好的editor.vim就是一个十分强大的编辑器.它的强大之处,在于其个性化和可定制.学习vim,就像学习Linux,学习perl, ...

  9. Java中url传递中文参数取值乱码的解决方法

    java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作. 方法一: http://xxx.do?ptname=’我 ...

  10. [TopCoder] SRM_594_DIV2.250

    好长一段时间没写博客了,实在是想不出有什么好写的.近期也有对自己的职业做了一点思考,还是整理不出个所以然来,很是烦躁 ... 研究TopCoder已经有一小段时间了,都是在做之前的题目,还没有实际参加 ...