导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]如何在Linux开发工具的启动USB驱动程序?[liufengzhong]

 *第47638篇: [转帖]如何在Linux开发工具的启动USB驱动程序?

  
楼 主:liufengzhong 2014年8月27日18:34
 [转帖]如何在Linux开发工具的启动USB驱动程序?
回答:

USB驱动程序支持在原生Linux提供了。

方法要求启用驱动,但是,取决于你所使用的分布和内核版本。

哪个发行版支持USBFS?

已知提供USBFS支持:

Ubuntu 9.04或以上,
Ubuntu 9.10的内核2.6.31-19服务器,
CentOS的4.8,
CentOS的5.4,
一般情况下,任何分布用内核版本  <2.6.32

已知不提供USBFS支持:

Ubuntu 10.04,
一般情况下,任何分布用内核版本>   = 2.6.32


方法1:USBFS支持

如果你的发行版提供了USBFS支持,那么下面的命令将工作:

mount -t usbfs none /proc/bus/usb -o devmode=0666

为了使这种更改​​永久,确保下面一行是在/ etc / fstab文件中:

none /proc/bus/usb usbfs defaults,devmode=0666 0 0

这将自动安装在系统启动。

一旦 /etc/fstab添加已经做完,一个简单的命令应该挂载USBFS文件系统:

mount /proc/bus/usb

无论是FTDI / XTAG和XTAG-2的调试适配器现在应该工作。


方法2:没有USBFS支持

为了确保在任何一个FTDI / XTAG或XTAG-2调试适配器插入时的权限是在设备上是正确的,您需要配置“udev”来识别这个设备。

创建一个文件“/etc/udev/rules.d/99-xmos.rules”,其内容如下:

SUBSYSTEM!="usb|usb_device", GOTO="xmos_rules_end"
ACTION!="add", GOTO="xmos_rules_end"

# 20b1:f7d1 for xmos xtag2
ATTRS{idVendor}=="20b1", ATTRS{idProduct}=="f7d1", MODE="0666", SYMLINK+="xtag2-%n"

# 20b1:f7d3 for xmos startkit
ATTRS{idVendor}=="20b1", ATTRS{idProduct}=="f7d3", MODE="0666", SYMLINK+="startkit-%n"

# 0403:6010 for XC-1 with FTDI dual-uart chip
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", SYMLINK+="xc1-%n"

LABEL="xmos_rules_end"

注意:本ATTRS,MODE和SYMLINK节必须全部在同一行,因为每个规则只能在一行上。

现在告诉udev进行重新加载,以确保文件添加新的规则:

service udev reload

还必须拔下并重新插上USB线,让udev的识别设备的新规则。或者触发重新插上的udev类型为“udevadm触发”或“udevtrigger”命令,取决于在你的Linux分布上udev的版本。


FTDI / XTAG其他注意事项


FTDI的库需要USB设备的文件都可以从/ proc /巴士/ USB,不支持的/dev/bus/usb作为文件的位置。

但是,如果你的发行版不支持USBFS(以上方法1),但确实有一个的/proc/bus/usb空目录,你可以使用下面的绑定mount命令的解决方法:


mount --bind /dev/bus/usb /proc/bus/usb

如果你的发行版不支持USBFS,也没有一个的/proc/bus/usb目录(这是较新的内核的情况下,大约从2.6.32开始),然后联系XMOS的rthe设备库的非官方补丁的版本; 发送XMOS的支持标签,其中包括“Linux的FTDI库请求”的主题。


  
2楼:liufengzhong 2014年8月28日12:37
 [转帖]
抱歉跳到一个老问题...我刚刚收到了startkit,并渴望尝试下。但是把板插进去最新的 xTimeComposer 不能识别。当我在Eclipse按钮点击“立即检测硬件”,它迅速说没有硬件存在,如果我在 Linux prompt 做"dmesg" 或者 "usb-devices",它清楚地向我显示上述startKit正确的供应商和产品ID。

我使用的是Ubuntu 12.04 LTS,我认为是支持xTimeComposer ...

这没有 /proc/bus/usb,但是有 /dev/bus/usb,和我从笔记看有关XMOS的驱动程序可能有这样的问题。但是我不知道啥子解决方案,就是要!我试着创建rules.d / 99-xmos.rules文件,重装的规则并重新连接硬件,但无济于事。.

上面说明似乎缺少最后一点关键信息:

“如果你的发行版不支持USBFS,也没有一个的 /proc/bus/usb 目录(这是较新的内核的情况下,大约从2.6.32开始)。”

然后它结束... :(

如果有人知道的解决方案,请你分享,因为我不知道从哪里开始挖掘的Linux配置。


回答:

Ubuntu的12.04 LTS和内核版本3.2.0-24,xTIMEcomposer_Community_13.0.2 。通过方法2,然后重新启动电脑,xTIMEcomposer可以检测XTAG-2


>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:ARM,单片机,FPGA,嵌入式各自的区别及特点

[下一篇主题]:[转帖]xflash SPI规格