树莓派4B移植5G模块驱动(RG200U-CN)

news/2024/7/8 4:38:37

1、查看Linux内核版本

uname -r

在这里插入图片描述

2、根据内核版本在Github上下载Linux内核源码(最好再Github上确定一下有没有这个分支)

git clone --depth=1 https://github.com/raspberrypi/linux --branch rpi-5.15.y

3、下载依赖库

sudo apt-get update
sudo apt-get install raspberrypi-kernel-headers
sudo apt-get install bc libncurses5-dev bison flex libssl-dev make libc6-dev

4、配置

cd linux

(1)修改第1个文件(从#if 1 到 #endif)

sudo nano drivers/usb/serial/option.c
static const struct usb_device_id option_ids[] = {
#if 1 //Added by Quectel
{ USB_DEVICE_AND_INTERFACE_INFO(0x2c7c, 0x0900, 0xff, 0x00, 0x00) },
#endif
static struct usb_serial_driver option_1port_device = {
......

#ifdef CONFIG_PM
.suspend = usb_wwan_suspend,
.resume = usb_wwan_resume,
#if 1 //Added by Quectel
.reset_resume = usb_wwan_resume,
#endif
#endif
};

(2)修改第2个文件(从#if 1 到 #endif)

sudo nano drivers/usb/serial/usb_wwan.c
static struct urb *usb_wwan_setup_urb(struct usb_serial *serial, int endpoint,
 int dir, void *ctx, char *buf, int len,void (*callback) (struct urb *))
{
	......
	
	usb_fill_bulk_urb(urb, serial->dev,usb_sndbulkpipe(serial->dev, endpoint) | dir,buf, len, callback, ctx);
	#if 1 //Added by Quectel for zero packet
	if (dir == USB_DIR_OUT)
	{
		struct usb_device_descriptor *desc = &serial->dev->descriptor;
		if (desc->idVendor == cpu_to_le16(0x2C7C))
		{
			urb->transfer_flags |= URB_ZERO_PACKET;
		}
	}
	#endif
	return urb;
}

5、编译

KERNEL=kernel8  
sudo make bcm2711_defconfig
sudo make -j4 modules 
sudo make modules_install 

http://lihuaxi.xjx100.cn/news/1280145.html

相关文章

Linux磁盘分区和文件系统的关系

一、Linux磁盘相关命令及作用: 1. df命令:用于显示文件系统的磁盘空间使用情况。 2. du命令:用于查看文件或目录的磁盘使用情况。 3. fdisk命令:用于磁盘分区表的创建和管理。 4. mkfs命令:用于创建文件系统。 5. moun…

【css】实现单独一区域滚动,不影响整体滚动

来源:css实现单独一区域滚动,不影响整体滚动,两种方法 方法 第一种:就该区域高度固定,然后overflow-auto 第二种:使用属性overscroll-behavior: contain; .overfolw{position: absolute;width: 100%;ov…

C++ Vector操作

文章目录 1 初始化:2 遍历vector3删除vector指定元素 1 初始化: 方法1: vector list1; //默认初始化,vector 为空, size 为0。容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空…

如何看待社交媒体上的滥用和侵犯版权问题??

社交媒体已成为人们日常生活中不可或缺的一部分,它为我们提供了分享、互动和表达自己的平台。然而,随着社交媒体的普及和内容的广泛传播,滥用和侵犯版权的问题也日益突出。本文将探讨如何管理社交媒体上的滥用和侵犯版权问题,以维…

QPushButton简单使用

QPushButton简单使用 简单使用 创建一个按钮 QPushButton *btn new QPushButton;让btn对象以来在窗口界面 btn->setParent(this);显示文本 btn->setText(“第一个按钮”);重置窗口大小resize(600,400);setWindowTitle(“第一个界面”);// 设置标题setFixedSize(1000,1…

【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析

【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析 系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析》 主要参数如下: hw_…

接口返回json格式的字符串中带有反斜杠 怎么处理?

问题&#xff1a; 接口返回json格式的字符串中带有反斜杠 怎么处理&#xff1f; 修改前代码&#xff1a; GetMapping("query")public RttResult<String> queryDataSource(RequestParam String dataSourceType, RequestParam String dataType, RequestParam Str…

如何校验 MySQLOracle 时间字段合规性?

作者&#xff1a;余振兴 爱可生 DBA 团队成员&#xff0c;热衷技术分享、编写技术文档。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 背景信息 在数据迁移或者数据库低版本升级到高版本…