为了支持CH341设备,移植驱动主要做了以下两个方面的内容:

  1. 配置内核选项,使内核支持CH341设备;
  2. 修改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;

总结:

驱动模块的标准添加流程如下:

  1. 驱动模块 Kconfig 文件的编写;
  2. make menuconfig, 使能该模块;
  3. make save defconfig, 保存所有的配置到 defconfig 文件;
  4. cp defconfig kernel/arh/arm64/configs/rockchip_defconfig;

[AndroidO] [RK3399] -- 支持 CH341 驱动 -- 驱动模块的标准添加流程相关推荐

  1. 字节跳动BVC2解码器率先支持移动平台H.266标准8K解码

    10月22日举行的QCon全球软件开发大会上,字节跳动研究人员分享"8K超高清解码实践",宣布该公司BVC2解码器已支持移动平台H.266标准的8K解码,从而解决以往8K视频码率过 ...

  2. 高通驱动9008安装_小米10/Redmi K30 Pro系列已支持GPU驱动独立更新,还能双版本切换...

    高通在去年末发布的那颗骁龙865处理器,一大功能升级就是支持GPU驱动独立更新.手机厂商可以通过Google Play或者自己的应用商店向用户推送新版本的GPU驱动更新,大大地简化了这类系统关键组件的 ...

  3. win11可以支持win10驱动吗 Windows11更新驱动的步骤方法

    Win11系统对比Win10系统进行了很多的更新,在界面和功能上都有了很大的改进.所以使用Win11系统的用户即使对Win10系统的操作非常熟悉,但是在升级了Win11系统之后还是有很多不知道怎么操作 ...

  4. 魔百盒CM201-1、CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包

    魔百盒CM201-1.CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包 图片 刷机方法: 把下载的刷机包文件解压一次,复制到U盘根目录!update.zip升级包不能解压,原原本 ...

  5. RK3399支持5G-WiFi热点

    RK3399支持5G-WiFi热点: RK3399支持5G-WiFi热点 | DD'Notes背景 Platform: RK3399 OS: Android7.1.2 Kernel: v4.4.103 ...

  6. 没有ch341驱动_NVIDIA Jetson TX2内核添加串口驱动

    NVIDIA Jetson TX2内核添加串口驱动 2018年02月04日 17:26:39 BumBleBee009 阅读数:2419 转载博客:http://blog.csdn.net/gzj20 ...

  7. 实战视频教程- RK3399 Android10.0 驱动/内核开发

    实战视频教程- RK3399 Android10.0 驱动/内核开发–视频链接 文章目录 讲师介绍 ☛点击立即跟老师学习☚ 适合人群: 课程特点及目标: 课程简介: [课程目录] 讲师介绍 技术经理 ...

  8. Linux驱动——mmc sd card初始化流程(十一)

    Linux驱动--mmc sd card初始化流程(十一) 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客:   (1)[sd ...

  9. oracle 14155,通用汽车GMW 14155 标准测试流程解读

    GMW 14155标准的意义 近年来,汽车NVH性能已成为用户选购车辆的重要参考因素之一.而整车NVH性能的好坏,与汽车子系统和零配件的设计密切相关,因此很多整车厂商对汽车子系统和零配件有明确的NVH ...

  10. linux添加驱动目录,Android系统添加Linux驱动

    Linux内核是可配置,进入到linux目录,输入make menuconfig 将会有模块选择界面,前两句是 scripts/kconfig/mconf Kconfig .config - Linu ...

最新文章

  1. 顺序表-有序顺序表表示集合-交集(while + 值比较)
  2. 关于strutsdemo实例的理解
  3. 网游类似魔兽世界的服务器维护都是在干嘛?
  4. 局域网一点通之组网、管网、用网1000问
  5. c#10:string内插处理
  6. 【Java深入理解】String str = “a“ + “b“ + “c“到底创建了几个对象?
  7. REDM库使用教程01(详细入门)
  8. LeetCode 求解电话号码组合(分治法求解)
  9. OpenGL基础25:多光源(附简单GLSL配置)
  10. 用Vue3+element-plus+express写个简单的后台管理框架
  11. 湖南大学应用经济学考研考情与难度、参考书及上岸前辈备考经验
  12. HashMap什么时候出现红黑树
  13. DGP链游公会丨一文概览什么是GameFi链游
  14. 运行maven生成的jar包显示class “XXX“ not found
  15. Android 指纹相关调研
  16. 创业公司,老板说等公司做大了,给5%股权,建议你不要轻易相信
  17. docfx 做一个和微软一样的文档平台
  18. 读取和讯博客数据可视化分析
  19. 随机函数计算机,随机函数
  20. 你是如何成为 Lisp 程序员的

热门文章

  1. 【考研高数 武忠祥+880版 自用】高数第二章基础阶段思维导图
  2. isPostBack解释
  3. ubuntu下网易云的特别替代品-VS code cloudmusic插件
  4. java自行车销售系统_基于 javaee 自行车租赁系统,源码分享
  5. ios苹果越狱教程(奥德赛)
  6. 线性代数 行列式 知识技巧思维导图 [21考研上岸之旅]
  7. 既有e^x又有sinx或cosx的积分题的解法
  8. 简易鼠标模拟器 python
  9. 东华大学计算机专业在哪个校区,东华大学有几个校区及地址
  10. 点分十进制IP和网络字节序IP互转