我正在尝试配置运行bone-debian9.9 的pocketbeagle。内核版本是4.14.108-ti-r113。该板有一个 Micro USB 端口,具有以下功能:rndis、acm、ecm 和 Mass_storage。 USB 接口 (usb0) 让我可以通过两种方式获取 shell - 通过 ssh 和通过 COM 端口。
我希望 usb0 上的 COM 端口不是 shell。我希望能够插入设备、打开 COM 端口并接收字节流。我可以通过 UART 外设发送/接收任意字节,方法是将其连接到 USB 转串口转换器并打开 COM 端口。是否也可以从 USB COM 端口获取此信息?我怎样才能做到这一点?
到目前为止我已经尝试过/考虑过的:
1)我尝试摆脱登录终端,认为serial-getty@service是问题所在。屏蔽服务后,我无法打开 COM 端口。
2)我不确定是否需要编写另一个驱动程序 - 我认为 acm 驱动程序就足够了。
3) 修改 /etc/systemd/logind.conf 以使 NAutoVT=0 和 ReserveVT=1 也没有帮助。
另一件事可能相关:我需要 uart0,它也是一个 shell。我通过掩蔽去除了外壳[电子邮件受保护]和[电子邮件受保护]。我的应用程序使用 termios.h 在 /dev/ttyO0 上配置了一个终端,然后它就工作了。我想知道屏蔽serial-getty@service 是否是正确的做法,我应该注册某种回调来在连接USB 设备时配置终端。如果是这种情况,那么我可以使用此处概述的方法:https://serverfault.com/questions/766506/automount-usb-drives-with-systemd
先感谢您
答案1
原来是systemctl mask[电子邮件受保护]是正确的。要使用串行端口,我必须使用 open() 打开 /dev/ttyGS0 并使用 termios 配置它