我有两个PICAXE微控制器。实际上,我有Ubuntu14.04LTS(信任Tahr)。
我必须下载LinAXEpad应用程序并安装以下库:
sudo apt-get install libgtk2.0-0: libcairo2 i386: i386 libpango1.0-0: libgdk-pixbuf2.0-0 i386: i386 libstdc ++ 6: i386
我按照以下指示行事:
AXE027电缆包含一个内部电子电路,基于FTDI USB到串行转换芯片.通过名为“ftdi_sio”的内核驱动程序(内核2.4.20及更高版本),默认的Linux安装已经支持该芯片。因此,无需下载驱动程序。
然而,由于许多不同公司的不同产品都使用相同的FTDI芯片,因此每个产品都有一个独特的“产品标识”号来进行识别。
这个独特的产品id被编程到电缆内部的芯片中,这样当电缆连接到计算机时,它就可以被唯一地识别。
AXE027 USB电缆的唯一产品id是0xbd 90。供应商id为0x0403。但是,大多数Linux发行版安装的默认驱动程序ftdi_sio只识别FTDI芯片(例如0x6001)的几个(默认)产品ids。因此,需要对驱动程序进行“修补”,以便正确支持the 027‘S 0xbd 90产品id。
所有三个选项都以相同的简单方式检查是否正确操作--在将AXE027电缆插入USB端口后,名为/dev/ttyUSB0的符号链接文件应自动出现在操作系统中。
请注意,任何使用AXE027电缆的应用程序都需要处理这个USB符号链接:
这与传统的系列不一样。(“COM1”)端口链接:
4.2) Linux选项2(建议)创建一个新的udev规则,以便每次计算机启动时都会自动应用mod探测规则。创建一个新文件(例如使用KWrite、gedit或类似的文本编辑器),名为:
/etc/udev/rules.d/99-axe027.rules
为此,请打开终端控制台,然后键入:
sudo kwrite /etc/udev/rules.d/99-axe027.rules
然后输入以下文本(注意下面的最后两行应该输入为一行),然后保存该文件。
# /etc/udev/rules.d/99-axe027.rules
# contains axe027 udev rule to patch default
# FTDI product id to AXE027 product id (0xbd90)
SYSFS{idProduct}=="bd90",
SYSFS{idVendor}=="0403",
RUN+="/sbin/modprobe -q ftdi_sio product=0xbd90 vendor=0x0403"
然后,当系统启动时,将始终应用新规则。若要在不重新启动的情况下立即尝试新规则,请打开终端控制台,然后键入:
(原始代码)
sudo udevcontrol reload_rules
(我的守则)
sudo udevadm control --reload-rules
然后,我尝试执行LinAXEpad应用程序,访问: VIEW>>OPTIONS (选择微控制器),最后在固件上“单击”
我拿到了这个:
无法打开端口/dev/ttyUSB0 0 (err=2:没有这样的文件或目录)
我能做什么?
尝试使用LSUSB:http://www.subirimagenes.com/otros-lsusb-9076605.html
尝试使用DMESG:http://www.subirimagenes.com/otros-dmesg-9076607.html
发布于 2014-09-18 08:18:55
dmesg
为您提供了一些有用的提示(见您发布的图片)。
udev
规则一定是不正确的:参见ftdi_sio
告诉参数未知/忽略的行。无论如何,加载这个模块有一些结果:您的适配器现在被称为串行适配器,并且创建了ttyUSB0
,但是据说该驱动程序是实验性的,您应该要求linux-usb@vger.kernel.org
将您的适配器添加到正确的驱动程序中(我会在您的位置上这样做,这可能是更好的方法)。现在,关于拒绝的权限,您可以:
/dev
文件夹和ls -l
,以找到拥有ttyUSB0
的组。(可能是tty
)。它应该有rw
权限。sudo adduser theuser thegroup
。它应该能解决权限问题。和BTW,当像modprobe -c
这样的命令的输出太大时,可以将其输送到less或grep:
sudo modprobe -c | less
sudo modprobe -c | grep ftdi_sio
发布于 2014-11-04 06:32:31
在最近的内核(绝对是14.04LTS)中,ftdi_sio
模块不再接受产品和供应商的选择。相反,您必须手动将值写入/sys/bus/usb-serial/drivers/ftdi_sdio/new_id
。您可以使用以下udev规则将其自动化:
ACTION=add, ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bd90", RUN+="/sbin/modprobe", RUN+="/bin/sh -c 'echo 0403 bd90 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
/etc/udev/rules.d/99-axe027.rules
sudo udevadm control --reload
重新加载规则。或者重新启动。https://askubuntu.com/questions/525016
复制相似问题