我最近在 Beagle Bone Black 上安装了 Ubuntu 13.04。此图像:
https://rcn-ee.net/deb/flasher/raring/BBB-eMMC-flasher-ubuntu-13.04-2013-10-08.img.xz
该微控制器允许通过 USB 在主机 PC(版本 12.04(精确)(64 位)、内核 Linux 3.2.0-56-generic)和 BeagleBone 之间共享互联网连接,因此我选择了它并按如下方式配置设备:
BeagleBone 黑色:
ifconfig usb0 192.168.7.2
route add default gw 192.168.7.1
主机:
sudo su
#eth0 is my internet facing interface, eth3 is the BeagleBone USB connection
ifconfig eth2 192.168.7.1
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth2 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
当 Internet 连接自行运行后,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=47 time=4.63 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=47 time=4.68 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=47 time=4.57 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=47 time=4.58 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 4.578/4.620/4.682/0.063 ms
为了配置 DNS,我也输入了,echo "nameserver 8.8.8.8" >> /etc/resolv.conf
但不幸的是ping google.com
,经过几秒钟的计算后,ping: unknown host google.com
所以 - 我知道,这个解决方案并不好,但对于这个会话来说,它可以工作,但实际上却不行。更重要的是,BBB 和 PC 都使用 resolvconf。老实说,我不知道如何使用这个程序配置网络... 我尝试/etc/network/interfaces
在 Beagle Bone Black 上进行如下更改:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0
iface eth0 inet dhcp
# Example to keep MAC address between reboots
#hwaddress ether DE:AD:BE:EF:CA:FE
# WiFi Example
#auto wlan0
#iface wlan0 inet dhcp
# wpa-ssid "essid"
# wpa-psk "password"
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
# Note on some boards, usb0 is automaticly setup with an init script
# in that case, to completely disable remove file [run_boot-scripts] from the boot partition
auto usb0
iface usb0 inet static
address 192.168.7.2
netmask 255.255.252.0
network 192.168.7.0
#broadcast 192.168.7.3
gateway 192.168.7.1
dns-nameservers 8.8.8.8 8.8.4.4
但没有帮助。
我不知道我还能做什么。请帮忙。
其他有用信息:
比格犬骨黑: ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
usb0 Link encap:Ethernet HWaddr ce:39:f3:4a:c7:94
inet addr:192.168.7.2 Bcast:192.168.7.3 Mask:255.255.255.252
inet6 addr: fe80::cc39:f3ff:fe4a:c794/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:608 errors:0 dropped:0 overruns:0 frame:0
TX packets:375 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:57484 (57.4 KB) TX bytes:63078 (63.0 KB)
路线
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.7.1 0.0.0.0 UG 0 0 0 usb0
192.168.7.0 * 255.255.255.252 U 0 0 0 usb0
uname -a
Linux arm 3.8.13-bone28 #1 SMP Fri Sep 13 03:12:24 UTC 2013 armv7l armv7l armv7l GNU/Linux
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
#domain localdomain
#search localdomain
#nameserver 192.168.1.1
个人电脑:
是否配置
eth0 Link encap:Ethernet Hardware Adresse 00:17:31:8d:6a:a6
inet Adresse:141.3.81.154 Bcast:141.3.83.255 Maske:255.255.252.0
inet6-Adresse: fe80::217:31ff:fe8d:6aa6/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:30732 errors:0 dropped:0 overruns:0 frame:0
TX packets:5888 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:7266589 (7.2 MB) TX-Bytes:1286462 (1.2 MB)
Interrupt:19
eth1 Link encap:Ethernet Hardware Adresse 00:04:75:ca:98:ee
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:0 (0.0 B)
Interrupt:21 Basisadresse:0xe400
eth2 Link encap:Ethernet Hardware Adresse c8:a0:30:ac:2c:95
inet Adresse:192.168.7.1 Bcast:192.168.7.3 Maske:255.255.255.252
inet6-Adresse: fe80::caa0:30ff:feac:2c95/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:418 errors:0 dropped:0 overruns:0 frame:0
TX packets:637 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:45704 (45.7 KB) TX-Bytes:88161 (88.1 KB)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:840 errors:0 dropped:0 overruns:0 frame:0
TX packets:840 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:142988 (142.9 KB) TX-Bytes:142988 (142.9 KB)
路线
Ziel Router Genmask Flags Metric Ref Use Iface
default i60-gw-int.ipr. 0.0.0.0 UG 0 0 0 eth0
141.3.80.0 * 255.255.252.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth2
192.168.7.0 * 255.255.255.252 U 1 0 0 eth2
uname -a
Linux i60p354 3.2.0-56-generic #86-Ubuntu SMP Wed Oct 23 09:20:45 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
重要的是 - 与 BBB 共享互联网的 PC 在大学网络中工作,这比普通家庭网络复杂得多 - 这会导致 DNS 解析问题吗?重要的是 - 如果我在 resolv.conf.d/head 中设置一个有意义的名称服务器(它像 8.8.8.8 一样简单启动并运行)并输入 ping google.com,机器会计算一段时间然后返回错误未知主机。如果我设置一个无意义的地址,这肯定不起作用(即 123.123.123.123),则会立即返回错误。
答案1
我通过将主机 (Fedora 20) 上的接口添加到受信任区域来实现这一点。不过,我很尴尬地说我不知道这到底是做什么的。我查看了原始 IP 表输出,没有看到任何关于此接口的提及,只有一些按区域划分的链。无论如何,请检查您的主机,看看是什么阻止了 IP 转发。我猜 ping 之所以有效,是因为默认值对 ICMP 流量更宽松。另外,我认为您在上面有一个拼写错误,usb0 的网络掩码应该是 255.255.255.252。感谢您发布您的工作,如果没有它,这会更加痛苦。
答案2
对于连接管理器覆盖的问题/etc/resolv.conf
,一个不成熟的解决办法是保护文件(chmod 444
似乎不被尊重):
chattr +i /etc/resolv.conf
使用“reboot”重新启动以验证更改是否生效
稍后若要取消对文件的保护:
chattr -i /etc/resolv.conf
要么这样做,要么在 connman 之后的启动时玩/etc/init.d/connman
刷新(即覆盖)的游戏。resolve.conf
答案3
要与安装了 Debian wheezy 的 beaglebone black(通过以太网)共享系统(我尝试过 ubuntu 和 fedora)WiFi 互联网,请按照此方法操作。
在电脑上单击网络图标>VPN 连接>配置 VPN>以太网单击 +添加
将连接命名为 beagledhcp 或任何你喜欢的名称
将 IPV4 设置更改为自动 dhcp
将附加 DNS 服务器设置为 192.168.7.2(beaglebone 的 IP)
点击保存
点击网络图标>vpn 连接>配置 vpn>以太网
点击 +添加
将连接命名为 beagleshared 或任何你喜欢的名称
将 IPV4 设置更改为“共享给其他计算机”
点击保存(当beaglebone的LAN线和USB线连接到PC时,可能会自动建立2个连接。您也可以编辑这些连接)
将开发板连接到 PC(LAN 和 USB)
打开终端并输入
[dawn@localhost ~]$ ssh [email protected]
Debian GNU/Linux 7
BeagleBoard.org BeagleBone Debian Image 2014-04-23
Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
Last login: Sat Aug 2 19:54:25 2014 from linux.local
root@beaglebone:~#
vi /etc/network/interfaces
将以下行添加到文件:为 beaglebone 以太网(eth0)设置静态 IP
auto eth0
iface eth0 inet static
address 10.42.0.69
netmask 255.255.255.0
gateway 10.42.0.1
dns-nameservers 8.8.8.8 8.8.8.9
保存文件
/etc/init.d/networking restart
执行 ifconfig 了解更改
ping 8.8.8.8
完毕
如果您有任何疑问,请给我发邮件:[电子邮件保护]
答案4
在服务器/网关的终端中输入:
arp -s "$IP" "$MAC" 酒吧
其中,$MAC 是 Linux 网关盒的以太网控制器的硬件地址。您可以通过运行 ifconfig 并检查以太网接口的 ether 属性来找到它。$IP 是连接到 Beagle 的同一服务器/网关中的 USB 端口的 IP。
:)