This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/BEAGLEBK:使用 VirtualBox 进行 USB RNDIS 引导

Guru**** 1963925 points
Other Parts Discussed in Thread: UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669557/linux-beaglebk-using-virtualbox-for-usb-rndis-boot

器件型号:BEAGLEBK

工具/软件:Linux

您好!

我将使用 BeagleBone Black 测试 AM335x 处理器。  我正在尝试使用 RNDIS 和 tftp 进行引导以执行初始数据加载。  如果可以从 VirtualBox Linux 计算机管理,则会使生活变得更轻松。

在 BeagleBone 上、我已将 eMMC 归零、因此电路板上没有任何内容。  插入 USB 迷你电缆后、我会在 Linux 主机上获得 USB RNDIS 设备。  我可以通过 USB 网络设备看到 DHCP 请求。

要将其移动到 VirtualBox,我使用了 vagrant 来配置虚拟机,如下所示:

vagrant.configure ("2")执行|config|
 config.vm.box ="ubuntu/xenial64"

 config.vm.box_check_update = false
 config.ssh.forward_agent = true

 config.vm.SYMODED_folder "../../tisdk/build/arago-tmp-external-linaro-toolchain/deploy、"/Yocto_deploy"

 config.vm.provider "VirtualBox "执行|Vb|
   vb.memory ='256'
   vb.custom['modifyvm'、:id、'--usb'、'on'、'--usbehci'、 '打开'
   vb.custom["modifyvm"、:id、"-ioapic"、"on"
   vb.custom['usbfilter'、'add'、'0'、'--target'、:id、 '--name'、'Texas Instruments AM335x USB'、'--VendorID'、'0x0451'、'--ProductID'、'0x6141']
   vb.custom["modifyvm"、:id、"-hwvirtex"、"on"
 结束

 config.vm.provision "shell"、内联:<-shell
   APT-Get 更新
   apt-get dist-upgrade -y
   apt-get install -y tftpd-hPA tftp iSC-dhcp-server
 外壳
结束

但是 、插入 BeagleBone Black 后、VirtualBox 日志文件会显示:

00:09:35.220858错误[COM]:arc=ns_error_failure (0x80004005) aIID={872da645-4a9b-1727-bee2-5585105b9eed}aComponent={ConsoleWraps}aText={无法为 USB 设备创建代理设备。 (错误:verr_read_error)}、preserve=false a ResultDetail=0

可以将其他 USB 设备插入到虚拟机中,而不会出现任何问题。  只有处于 USB 引导模式的 AM335x 处理器存在问题。

使用主机的 VBoxManage 列表

UUID:              8424bdc3-bbf3-4be4-bb8e-7d691bb91b2a
VendorID:          0x0451 (0451)
产品 ID:         0x6141 (6141)
修订版本:          0.0 (0000)
端口:              2.
USB 版本/速度: 2/full
制造商:      德州仪器(TI)
产品:           AM335x USB
地址:           sysfs:/sys/devices/pci0000:00/0000:00:14.0/USB1/1-3//器件:/dev/vboxusb/001/044
当前状态:     可用

是否有人设法在 VirtualBox 下使用 AM335x 处理器获取 USB 引导?

谢谢、
Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    VMware 或 VirtualBox 中的 USB RNDIS 引导从未如此幸运。

    Linux Box 步骤如下(必须在 Ubuntu 中删除网络管理器): e2e.ti.com/.../1139985

    但在 Win7中使用 Uniflash 也不算太糟糕(包括步骤和屏幕截图)、网址 为:e2e.ti.com/.../1165070

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件型号:BEAGLEBK

    工具/软件:Linux

    这不是一个实际的问题、我只是想发布对我的原始问题的后续操作、该问题现已锁定:

    无法使用虚拟机对我来说是一个真正的问题、因为我运行 Ubuntu、并且不想用 RNDIS / DHCP 配置破坏我的计算机配置。

    虽然 VirtualBox 当前不支持 RNDIS 设备(至少我找不到解决方案),但我发现了一个解决方法,就是将网络设备桥接到虚拟机中。

    1. 在 Linux 主机上、设置 udev 在插入 Sitara RNDIS 设备时运行脚本:

    /etc/udev/rules.d/40-setup_rndis.rules:
    action="add"、subsystem="net"、kernel="usb*"、run+="/usr/local/bin/setup_rndis.sh start '%E{interface}'%k %n"
    action="remove"、subsystem="net"、kernel="usb*"、run+="/usr/local/bin/setup_rndis.sh stop"

    2. 在 Linux 主机上,编辑/usr/local/bin/setup_rndis.sh

    if =${interface}

    CAT < /etc/NetworkManager/conf.d /$if.conf
    [密钥文件]
    非受管设备=Mac:$(ifconfig $if | head -n 1 | awk '{print $5}')
    EOF

    服务网络管理器强制重新加载

    ifconfig ${if}0.0.0.0及以上
    ifconfig br0 up || brctl addbr br0
    brctl addif br0 ${if}


    3. 在 VirtualBox 中,将网络接口“桥接”为 br0

    是的、您正在将 VBox 接口桥接至桥接器。  :)  USB 接口经常上下移动,因此将其添加到桥接器可以稳定主机和 VM 之间的连接。

    现在、只要插入 RNDIS 设备、USB 接口就会添加到 br0桥接器中。  虚拟机桥接到该接口、因此它将从 Sitara 获取所有网络流量。  VirtualMachine 可以运行 DHCP 服务器和 TFTP、并为 Sitara 提供 u-boot、zImage 等。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Matt、

    非常感谢您分享您的解决方案!
x 出现错误。请重试或与管理员联系。