【发布时间】:2021-10-19 19:23:35
【问题描述】:
出于兴趣和学习的目的,我根据www.linuxfromscratch.org上的描述从头开始构建Linux(LFS+BLFS,都是10.0版本)。
通常操作系统可以启动,我基本上可以使用它。有几处不太顺利,在此向高手请教。
我想开始使用 Atmel 微控制器的程序员 AVRDragon。为了在 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.
上网查了一下,提示安装了上述先决条件并设置了udev规则。
我对 Linux 命令行、GCC 工具链和常用的 Linux 工具有很好的了解。但是我完全迷失了如何正确配置我的支持 USB 的 BLFS。有没有人可以给我一个关于如何解决这个问题的提示?非常感谢!
【问题讨论】:
-
您能否在问题中添加确切的错误消息?我无法在谷歌上搜索提供的那个。
-
嗨尼克,我在上面的描述中添加了确切的错误消息。
标签: linux libusb avrdude linux-from-scratch