串口能否映射到USB口上

我现在想接入自己的驱动板,但是只能用USB去和板卡连接,这样的话就会出现找不到串口的现象,然后我使用USB DDK这个方法就会出现签名不通过。我测试了一下是 内核没有 ch341.ko就无法识别到我的USB设备,这种现象是要换系统嘛还是要怎么解决

你好,你能否详细描述下问题件?是用K1 通过USB链接你的驱动板,你的驱动板有一个串口。然后K1的系统没有ch341.ko吗?
你的K1安装的是什么系统?

我测试了一下是 内核没有 ch341.ko 就无法识别到我的USB设备,这种现象是要换系统嘛还是要怎么解决

我看了一下,K1 Bianbu Desktop 2.2以后的版本,内核是有带 ch341.ko 的。
image

可以提供下你K1的这些命令的日志吗:



lsusb
cat /sys/kernel/debug/usb/devices
uname -a
lsb_release -a
 ls /lib/modules/6.6.63/kernel/drivers/usb/serial/

可以试试给K1烧录用这个镜像再试试:
https://archive.spacemit.com/image/k1/version/bianbu/v2.2/bianbu-24.04-desktop-k1-v2.2-release-20250430190125.zip

K1现在装的是OH5.0的系统,然后我想把驱动板用USB和板卡连接

是的,我看了代码是有ch341.ko但是无法识别我的设备




image
image
image

您好,您这个是必须使用OH的项目吗。
这个应该是OH的内核没有配置使能这个驱动。您可以参考 文档:
2. K1_OH5.0下载编译烧录说明
中按照 6.1.1 修改内核的 config的步骤,打开 USB_SERIAL_CH341 配置,建议配置为 y。然后,参考 6.1 的部分,编译一个新的内核,然后新的打包新的镜像进行烧录。

您有任何问题,我们保持沟通

1 Like

关于CH341的配置我只找到了这一个烧录完成后我试过也没有识别到USB设备,所以我就把后面的一些驱动也一起加入内核里也是没有

你好,在 USB_SERIAL_CH341=y 的 kernel 启动后
执行下这些命令把结果贴上来看看:

cat /sys/kernel/debug/usb/devices
zcat /proc/config.gz |grep CH341

cat /sys/kernel/debug/usb/devices关注下面的内容是否还是 none:

并且关注一下 dmesg 内核打印是否有如下打印:
[14983.761246] usbcore: registered new interface driver ch341
[14983.764108] usbserial: USB Serial support registered for ch341-uart


你好怎么这次那个串口设备没有识别到的?
之前的 cat /sys/kernel/debug/usb/devices 中有的节点这次不见了,您的外设连接情况和之前的时候是保持一致的吗:


和 lsusb 的输出,是有你那个串口设备的:

你再跑下 lsusb 看看 1a86 55d4 那个设备在不在?

lsusb 有 1a86 55d4 设备应该是你连接了 USB 线材到您的板子,就能识别到的,和是否打开 CH341 无关?
先确认下这个?

有接入,刚才应该没插好导致没识别到,这个是插好驱动板的输出:

你好我研究了一下,你这个设备 1a86 55d4 应该是比较新的设备。内核没有默认绑定到 ch341 驱动,因此你的应用层DDK驱动代码会去手动加载ch341.ko绑定。但是我之前建议你配置成y(Sorry),就没有这个ko了,只能走默认绑定的配置。
要不您再试试配置成 USB_SERIAL_CH341=m,这样会编译出 ko,可能需要你手动拷贝一下 ko 到OH的特定目录,结合代码中是如何读取加载ch341.ko文件。然后再试试呢。我这边没有这个DDK代码,辛苦你再试试呢。

就是把驱动按模块去跑运行嘛,我试一下,我这个驱动板接入电脑发现是CH9102的

您有ubuntu/linux电脑吗?如果是用ubuntu电脑,您直接接到电脑 cat /sys/kernel/debug/usb/devices,看看加载的是什么驱动,我这边告诉你应该打开什么配置呢

我有检索到qinheng官方是有提供一个 CH9102 的驱动。

不确定是否需要自己拉取编译这个呢。
您是否有你这个驱动板的相关资料我也帮您看看呢?



这是我把设备接入虚拟机cat /sys/kernel/debug/usb/devices跑出来的

你好,你把这个config也打开再试试:
CONFIG_USB_ACM。
CONFIG_USB_SERIAL_GENERIC
CONFIG_USB_SERIAL_SIMPLE
OH的ko不确定是否需要手动拷贝到一个目录呢,如果编译验证时间不会很久,可以先试试=y。