找不到ttyUSB[id]

问题描述 投票:0回答:1

我刚刚开始使用 Raspberry Pi,我有一个项目想要从 USB 端口读取数据。我已经安装了Java JDK8并编写了编译运行的程序。但我收到消息称

/dev/ttyUSB1
不存在。

我只有一根电缆从 Arduino 上的 USB 端口连接到 RPi 上的 USB 端口,并且我使用的是 Raspbian Debian Wheezy。

当我转到 DIR

/dev/
并使用
$ ls
时,我只能找到
tty0
直至
tty63
。我在网上搜了一下,有人说可以用
ttyAMA0
,但是这个不行。我也搜索过同样的问题,但没有找到我的问题的答案。

我使用了

$ lsusb
,它在 001 号总线上为我提供了 4 个设备 (001-004)。我可以看到,例如,我的 USB 键盘被列为
Bus 001 Device 004: ID 1532:010b Razer USA, Ltd.
如果我运行
$ dmesg | grep Manufacturer
我会得到:
[xxxxxxxxx] usb 1-1.2: Manufacturer: Razer

所以我的问题是为什么我的 USB 设备没有被列为 ttyUSB[id]?我必须手动附加它吗?

说到 Linux,我有点菜鸟。

希望有人能帮助我!

linux raspberry-pi
1个回答
2
投票

我有一些坏消息要告诉你。 RPi 上没有 /dev/ttyUSB[n] 设备的原因(当您连接 Arduino 时)是因为您需要 Arduino 驱动程序(特别是 FTDI 驱动程序)。不幸的是,Arm 平台(包括 RPi)尚不存在这些驱动程序。这是根据 FTDI 网页显示的支持。请注意,Linux 驱动程序缺乏对 Arm 的支持。

显然,在运行 Linux 的 Arm 上,对 Arduino 进行编程的唯一方法是直接通过 GPIO 引脚通过串行端口接口。有关执行此操作的信息可以在here找到。您还必须在 Arduino 端执行类似的操作,请参阅此信息

一旦您通过直接串行连接了两个设备,那么您可能会遇到另一个问题。默认情况下,RPi Linux 显然将使用串行端口发送调试/控制台输出。为了使用串行接口进行某些操作,必须修改其行为。这篇文章讨论了这一点。特别是禁用内核使用串行端口进行终端使用,这似乎适用:

以下步骤(基于干净的 2012-07-15-wheezy-raspbian 安装

  1. 在 Raspberry 上打开终端,或通过 SSH 连接到 Raspberry Pi。

  2. 备份 /boot/cmdline.txt 文件。 sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt

  3. 编辑 /boot/cmdline.txt 文件: sudo vi /boot/cmdline.txt

该文件包含: dwc_otg.lpm_enable=0 控制台=ttyAMA0,115200 kgdboc=ttyAMA0,115200 控制台=tty1 $

删除引用UART串口(ttyAMA0)的参数: dwc_otg.lpm_enable=0 控制台=tty1 $

  1. 在 /etc/inittab 中注释下一行: T0:23:重生:/sbin/getty -L ttyAMA0 115200 vt100

  2. 重启树莓派 须藤重新启动

如果您使用与 Debian 不同的 Linux 发行版,情况会有所不同,但基础知识仍然适用(修改内核命令行)

© www.soinside.com 2019 - 2024. All rights reserved.