系统安装CH384串口卡驱动

news/2024/9/19 2:02:07 标签: linux, 服务器, 串口驱动

1. 解压驱动文件CH38XDRV.tar,并进入驱动目录 cd CH38XDRV/DRV_28S/LINUX/driver$

2. 编译 sudo make

edge@edge-PC:~/CH38XDRV/DRV_28S/LINUX/driver$ sudo make
请输入密码:
验证成功
make -C /lib/modules/4.19.0-arm64-desktop/build M=/home/edge/CH38XDRV/DRV_28S/LINUX/driver modules
make[1]: 进入目录“/usr/src/linux-headers-4.19.0-arm64-desktop”
  LD [M]  /home/edge/CH38XDRV/DRV_28S/LINUX/driver/wch.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/edge/CH38XDRV/DRV_28S/LINUX/driver/wch.mod.o
  LD [M]  /home/edge/CH38XDRV/DRV_28S/LINUX/driver/wch.ko
make[1]: 离开目录“/usr/src/linux-headers-4.19.0-arm64-desktop”

顺利的话,生成wch.o文件

3. 加载驱动 sudo insmod wch,ko

  并通过ls /dev/ttyWCH*查看相关串口

edge@edge-PC:/scu$ sudo insmod wch.ko 
edge@edge-PC:/scu$ ls /dev/ttyWCH*
/dev/ttyWCH0  /dev/ttyWCH10  /dev/ttyWCH12  /dev/ttyWCH14  /dev/ttyWCH16  /dev/ttyWCH18  /dev/ttyWCH2  /dev/ttyWCH4  /dev/ttyWCH6  /dev/ttyWCH8
/dev/ttyWCH1  /dev/ttyWCH11  /dev/ttyWCH13  /dev/ttyWCH15  /dev/ttyWCH17  /dev/ttyWCH19  /dev/ttyWCH3  /dev/ttyWCH5  /dev/ttyWCH7  /dev/ttyWCH9
edge@edge-PC:/scu$ 

可以看到如下20个串口,则加载成功

4. 添加自启动,我这里是通过添加服务完成系统启动自动加载串口驱动。相关文件放到/scu目录,并在主服务中添加scud.service,名字自定义,这个文件放在/etcsystemd/system目录下绿色。在scud.service运行startup.sh,在startup.sh执行硬件需要加载的所有东西,包括加载串口驱动

5. scud.service内容

edge@edge-PC:/scu$ cat scud.service 
[Unit]
Description=SCU server

[Service]
ExecStart=/scu/startup.sh

[Install]
WantedBy=default.target

6. startup.sh内容

edge@edge-PC:/scu$ cat startup.sh 
sh /scu/uartmap.sh
insmod /scu/wch.ko
#sh /scu/com_test.sh

7. uartmap.sh用于串口映射到外部的硬件接口,以便名称一致。(注:需根据不同的硬件,指定不同的映射,也可以不映射,在APP端映射亦可)

edge@edge-PC:/scu$ cat uartmap.sh 
ln -s /dev/ttyS0  /dev/ttyCOM9
ln -s /dev/ttyS1  /dev/ttyCOM10
ln -s /dev/ttyWCH0  /dev/ttyCOM11
ln -s /dev/ttyWCH1  /dev/ttyCOM12
ln -s /dev/ttyWCH2  /dev/ttyCOM13
ln -s /dev/ttyWCH3  /dev/ttyCOM14
ln -s /dev/ttyWCH4  /dev/ttyCOM15
ln -s /dev/ttyWCH5  /dev/ttyCOM16

ln -s /dev/ttyWCH6  /dev/ttyCOM1
ln -s /dev/ttyWCH7  /dev/ttyCOM2
ln -s /dev/ttyWCH8  /dev/ttyCOM3
ln -s /dev/ttyWCH9  /dev/ttyCOM4
ln -s /dev/ttyWCH10 /dev/ttyCOM5
ln -s /dev/ttyWCH11 /dev/ttyCOM6
ln -s /dev/ttyWCH12  /dev/ttyCOM7
ln -s /dev/ttyWCH13  /dev/ttyCOM8

ln -s /dev/ttyWCH14  /dev/ttyCOM17
ln -s /dev/ttyWCH15  /dev/ttyCOM18
ln -s /dev/ttyWCH16  /dev/ttyCOM19
ln -s /dev/ttyWCH17  /dev/ttyCOM20
ln -s /dev/ttyWCH18  /dev/ttyCOM21
ln -s /dev/ttyWCH19  /dev/ttyCOM22

8、 完成结果

       1)黄色部分,主板自带串口,2个

        2)绿色部分,串口卡扩展串口,20个

        3)映射到外部的串口,22个

完成

2024/9/18

注意:仅适用4.xx及以下内核,在5.15以上内核发现抱错。待更新驱动源码


http://www.niftyadmin.cn/n/5664853.html

相关文章

Java智慧云智能教育平台

技术架构: SpringBoot Mybatis Shiro mysql redis 功能描述: 支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改试卷。 功能模块:系统首页、教育教学模块、考试管…

【洛谷】P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题 的题解

【洛谷】P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题 的题解 题目传送门 题解 神奇构造题qaq 简化一下下题目,就是要求 a b c d gcd ⁡ ( a , b ) lcm ⁡ ( c , d ) a b c d \gcd(a, b) \operatorname{lcm}(c,d) abcdgcd(a,b)lcm(c,d) 分类讨论 …

等保2.0之Hana数据库测评

等保2.0之Hana数据库测评 HANA(High-Performance Analytic Appliance)是由SAP开发的一种内存数据库。它是一款面向实时数据处理和分析的高性能数据库解决方案。 HANA数据库具有以下特点: 内存计算:HANA利用内存作为主要存储介质…

无人机之飞行高度篇

无人机的飞行高度受到多种因素的制约,包括无人机本身的性能、无线信号的强度与稳定性,以及国家相关的法律法规等。具体而言,不同类型的无人机有不同的飞行高度限制: 微型无人机:飞行高度一般不得超过50米。这类无人机…

Leetcode 每日一题:Evaluate Division

写在前面 今天依旧是一道来自图论的题目,而今天这道题目的难度也是相对于前面分享过的题目中难度最大的一种。题主在第一次做这道题的时候根本没有反应过来这道题目可以转化为 图 来解决。而这道题目将一个 二维数组的乘除 运算转化为 图论 的过程需要一定的数学思…

Spring Boot项目:多模块还是单模块?架构师的一次深思熟虑!

在一个阳光明媚的下午,作为一名软件架构师,你正在一边喝着咖啡,一边思索着一个问题:Spring Boot项目到底是多模块好,还是单模块好呢? 这并不是一个简单的技术选择,它关系到整个项目的架构走向、…

Longman Dictionary of Contemporary English (朗文当代高级英语辞典)

Longman Dictionary of Contemporary English {朗文当代高级英语辞典} 1. Longman Dictionary of Contemporary English1.1. school References 1. Longman Dictionary of Contemporary English https://www.ldoceonline.com/ 1.1. school https://www.ldoceonline.com/dicti…

二叉树的广度优先遍历和题目

二叉树广度优先遍历利用队列 。 typedef char BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode; typedef BTNode* QDataType;// 链式结构:表示队列 typedef struct QueueNode {…