Beyond Linux From Scratch: avrdude编译时没有usb支持



出于兴趣和学习目的,我根据www.linuxfromscratch.org上的描述从头构建了Linux (LFS+BLFS,都是10.0版本)。

总的来说,操作系统可以启动,我基本上可以使用它。有几件事不顺利,所以我想在这里向专家们请教。

我想去AVRDragon, Atmel微控制器的程序员。为了在Linux上使用它,我使用了"avrdude_"程序。我的目标是学习avrdude如何工作以及如何与操作系统交互。因此,我想用调试信息从源代码构建它。

要从源代码构建avrdude, libusb/libusb_1_0和libelf是必需的。我知道libusb_1_0是与BLFS一起安装的。Avrdude请求libusb和/或libusb_1_0。我不能说只有libusb_1_0是否有问题。(libusb_1_0比libusb更新,不是吗?)另外,我已经安装了libelf(因为libelf已经安装,我不能再构建内核了,但现在这应该不是问题)。在内核中,USB支持是启用的(设备驱动程序->USB支持->支持主机端USB).

我创建了一个udev规则:

# Dragon
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", GROUP="plugdev", MODE="0666"

…lsusb这样写:

# lsusb
...
Bus 003 Device 006: ID 03eb:2107 Atmel Corp. AVR Dragon
...

此外,我使用脚本将示例应用程序编程到微控制器上,该微控制器在我的参考系统上工作。

然而,在我的BLFS上运行avrdude,我得到一个错误消息,avrdude不是用USB支持构建的:

# avrdude -p m328p -c dragon_isp -B5 -F -P usb -V -U flash:w:Debug/hello_world.elf
avrdude was compiled without usb support.
avrdude done.  Thank you.

查找internet,指示安装上述先决条件并设置udev规则。

我对Linux命令行、GCC工具链和常用的Linux工具有很好的了解。但我完全失去了如何正确配置我的BLFS与USB支持。有人能给我提示一下怎样解决这个问题吗?很多谢谢!

显然,要获得完整的功能,您需要libusb-1.0和libusb-0.1。configure.ac脚本仅为前者定义HAVE_LIBUSB_1_0,为后者定义HAVE_LIBUSB,而包含错误信息的*.c文件仅检查HAVE_LIBUSB

虽然当前的BLFS没有构建libusb-0.1的指令,但您可以在BLFS 6.3中看到libusb-0.1.12的指令。

相关内容

  • 没有找到相关文章

最新更新