完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
本文章介绍了在linux系统下,如何修改u***驱动支持移远模块,移远模块正常启动后,通过USB连接到linux设备上,驱动正常加载后会在/dev/下产ttyUSB*设备。 一、USB串口驱动 1.1 添加VID和PID linux下通过lsu***就可以查看USB的VID和PID #lsu*** Bus 001 Device 011: ID 2C7C:0125 说明这个USB设备的VID为2C7C,PID为0125; File: [KERNEL]/drivers/u***/serial/option.c static const struct u***_device_id option_ids[] = {//Added by Quectel{ USB_DEVICE(0x2C7C, 0x0125) }, //End by Quectel{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) },{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) },1.2 屏蔽冲突 File: [KERNEL]/drivers/u***/serial/qcserial.c {USB_DEVICE(0x2C7C, 0x0125)}, /* Acer Gobi 2000 Modem device (VP413) */File: [KERNEL]/drivers/net/u***/qmi_wwan.c {QMI_GOBI_DEVICE(0x2C7C, 0x0125)}, /* Acer Gobi 2000 Modem device (VP413) */1.3 添加零包机制 File: [KERNEL]/drivers/u***/serial/u***_wwan.c static struct urb *u***_wwan_setup_urb(struct u***_serial *serial, int endpoint,int dir, void *ctx, char *buf, int len,void (*callback) (struct urb *)){…… u***_fill_bulk_urb(urb, serial->dev, u***_sndbulkpipe(serial->dev, endpoint) | dir,buf, len, callback, ctx); //Added by Quectel for zero packet if (dir == USB_DIR_OUT) { struct u***_device_descriptor *desc = &serial->dev->descriptor; if (desc->idVendor == cpu_to_le16(0x2C7C) && desc->idProduct == cpu_to_le16(0x0125)) urb->transfer_flags |= URB_ZERO_PACKET; } //End by Quectel for zero packet return urb;}1.4 添加重置 File: [KERNEL]/drivers/u***/serial/option.c static struct u***_serial_driver option_1port_device = {……#ifdef CONFIG_PM.suspend = u***_wwan_suspend,.resume = u***_wwan_resume,//Added by Quectel .reset_resume = u***_wwan_resume,//End by Quectel#endif};1.5 使用添加GOBINET File: [KERNEL]/drivers/u***/serial/option.c static int option_probe(struct u***_serial *serial, const struct u***_device_id *id) {struct u***_wwan_intf_private *data;……//Added by Quectelif (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) && serial->dev->descriptor.idProduct == cpu_to_le16(0x0125)&& serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4) return -ENODEV;//End by Quectel/* Store device id so we can use it during attach. */u***_set_serial_data(serial, (void *)id);return 0;} 二、 GobiNet驱动 2.1 模块添加 2.2 添加程序 把Quectel_WCDMA 修改[KERNEL]/drivers/net/u***/下的makefile,在文件最后添加 obj-y += GobiNet.o GobiNet-objs := GobiUSBNet.o QMIDevice.o QMI.o 2.3 编译内核 make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage 三、 环境变量配置 3.1、udhcpc配置: 把文件default.script拷贝到/usr/share/udhcpc/下: 把文件resolv.conf拷贝到/var/dvr/下,然后 ln -s /var/dvr/resolv.conf /etc/resolv.conf 3.2、拨号: 编译quectel-CM程序源码,编译出quectel-CM工具进行拨号; quectel-CM源码下载:Linux下移远4G模块quectel-CM拨号工具_quectelag35开发板-C代码类资源-CSDN下载 |
|
|
|
只有小组成员才能发言,加入小组>>
676 浏览 0 评论
1098 浏览 1 评论
2463 浏览 5 评论
2794 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2632 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
644浏览 9评论
640浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
771浏览 6评论
615浏览 5评论
659浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 10:27 , Processed in 1.189963 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号