我有一个开发板通过USB连接到我的Linux机器上。为了调试我想监视串口。我的问题是我不知道应该如何理解我应该监视哪个串口。
在终端中运行lsusb
时,我看到
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0461:4e1d Primax Electronics, Ltd
Bus 001 Device 004: ID 0d28:0204 NXP LPC1768
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse
Bus 003 Device 002: ID 03f0:c511 Hewlett-Packard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我感兴趣的设备是NXP LPC1768,因此它“连接”到设备04的Bus01。但是,我应该监视哪个端口来读取该NXP LPC1768设备的串口?
运行dmesg | grep tty
时,我看到了
[ 0.000000] console [tty0] enabled
[ 97.204143] cdc_acm 1-1.2:1.1: ttyACM0: USB ACM device
但是这仍然没有给我那些我正在寻找的信息。
当我使用Windows时,我会转到设备管理器,端口选项卡,查看与设备关联的COM端口,并使用Putty等软件来监控串口。
你怎么能在Linux中做到这一点?
我很抱歉,如果之前已经问过这个问题,但我已经搜索了一个小时但仍然找不到答案..
答案 0 :(得分:1)
我的问题是我不知道应该如何理解我应该监控哪个串口。
如果这是一个开发板"被Linux PC识别为USB小工具,然后会有syslog条目
断开电路板,等待15秒,然后连接电路板
使用命令dmesg | tail
查看系统日志的结尾
你可能得到这样的东西:
$ dmesg | tail
[ 2094.481014] usb 1-1: Product: EDBG CMSIS-DAP
[ 2094.481019] usb 1-1: Manufacturer: Atmel Corp.
[ 2094.481023] usb 1-1: SerialNumber: ATML0000001351195199
[ 2095.033449] hidraw: raw HID events driver (C) Jiri Kosina
[ 2095.038550] cdc_acm 1-1:1.1: ttyACM0: USB ACM device
[ 2095.038874] usbcore: registered new interface driver cdc_acm
[ 2095.038877] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 2095.112372] usbcore: registered new interface driver usbhid
[ 2095.112376] usbhid: USB HID core driver
[ 2095.237686] hid-generic 0003:03EB:2111.0001: hiddev0,hidraw0: USB HID v1.11 Device [Atmel Corp. EDBG CMSIS-DAP] on usb-0000:00:1d.7-1/input0
$
显示的前三行与低级USB协议的完成有关 其余七行是USB设备安装 它是显着的第五条线,因为它表明连接的板实现了USB CDC(通信设备类)ACM(抽象控制模型)来模拟串行端口。
如果SBC作为串行设备连接(例如 / dev / ttyACM0 ),则可以使用终端仿真器程序,例如minicom或puTTY。 / p>
$ minicom --device /dev/ttyACM0
运行
dmesg | grep tty
时,我看到了[ 0.000000] console [tty0] enabled [ 97.204143] cdc_acm 1-1.2:1.1: ttyACM0: USB ACM device
但是这仍然没有给我提供我正在寻找的信息。
实际上,这是您需要的信息(假设此设备适用于您的SBC)。
ADDENDUM
当我尝试使用putty访问它时,我收到错误消息"无法打开连接无法访问串口"。
大概设备节点 ttyACM 归root
和群组dialout
所有:
$ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 Sep 22 15:54 /dev/ttyACM0
确认您的用户名属于dialout
组(以便您可以访问此设备)。
$ whoami
george
$ grep dialout </etc/group
dialout:x:20:george
如果您的用户名不是dialout
组的成员,请使用Linux发行版的管理(或系统工具)程序将您的用户名添加到dialout
。或者查看https://unix.stackexchange.com/questions/14354/read-write-to-a-serial-port-without-root或https://askubuntu.com/questions/112568/how-do-i-allow-a-non-default-user-to-use-serial-device-ttyusb0