[AndroidO] [RK3399] -- 支持 CH341 驱动 -- 驱动模块的标准添加流程
为了支持CH341设备,移植驱动主要做了以下两个方面的内容:
- 配置内核选项,使内核支持CH341设备;
- 修改CH341的设备节点号,为了上层更方便的使用;
源码修改如下所示:
1. 配置内核选项,支持CH341设备:
diff --git a/kernel/arch/arm64/configs/rockchip_defconfig b/kernel/arch/arm64/configs/rockchip_defconfig
index ef29417..7a82bc5 100644
--- a/kernel/arch/arm64/configs/rockchip_defconfig
+++ b/kernel/arch/arm64/configs/rockchip_defconfig
@@ -659,6 +659,8 @@ CONFIG_USB_DWC3=yCONFIG_USB_DWC2=yCONFIG_USB_SERIAL=yCONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_CH341=y
+CONFIG_USB_SERIAL_PL2303=yCONFIG_USB_SERIAL_OPTION=yCONFIG_USB_TRANCEVIBRATOR=yCONFIG_USB_GADGET=y
2. 修改CH341的设备节点号:
diff --git a/kernel/drivers/usb/serial/usb-serial.c b/kernel/drivers/usb/serial/usb-serial.c
index e7e29c7..ab6eca8 100644
--- a/kernel/drivers/usb/serial/usb-serial.c
+++ b/kernel/drivers/usb/serial/usb-serial.c
@@ -96,7 +96,10 @@ static int allocate_minors(struct usb_serial *serial, int num_ports)mutex_lock(&table_lock);for (i = 0; i < num_ports; ++i) {port = serial->port[i];
- minor = idr_alloc(&serial_minors, port, 0, 0, GFP_KERNEL);
+ if(!strcmp(serial->type->description,"ch341-uart"))
+ minor = idr_alloc(&serial_minors, port, 10, 0, GFP_KERNEL);
+ else
+ minor = idr_alloc(&serial_minors, port, 0, 0, GFP_KERNEL);if (minor < 0)goto error;port->minor = minor;
总结:
驱动模块的标准添加流程如下:
- 驱动模块 Kconfig 文件的编写;
- make menuconfig, 使能该模块;
- make save defconfig, 保存所有的配置到 defconfig 文件;
- cp defconfig kernel/arh/arm64/configs/rockchip_defconfig;
[AndroidO] [RK3399] -- 支持 CH341 驱动 -- 驱动模块的标准添加流程相关推荐
- 字节跳动BVC2解码器率先支持移动平台H.266标准8K解码
10月22日举行的QCon全球软件开发大会上,字节跳动研究人员分享"8K超高清解码实践",宣布该公司BVC2解码器已支持移动平台H.266标准的8K解码,从而解决以往8K视频码率过 ...
- 高通驱动9008安装_小米10/Redmi K30 Pro系列已支持GPU驱动独立更新,还能双版本切换...
高通在去年末发布的那颗骁龙865处理器,一大功能升级就是支持GPU驱动独立更新.手机厂商可以通过Google Play或者自己的应用商店向用户推送新版本的GPU驱动更新,大大地简化了这类系统关键组件的 ...
- win11可以支持win10驱动吗 Windows11更新驱动的步骤方法
Win11系统对比Win10系统进行了很多的更新,在界面和功能上都有了很大的改进.所以使用Win11系统的用户即使对Win10系统的操作非常熟悉,但是在升级了Win11系统之后还是有很多不知道怎么操作 ...
- 魔百盒CM201-1、CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包
魔百盒CM201-1.CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包 图片 刷机方法: 把下载的刷机包文件解压一次,复制到U盘根目录!update.zip升级包不能解压,原原本 ...
- RK3399支持5G-WiFi热点
RK3399支持5G-WiFi热点: RK3399支持5G-WiFi热点 | DD'Notes背景 Platform: RK3399 OS: Android7.1.2 Kernel: v4.4.103 ...
- 没有ch341驱动_NVIDIA Jetson TX2内核添加串口驱动
NVIDIA Jetson TX2内核添加串口驱动 2018年02月04日 17:26:39 BumBleBee009 阅读数:2419 转载博客:http://blog.csdn.net/gzj20 ...
- 实战视频教程- RK3399 Android10.0 驱动/内核开发
实战视频教程- RK3399 Android10.0 驱动/内核开发–视频链接 文章目录 讲师介绍 ☛点击立即跟老师学习☚ 适合人群: 课程特点及目标: 课程简介: [课程目录] 讲师介绍 技术经理 ...
- Linux驱动——mmc sd card初始化流程(十一)
Linux驱动--mmc sd card初始化流程(十一) 备注: 1. Kernel版本:5.4 2. 使用工具:Source Insight 4.0 3. 参考博客: (1)[sd ...
- oracle 14155,通用汽车GMW 14155 标准测试流程解读
GMW 14155标准的意义 近年来,汽车NVH性能已成为用户选购车辆的重要参考因素之一.而整车NVH性能的好坏,与汽车子系统和零配件的设计密切相关,因此很多整车厂商对汽车子系统和零配件有明确的NVH ...
- linux添加驱动目录,Android系统添加Linux驱动
Linux内核是可配置,进入到linux目录,输入make menuconfig 将会有模块选择界面,前两句是 scripts/kconfig/mconf Kconfig .config - Linu ...
最新文章
- 顺序表-有序顺序表表示集合-交集(while + 值比较)
- 关于strutsdemo实例的理解
- 网游类似魔兽世界的服务器维护都是在干嘛?
- 局域网一点通之组网、管网、用网1000问
- c#10:string内插处理
- 【Java深入理解】String str = “a“ + “b“ + “c“到底创建了几个对象?
- REDM库使用教程01(详细入门)
- LeetCode 求解电话号码组合(分治法求解)
- OpenGL基础25:多光源(附简单GLSL配置)
- 用Vue3+element-plus+express写个简单的后台管理框架
- 湖南大学应用经济学考研考情与难度、参考书及上岸前辈备考经验
- HashMap什么时候出现红黑树
- DGP链游公会丨一文概览什么是GameFi链游
- 运行maven生成的jar包显示class “XXX“ not found
- Android 指纹相关调研
- 创业公司,老板说等公司做大了,给5%股权,建议你不要轻易相信
- docfx 做一个和微软一样的文档平台
- 读取和讯博客数据可视化分析
- 随机函数计算机,随机函数
- 你是如何成为 Lisp 程序员的