使用OS X中的USB与BeagleBone Black共享互联网的步骤

时间:2014-05-21 12:03:25

标签: networking ssh beagleboneblack

已经尝试过:

  1. 将BBB与USB连接至iMac
  2. 通过系统偏好设置 - >分享
  3. 与主板共享互联网
  4. ssh到董事会,然后尝试udhcp -i usb0
  5. 这就是它所说的:

    1. udhcpc (v1.20.2) started
    2. 卡住了,我得到了错误:Write failed: Broken pipe
    3. ssh退出
    4. 任何线索?

2 个答案:

答案 0 :(得分:3)

您的SSH会话因为您已连接到usb0而被卡住,并且udhcpc命令更改了它的IP地址!此时,您的ssh会话的另一端没有任何内容,因此您的本地计算机的ssh客户端最终会因管道错误而退出并退出。

一个明显的解决方法是通过tty.usbserial而不是ssh连接到IP地址。您认为usb端口分配的IP不应该发生变化。继续阅读以了解发生了什么。

首次使用BBB的大多数人使用附带的USB线将它们直接连接到互联网连接的计算机上。这正是BBB设计师打算让你做的事情,他们在BBBs创业网页上做得非常出色。

该主机以不同的方式共享它的连接,具体取决于它是Windows,OS X还是Linux,以及您的操作方式因您运行的操作系统版本而异。

Derek Molloy(Exploring BeagleBone)和Jason Kridner(Youtube OS X Beaglebone video)提供了一些相当详细的说明,以便与您的BBB一起使用基于主机的互联网共享。 Linux和Windows指令仍然很好,但是他们需要更新Yosemite的OS X信息 - Apple将他们的NAT和防火墙软件从ipfw和natd切换到pf。如果你尝试像杰森那样在他的视频中运行udhcpc,它的工作方式与他的相同。

回到OS X Yosemite的BBB SSH问题。以下是如何查看正在进行的操作:使用串行/ FTDI电缆连接到BBB,然后检查usb0的ip配置是否为beaglebone。

beaglebone:~# ifconfig -a usb0
usb0      Link encap:Ethernet  HWaddr 0e:be:ff:00:ff:00 inet addr:192.168.7.2
          Bcast:192.168.7.3  Mask:255.255.255.252

确认您可以ping共享其互联网连接的主机

beaglebone:~# ping 192.168.7.1
PING 192.168.7.1 (192.168.7.1) 56(84) bytes of data.
64 bytes from 192.168.7.1: icmp_req=1 ttl=64 time=0.681 ms
64 bytes from 192.168.7.1: icmp_req=2 ttl=64 time=0.533 ms
^C

尝试访问互联网IP(谷歌dns)

beaglebone:~# ping 8.8.8.8
connect: Network is unreachable

检查路由并确认没有默认路由,这就是上面的ping失败的原因(USB连接BBB默认设置为192.168.7.0/30网络,因此它只能达到192.168.7.0, .1,.2和.3地址)。

beaglebone:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.7.0     0.0.0.0         255.255.255.252 U         0 0          0 usb0

所以如果你运行udhcpc,它会为你添加缺少的路径。你也可以直接添加路线,但你也需要设置dns,而与OS X互联网分享它不会改变BBB的IP地址 - 见本帖末尾的链接)

beaglebone:~# udhcpc -i usb0
udhcpc (v1.20.2) started
Sending discover...
Sending discover...

这里是udhcpc更改IP而不是仅重新使用192.168.7.2的地方。新IP与OS X Internet共享使用的IP范围兼容,因此可能是DHCP服务器返回的原因。

Sending select for 192.168.2.34...
Lease of 192.168.2.34 obtained, lease time 85536

udhcpc然后抛出错误,因为没有要删除的默认路由

/etc/udhcpc/default.script: Resetting default routes

SIOCDELRT: No such process
然后,udhcpc添加默认路由 - 请注意它是OS X Internet Sharing 192.168.2地址,而不是原始192.168.7。

/etc/udhcpc/default.script: Adding DNS 192.168.2.1

一切正常,因此您可以看到新路由并成功ping外部IP

beaglebone:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 usb0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 usb0

beaglebone:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=4.08 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=53 time=3.59 ms
^C

有几篇博客文章展示了如何永久设置:

Sharing OS X Internet Connection over USB to BeagleBone Black

Changing usb0 IP address on the BeagleBone Black

答案 1 :(得分:2)

经过一番尝试和错误之后,这对我有用: 1.观看此视频:http://www.youtube.com/watch?v=Cf9hnscbSK8
2.如果您的BBB在2013年11月之后发货,而不是screen /dev/tty.usb*B 115200使用screen /dev/tty.usb* 115200,实际上您需要转到/dev目录并检查tty.usbXXX中哪个可用为您的BBB和屏幕它。就我而言,例如是tty.usb131 3.您继续执行视频中的步骤,直到opkg update这是您需要通过互联网进行的操作

这就是它的全部内容。