usb qmi wwan拨号方法

1、驱动编译及安装

代码位置:drivers/net/usb/qmi_wwan.c

需要在static const struct usb_device_id products[] = {}中添加usb device的pid、vid.

modprobe usbnet

modprobe cdc-wdm

insmod ./qmi_wwan.ko 

编译:在makefile中修改,编译为ko,及obj-m += qmi_wwan.o

此时,通过ifconfig查看会多出来一张网卡:

wwan0     Link encap:Ethernet  HWaddr da:1c:f5:1a:2d:ac  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

同时dev下有cdc-wdm0节点生成。

2、配置APN

echo APN=3gnet >> /etc/qmi-network.conf

3、开始拨号

qmi-network /dev/cdc-wdm0 start

udhcpc  -i wwan0 //获取ip

4、断开拨号

qmi-network /dev/cdc-wdm0 stop

5、qmi-network安装说明

  1. 检查系统中是否已安装 libqmi-utils 和 libqmi-glib-dev。如果没有安装,可以使用以下命令安装它们:

    sudo apt-get update
    sudo apt-get install libqmi-utils libqmi-glib-dev
    
  2. 安装 ModemManager。ModemManager 是一个负责管理移动宽带设备的守护进程,qmi-network 需要依赖它。使用以下命令安装 ModemManager:

    sudo apt-get install modemmanager
    
  3. 安装 qmi-network。qmi-network 是一个用于配置和管理 QMI(Qualcomm MSM Interface)设备网络连接的工具。使用以下命令安装 qmi-network:

    sudo apt-get install qmi-network
    

如使用以下命令启动 QMI 设备的网络连接。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: QMI(Qualcomm MSM Interface)是高通公司推出的一种基于USB接口的拨号协议,用于在高通芯片上实现数据通信功能。而MFC(Microsoft Foundation Classes)是微软为Windows操作系统开发的一套C++编程框架。 在MFC代码中实现QMI拨号功能需要以下步骤: 1. 引入QMI相关的头文件和库文件。 2. 初始化QMI连接。 3. 设置拨号参数,包括运营商APN、用户名、密码等。 4. 调用QMI拨号接口进行拨号操作。 5. 处理拨号结果,判断是否拨号成功。 6. 在程序的适当位置添加错误处理机制,处理拨号过程中可能遇到的异常情况。 具体代码示例如下(假设使用MFC Dialog框架): 1. 在对话框类的头文件中添加以下代码: #include "qmi.h" class CMyDialog : public CDialog { // ... CQmiConnection m_qmiConn; }; 2. 在OnInitDialog()函数中进行QMI初始化: BOOL CMyDialog::OnInitDialog() { // ... m_qmiConn.Initialize(); // ... } 3. 实现拨号函数: BOOL CMyDialog::Dial() { CString apn = "your_APN"; CString userName = "your_username"; CString password = "your_password"; m_qmiConn.SetAPN(apn); m_qmiConn.SetUsername(userName); m_qmiConn.SetPassword(password); BOOL result = m_qmiConn.Dial(); return result; } 4. 在响应拨号按钮的点击事件中调用拨号函数: void CMyDialog::OnBnClickedDialButton() { BOOL dialResult = Dial(); // 处理拨号结果 if(dialResult) { MessageBox(_T("拨号成功!")); } else { MessageBox(_T("拨号失败!")); } } 通过上述步骤,我们可以在MFC代码中实现QMI拨号功能,用于在高通芯片上进行数据通信。具体的拨号参数和错误处理根据实际情况进行调整,以确保拨号功能的正常运行。 ### 回答2: QMI(Qualcomm MSM Interface)拨号是一种用于在Qualcomm芯片上进行移动网络拨号协议。MFC(Microsoft Foundation Classes)是一套为Windows操作系统开发图形用户界面应用程序的C++类库。 在MFC代码中实现QMI拨号需要按照以下步骤进行操作: 1. 引入必要的头文件:首先,需要引入与QMI拨号相关的头文件,包括QmiSdk.h和Dialer.h。 2. 创建QMI对象:使用QmiSdk类创建QMI对象,并初始化它。通过调用QmiSdk类的Initialize方法来初始化QMI对象。 3. 设置拨号参数:设置拨号所需的参数,包括服务器地址、用户名和密码等。这些参数可以通过调用QMI对象的相应方法来设置。 4. 连接到移动网络:调用QMI对象的Connect方法连接到移动网络。此方法将触发与移动网络的握手,并进行身份验证。 5. 拨号:一旦连接成功,调用QMI对象的Dial方法来进行拨号。该方法将发送拨号请求到移动网络,并等待响应。 6. 处理响应:处理拨号响应,判断是否成功建立连接。如果连接建立成功,则可以开始进行数据传输;如果连接失败,则需要进行错误处理。 7. 断开连接:当数据传输完毕后,调用QMI对象的Disconnect方法来断开与移动网络的连接。 以上是使用MFC代码来实现QMI拨号的主要步骤。需要注意的是,具体的实现可能因QMI版本、芯片型号和操作系统等因素而有所不同。因此,在实际应用中,还需参考相应的文档和示例代码来进行具体的开发。 ### 回答3: QMI拨号QMI Dial)是一种基于Qualcomm MSM (Mobile Station Modem)平台的移动网络数据拨号协议。它通过Qualcomm MSM芯片上的QMI接口,来与移动网络模块进行通信和控制。 在MFC代码中,我们可以通过以下步骤实现QMI拨号: 1. 引入QMI拨号相关的头文件:在MFC代码中,我们首先需要引入相关的QMI拨号的头文件,以便在程序中使用相关的QMI拨号功能。 2. 初始化QMI拨号环境:在程序开始时,我们需要进行QMI拨号环境的初始化,包括打开与移动网络模块的通信端口以及设置相关的参数。 3. 进行网络连接设置:接下来,我们需要进行网络连接设置,包括设置移动网络模块的APN(接入点名称)、用户名和密码等。 4. 发起QMI拨号请求:通过调用相应的QMI拨号函数,我们可以发起QMI拨号的请求。这将触发移动网络模块与移动网络运营商建立数据连接的过程。 5. 等待拨号结果:我们需要等待QMI拨号请求的结果,以确定拨号是否成功。可以通过轮询移动网络模块的状态或者注册相关的回调函数来接收拨号结果。 6. 处理拨号结果:根据拨号结果,我们可以执行相应的操作。如果拨号成功,我们可以进行数据传输等后续操作;如果拨号失败,我们可以进行错误处理或者重新尝试拨号。 7. 关闭QMI拨号环境:在程序结束时,我们需要关闭QMI拨号环境,释放相关的资源。 总结起来,通过在MFC代码中引入QMI拨号的头文件,初始化QMI拨号环境,并通过相应的函数调用发起QMI拨号请求,我们可以实现QMI拨号的功能。同时,我们还需要处理拨号结果,并进行相应的操作。最后,我们需要关闭QMI拨号环境,释放相关资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a2591748032-随心所记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值