找不到ttyUSB [id]

时间:2014-09-20 16:58:33

标签: linux raspberry-pi

我刚开始使用我的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键盘被列为总线001设备004:ID 1532:010b Razer USA,Ltd。 如果我运行$ dmesg | grep制造商我明白了: [xxxxxxxxx] usb 1-1.2:制造商:Razer

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

对于Linux来说,我有点像菜鸟。

希望有人可以帮助我!

1 个答案:

答案 0 :(得分:2)

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

显然在运行Linux的ARM上,编程Arduino的唯一方法是直接通过GPIO引脚通过串行端口接口。有关这样做的信息可以在here找到。您还需要在Arduino方面做类似的事情,请参阅此information

一旦你通过直接串口连接两个设备,那么你可能会遇到另一个SNAFU。默认情况下,显然在RPi Linux上将使用串行端口发送调试/控制台输出。为了使用串行接口来处理必须修改的行为。这个article讨论了这一点。特别是禁止内核使用串口进行终端使用,这似乎适用:

  

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

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

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

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

  6.         

    此文件包含:   dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 $

         

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

         
        
    1. 评论/ etc / inittab中的下一行:   T0:23:respawn:/ sbin / getty -L ttyAMA0 115200 vt100

    2.   
    3. 重新启动Raspberry Pi   sudo reboot

    4.   

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