树莓派4b移植4G USB驱动Quectel EC200T以及ppp拨号

1. 准备编译环境

1.1 下载linux内核,准备编译环境,请参看“RaspberryPi4B 树莓派4B Linux5.4.y 内核编译”

1.2 修改usb串口驱动, drivers/usb/serial/option.c

static const struct usb_device_id option_ids[] = {
#if 1 //Added by Quectel
	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9215) }, /* Quectel EC20 */
	{ USB_DEVICE(QUECTEL_VENDOR_ID, 0x6026) }, /* Quectel EC200 */
	{ USB_DEVICE(QUECTEL_VENDOR_ID, 0x6120) }, /* Quectel UC200 */
	{ USB_DEVICE(QUECTEL_VENDOR_ID, 0x6000) }, /* Quectel EC200/UC200 */
#endif

1.3 增加休眠后唤醒接口

static struct usb_serial_driver option_1port_device = {
	.driver = {
		.owner =	THIS_MODULE,
		.name =		"option1",
	},
	.description       = "GSM modem (1-port)",
	
	...
	
#ifdef CONFIG_PM
 	.suspend           = usb_wwan_suspend,
 	.resume            = usb_wwan_resume,
#if 1 //add by Quectel
	.reset_resume   = usb_wwan_resume,
#endif
#endif
};

1.4 如果要使用 GobiNet or QMI WWAN,需要阻止第四个接口注册为串口

static int option_probe(struct usb_serial *serial,
			const struct usb_device_id *id)
{
	struct usb_interface_descriptor *iface_desc =
				&serial->interface->cur_altsetting->desc;
	unsigned long device_flags = id->driver_info;

	#if 1 //Added by Quectel
	//Quectel UC20's interface 4 can be used as USB Network device
	if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)
		&
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦上多多

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

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

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

打赏作者

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

抵扣说明:

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

余额充值