Интернет через USB на BeagleBone Black

11

Я недавно установил Ubuntu 13.04 на Beagle Bone Black. Это изображение:

https://rcn-ee.net/deb/flasher/raring/BBB-eMMC-flasher-ubuntu-13.04-2013-10-08.img.xz

Этот микроконтроллер позволяет обмениваться интернет-соединением между хост-ПК (версия 12.04 (точная) (64-битная), ядро ​​Linux 3.2.0-56-generic) и BeagleBone через USB, поэтому я выбрал его и настроил устройство следующим образом:

BeagleBone Black:

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

После этого интернет-соединение работает само по себе, когда 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 и ПК - используют 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

но это не помогло

Я не знаю, что еще мне делать. Пожалуйста помоги.

Дополнительная полезная информация:

Beagle Bone Black: 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

ПК:

Ifconfig

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, работает в сети университета, которая намного сложнее, чем обычная домашняя сеть, - может ли это вызвать проблемы с разрешением DNS? Что еще важно - если я установлю сервер имен, который имеет смысл, в resolv.conf.d / head (который просто запущен и работает как 8.8.8.8) и наберу ping google.com, то машина некоторое время вычисляет, а затем возвращает ошибку неизвестный хост , Если я установил бессмысленный адрес, который точно не работает (то есть 123.123.123.123), ошибка возвращается немедленно.

Игорь Енджейчак
источник
С (не обратно) ББ ваши команды работают без ошибок. Я просто заменил сервер имен 127.0.0.1 на сервер имен <ip of dns>, и разрешение имени хоста сработало ...
Rémi

Ответы:

5

Я получил это, добавив интерфейс на моем хосте (Fedora 20) в доверенную зону. Мне стыдно сказать, что я не знаю, что это на самом деле делает, хотя. Я посмотрел на исходные таблицы IP-адресов и не увидел упоминаний об этом интерфейсе, только некоторые цепочки по зонам. В любом случае, проверьте ваш хост и посмотрите, что может помешать пересылке IP. Я предполагаю, что пинг работает, потому что значения по умолчанию более смягчены для трафика ICMP. Кроме того, я думаю, что у вас есть одна опечатка выше, маска сети для usb0 должна быть 255.255.255.252. Спасибо за публикацию того, что вы сделали, без этого было бы гораздо более болезненно.

Джим Уайетт
источник
Это, безусловно, помогает.
Осьминог
1

В случае перезаписи диспетчера /etc/resolv.confподключений хриплое решение заключается в защите файла ( chmod 444кажется, не соблюдается):

chattr +i /etc/resolv.conf

перезагрузите компьютер, чтобы убедиться, что изменение выполнено с помощью 'reboot'

Чтобы снять защиту файла позже:

chattr -i /etc/resolv.conf

Это было либо сделать это, либо сыграть в /etc/init.d/connmanигру обновления (т.е. перезаписать) resolve.confво время загрузки после connman.

Н Шарма
источник
1

Чтобы поделиться системой (я пробовал ubuntu & fedora) WiFi интернет с beaglebone black (через ethernet) с установленным Debian wheezy, следуйте этому методу.

На ПК нажмите значок сети> VPN-подключения> настроить VPN-сеть> нажмите + Добавить

назовите соединение beagledhcp или что-то, что вам нравится

изменить настройки IPV4 на автоматический DHCP

дополнительные DNS-серверы до 192.168.7.2 (IP beaglebone)

нажмите сохранить

нажмите на значок сети> VPN-подключения> настроить VPN-сеть> Ethernet

нажмите + Добавить

назовите beagleshared соединение или что-нибудь, что вам нравится

изменить настройки IPV4 на «общий доступ к другим компьютерам»

нажмите «Сохранить» (2 подключения могут быть установлены автоматически при подключении к ПК кабеля локальной сети и кабеля USB beaglebone. Также можно редактировать эти подключения)

подключите плату к ПК (LAN & USB)

Откройте терминал и введите

[dawn@localhost ~]$ ssh root@192.168.7.2
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

добавить эти строки в файл: установить статический IP для beaglebone Ethernet (eth0)

    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, чтобы узнать изменения

пинг 8.8.8.8

сделано

если у вас есть какие-либо сомнения, напишите мне: dawnpaulfacebook@gmail.com

user311690
источник
Часть о «дополнительных DNS-серверах к 192.168.7.2 (IP beaglebone)» не имеет ничего общего.
Осьминог
0

Для меня важной частью головоломки также было выполнение этих команд на хост-компьютере, к которому подключен BBB:

iptables --flush            
iptables --table nat --flush
iptables --delete-chain     
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface enp8s0 -j MASQUERADE
iptables --append FORWARD --in-interface enp8s0 -j ACCEPT

И, возможно, также это:

echo 1 > /proc/sys/net/ipv4/ip_forward
Осьминог
источник
0

Введите в терминале сервера / шлюза:

arp -s "$ IP" "$ MAC" паб

Где $ MAC - это аппаратный адрес контроллера Ethernet шлюза linux. Вы можете найти его, запустив ifconfig и проверив свойство ether вашего интерфейса Ethernet. $ IP - это IP-адрес порта USB на том же сервере / шлюзе, который подключен к биглю.

:)

Марк
источник