有什么方法可以在仅通过 USB 电缆连接的 BBB 和 PC 之间使用 TCP/IP 通信吗?

Is there any way to use TCP/IP communication between a BBB and PC connected only by USB cable?

是否可以在 Beaglebone Black 和仅通过 USB 电缆连接的 PC 之间使用 TCP/IP 通信?

我正在尝试使用通过 USB 电缆连接到计算机的 Beaglebone Black ADC 创建示波器。

我知道当我连接我的 BBB (Beaglebone Black) 时,我可以通过它的 ip 192.168.7.2 访问它,如果我在 cmd 上使用 ipconfig,我会在我的本地网络上看到这个设备(我正在使用 Windows 10),如果我在这个 IP 上执行 ping 命令,我就会收到数据。但是在 Beaglebone 端,我无法在其网络上看到我的计算机,也无法 ping 到我的计算机本地地址。

我还尝试在我的 PC 和 BBB 之间使用基本的 python 套接字连接教程,这里(PC 作为服务器,BBB 作为客户端):

https://pymotw.com/2/socket/tcp.html

我的 BBB 上收到连接被拒绝的消息。

请记住,我并不是假装使用以太网电缆或 WiFi 模块来解决它。

您可以发送传出 ping,这样您就知道可以建立 TCP/IP 连接。但是,这是一个 传出 连接,您想要接受和 传入 连接。

检查开发机器上的防火墙设置,如果传入连接被拒绝,您将无法连接。传出 ping 可能会通过防火墙,但传入连接仍可能被拒绝。因为你知道你可以连接,所以我建议检查防火墙规则是否允许建立传入连接。

如果您需要进一步调试,请获取 Wireshark 并查看在线路上的流量。

您需要设置静态 IP 地址,以便 BBB 使用 USB 以太网连接。

Derek Molloy 在这里解释:http://derekmolloy.ie/set-ip-address-to-be-static-on-the-beaglebone-black/

我仍在 Arch Linux 上通过 RNDIS 和 Gadget Ethernet 使用 DHCP,但在 Ubuntu 上它运行完美。您可能需要一些额外的命令,但总体思路是在 beaglebone 上使用 g_ether 启用 Gadget Ethernet。

我假设您使用的是 Angstrom。您可能需要修改 /etc/network/interfaces 并确保为 DHCP 配置它。

[BeagleBone Black]
insmod g_ether
echo "g_ether" > /etc/modules-load.d/gadget_ethernet
iface usb0 inet dhcp (/etc/network/interfaces)

连接到 Ubuntu 上的 USB 端口。使用 Ubuntu 共享互联网连接(需要 IPv4 才能完成)。确保您已启用 BeagleBone SSH 服务并在 Ubuntu 和 BeagleBone 上打开端口。

[Ubuntu]
nmap 10.42.0.0/24

ssh 到 Ubuntu 通过 USB 提供给 BeagleBone 的 IP 地址。

我已经安装了 Arch Linux Arm。对于您的应用程序,我推荐 Arch Linux Arm,它安装时没有图形用户界面。