如何避免所提供的 Beagle Bone Black Debian 映像的配置会阻碍小工具驱动程序的加载?

如何避免所提供的 Beagle Bone Black Debian 映像的配置会阻碍小工具驱动程序的加载?

我在 BeagleBone Black 上使用了给定的 ArchLinux,并在测试环境中使用了小工具驱动程序(g_printer、g_serial),因为我遇到了一些 wifi 适配器的驱动程序问题。该驱动程序与 linux 4.19 不兼容。

经过一番麻烦之后,我转向了树莓派 3+,并且喜欢提供的 debian 映像在这种情况下更有用。

现在我尝试将此图像用于其他测试,但遇到以下消息

sudo modprobe g_printer
dmesg | tail

[ 321.445928] udc-core:找不到可用的 UDC - 将 [打印机] 添加到待处理驱动程序列表中

我也尝试卸载所有模块

sudo modprobe -rf g_ether
sudo modprobe -rf usb_f_mass_storage

但它们已经从 debian 镜像中使用来提供易于使用的界面。我没有找到卸载所有这些的方法。

我需要在启动时改变一些东西。但是我可以在哪里以及如何找到脚本并更改它们以避免负载?

答案1

那么,您可以通过在每个文件中递归搜索来开始搜索 USB0 接口加载的位置或每个文件中使用的驱动程序。

sudo grep -r "usb0" /

按照输入,如果足够慢你会在/opt/scripts/boot/中看到一些脚本。 grep 最终会崩溃。

debian@beaglebone:~$ ls /opt/scripts/boot/
am335x_evm.sh           autoconfigure_usb1.sh  capemgr.sh  generic.sh          legacy           omap5_uevm.sh
autoconfigure_usb0.sh~  beagle_x15.sh          default     generic-startup.sh  omap3_beagle.sh
debian@beaglebone:~$

正如您所看到的,我想通过添加“~”来避免加载 autoconfigure_usb0.sh。但这没有帮助。界面已经生成并加载了驱动程序。

因此,为了通过使用 configfs 操作 g_multi 驱动程序来并行加载驱动程序,我决定编辑 am335x_evm.sh。

我添加了以下行

USB_NETWORK_DISABLED="yes"
USB_IMAGE_FILE_DISABLED="yes"

但这并没有避免 ifs 内的加载。实际上我不明白为什么,但我猜环境变量是在脚本开始时解释的,或者我没有设置正确的值来触发以下 ifs

if [ ! "x${USB_NETWORK_DISABLED}" = "xyes" ]; then

所以我使用移动文件

mv /opt/scripts/boot/am335x_evm.sh /opt/scripts/boot/am335x_evm.sh~

并重新启动系统

sudo shutdown -r now

好吧,我可以使用小工具驱动程序 g_printer。

以下链接对我有帮助。每个对小猎犬骨头有太多麻烦的人都应该至少在小猎犬聊天室呆上几个小时围绕比格犬骨头的聊天群

他们再次指向 /opt/scripts/boot/ 文件夹以及动态加载多个驱动程序的不同方法驱动程序加载多个驱动程序实例以及提供的接口内核 USB 小工具配置接口

我如何递归地 grep帮助了。

相关内容