【发布时间】:2022-03-16 08:05:45
【问题描述】:
我想从/从内核模块连接到 /dev/ttyUSB 端口(串行)的 arduino 发送和接收数据。我已经看到了足够多的方法来在用户空间中做到这一点,但这不是我的问题。
如果我不想在内核模块中使用文件 io,那么能够通过主要和次要数字(188,0 表示 /dev/ttyUSB0)访问 tty 真的很有帮助
相关但没有回答我的问题:
How to write to a tty from kernel space with only major and minor device numbers available?(1 个回答,但使用用户空间)
Access /dev/ttyACM0 from kernel(还没有答案)
How can I write to TTY from a kernel module?(1 个回答,但如何从串口获取struct tty_struct?)
Read and write to Arduino serial using a kernel module(1 个回答,但使用文件 io,替代方案太模糊)
https://unix.stackexchange.com/questions/585573/how-does-serial-driver-get-attached-to-a-tty-port(还没有答案)
【问题讨论】:
-
你需要使用内核API,否则为什么不在用户空间做呢?
-
“我已经看到了足够多的方法来在用户空间中做到这一点,但这不是我的问题。”
-
我想 100% 在内核空间中完成
-
编写驱动并绑定到对应的serdev。如果没有 serdev,尝试查找 ACM 是否有内核 API,如果没有,则需要开发它们。打开文件,尤其是。热插拔设备是完全错误的方法。
标签: linux-kernel usb tty