将笔记本电脑的互联网访问共享给 BeagleBone Black,然后通过 VNC 服务器访问它。

10
我正在尝试使用笔记本电脑与Beaglebone Black共享互联网。以下是我到目前为止尝试过的方法:
1. 我通过USB电缆将Beaglebone Black连接到运行Windows 8的笔记本电脑上,然后进入网络和共享中心。然后,我分享了我想要共享的网络并将其与Beaglebone共享(它说是本地连接)。现在,我转到Beaglebone上的Gate one SSH并输入“ping www.google.com”,但它显示“未知主机”。
2. 现在,由于上述方法没有奏效,我使用标准以太网电缆连接了Beaglebone Black,并再次尝试共享我的网络,但仍然无法奏效。
这就是我想做的事情 - 如果能够连接到Internet,我想设置VNC服务器,并通过它在笔记本电脑上加载Linux的GUI。
如有任何帮助,将不胜感激。如果有其他实现方法,请告诉我。我已经尝试了大多数互联网上的教程,但没有成功。
5个回答

23

在长时间的等待后,我终于找到了如何在BBB上共享互联网的方法。这个问题每天至少被查看10次,所以我决定自己回答它。(此外,SO还给了我这个热门问题的徽章!)

我尝试的第一件事是:

我将运行Angstrom系统的BBB连接到运行Windows 8的笔记本电脑上。笔记本电脑识别出设备后,我可以通过putty进行SSH连接。

现在,我尝试让我的电脑返回ping请求,其IP地址为192.168.7.1。这一步对我来说从来没有起作用过,我的BBB永远无法将ping请求返回给我的电脑,但是我可以通过已提供的IP192.168.7.2(这是显而易见的)ping通beaglebone本身。

我在互联网上搜索并尝试了所有能够克服这个故障的方法,例如:

我将BBB中的默认网关设置为192.168.7.1

/sbin/route add default gw 192.168.7.1

但那也没用。

之前我认为必须要ping 192.168.7.1才能在BBB上连接到互联网。

由于什么都不起作用,我决定跳过这一步。我只需连接BBB,然后在windows 8的网络和共享中心中,从我的wifi连接共享互联网连接到beaglebone。

当你这样做时,你会发现如果你在网络共享之前启动putty,BB将失去它与putty的连接。这是因为电脑会给BB分配一个IP地址,你需要改成“自动获取IP地址”。

要做到这一点,右键单击BB连接的属性,然后从列表中选择IPV4 tcp/IP,进入其属性界面。在那里,你会看到“自动获取IP地址”的选项。

现在再次启动putty(因为之前的连接已经被终止),你会看到BB能够连接。

现在只需像我上面展示的那样添加默认网关,然后你就能ping 8.8.8.8或任何其他IP地址了。现在,只需像这样添加域名服务器:

cd /etc
more resolv.conf
nano resolv.conf 

nameserver 127.0.0.1下面添加这一行

nameserver 8.8.8.8

并将其保存,您就可以使用ping google.com

现在是VNC服务器部分。对于这种情况,我也错了。要连接到VNC服务器,您不需要BBB上的互联网连接。是的,您需要在其上安装VNC服务器,但之后不需要互联网连接。一旦安装完成,您只需在BB中执行以下操作:

x11vnc -bg -o %HOME/.x11vnc.log.%VNCDISPLAY -auth /var/run/gdm/auth-for-gdm*/database -display :0  -forever

按下回车键,BB将会回复VNC已在端口5900启动。

就这样,现在回到Windows并启动VNC服务器,添加地址192.168.7.2,你就可以在屏幕上看到GUI了。我也能够在Beaglebone上浏览互联网。

感谢支持,如果我的问题有误,请告知我。 如果您有任何疑问,请参考Derek Molloy的精彩视频:他讲解得非常好,并记得跳过ping回192.168.7.1的步骤,如果它不起作用。

我还没有想清楚。一旦我弄清楚了,我就会编辑答案。


两点提示:1)为了帮助其他想要做这件事的人,我必须对网络连接进行了相当大的调整才能让Windows与BeagleBone共享我的互联网连接,包括重启和关闭/打开其他本地连接。但最终,这些调整是值得的。(2)上面提供的链接中的说明可以使此过程更加清晰(我发现它很有帮助)。 - Sesquipedal
1
你好。这对我非常有帮助,但我有一些问题:1)如何在Linux下共享连接而不是Windows?2)启用VNC后,输入您提供的命令后,BB不会回复端口5900,并且我无法连接到VNC,它说主机计算机拒绝了连接。你能帮我吗? - Nur
1
@Nur,您应该开一个新的问题。 - Kyle Strand

4

1)在您的Beaglebone上:

sudo su

ifconfig usb0 192.168.7.2

route add default gw 192.168.7.1

2)现在分享网络并确保您的电脑IP地址为192.168.7.1。


在Win8.1上运行良好! - KundraLaci
第一和第二个答案都很棒! - Nur
1
如何使其在重启后保持持久性? - Nur
@Nur 请编写一个包含以下命令的bash脚本。 然后通过crontab在重启时安排运行该脚本: <code>crontab -e</code>将此行添加到cron中: <code>@reboot /path/to/your/script</code> - Muneeb
@Muneeb 我对 Linux 不够熟练,无法理解这个(目前只是 GUI 用户),有没有逐步教程的链接? - Nur

0

继续Vikas Arora提供的答案,要想为您的Beaglebone提供以太网通过USB连接,首先需要做三件事情。首先,使用Beaglebone创建本地网络并与PC共享Internet连接,这个过程在上面已经很好地解释了。还要设置IP地址自动获取。

其次,设置名称服务器为公共DNS服务器地址8.8.8.8,也在上面有所解释。但是这个设置不是持久的,即一旦重新启动,设置将会丢失。这是因为Angstrom上的网络管理器“connman”在启动时会重置etc/resolv.conf。为了纠正这个问题,我通过进入/lib/systemd/system并执行命令来禁用了我的设备上的connman服务。

systemctl stop connman.service

systemctl disable connman.service

这将使您的名称服务器文件持久化,如果需要,您可以随时重新启动connman服务。

第三步,您必须将网关设置为您的共享互联网机器的地址,如上所述。但是,此设置也不是持久的。为此,请在您的主目录中创建以下脚本:

echo "********Setting up the default gateway"

route add default gw 192.168.7.1

并创建一个在启动时启动并触发您的脚本的服务。这个过程在以下链接中有很好的解释: https://askubuntu.com/questions/506167/how-do-you-save-the-routing-table-on-the-beaglebone-blackangstrom

http://mattrichardson.com/BeagleBone-System-Services/


0
你面临的问题是解析名称服务器。如果你能够通过SSH(例如使用PuTTy)访问设备,那么你也可以为它提供互联网连接-但设备需要知道在哪里查找。
BeagleBone Black有一个名为Connman的实用程序来管理其连接。
/usr/lib/connman/test具有相关功能。
在其中使用./set-ipv4-method设置不同的值。务必正确设置名称服务器。如有疑问,请将8.8.8.8作为唯一条目。还要注意,你的BeagleBone的网关必须是你的计算机。
如果你不是新手并需要更详细的说明,请参见this.

ConnMan实用程序只在BeagleBone Black的Angstrom发行版中可用吗?我在运行Debian GNU / Linux 7的BeagleBone Black上没有它。 - Thomas Hsieh
1
是的,Connman在Angstrom中。其他发行版有自己的网络管理器。我认为Debian有network/interfaces - a-Jays
非常感谢!我被ConnMan实用程序困扰了几个星期,特别是因为beaglebone.org声称所有BeagleBone Black都运行Debian发行版,我只是假定所有在线教程都是针对Debian发行版的... - Thomas Hsieh
我不是很喜欢Angstrom。我发现Ubuntu适用于BeagleBone,至少对于我的目的来说是更好的选择。 - a-Jays

0

通过以太网将BeagleBone Black连接到路由器 现在使用 adb tcpip 5555
adb connect bbb_ip:5555 然后使用adb shell


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接