Internet via USB no BeagleBone Black


11

Eu instalei recentemente o Ubuntu 13.04 no Beagle Bone Black. Esta imagem:

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

Este microcontrolador permite compartilhar a conexão com a Internet entre o PC host (versão 12.04 (preciso) (64 bits), o Kernel Linux 3.2.0-56-genérico) e o BeagleBone over USB, por isso optei por configurar o dispositivo da seguinte forma:

BeagleBone Black:

ifconfig usb0 192.168.7.2
route add default gw 192.168.7.1

PC host:

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

Depois que a conexão com a Internet funciona, quando ping 8.8.8.8eu recebo os resultados:

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

Para ter o DNS configurado também, digitei também, echo "nameserver 8.8.8.8" >> /etc/resolv.confmas infelizmente quando ping google.comrecebo, após alguns segundos de computação,ping: unknown host google.com

Então, eu sei que essa solução não é boa, mas para esta sessão, ela pode funcionar e não. Além do mais, ambos - BBB e PC - usam resolvconf. Para ser sincero, não tenho idéia de como configurar a rede usando este programa ... Tentei mudar o /etc/network/interfacesBeagle Bone Black assim:

# 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

mas não ajudou.

Não sei o que mais devo fazer. Por favor ajude.

Informações úteis adicionais:

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)

rota

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

PC:

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)

rota

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

O que pode ser importante - o PC, que compartilha a Internet com o BBB, funciona na rede da Universidade, que é muito mais complicada do que na rede doméstica normal - poderia causar problemas na resolução do DNS? O que é importante ainda - se eu definir um servidor de nomes que faça sentido em resolv.conf.d / head (que está simplesmente funcionando como 8.8.8.8) e digite ping google.com, o maschine calcula por algum tempo e retorna erro host desconhecido . Se eu definir um endereço sem sentido, o que certamente não funciona (por exemplo, 123.123.123.123), o erro será retornado imediatamente.


Com um BB (não retornado), seus comandos funcionam sem erros. Acabei de substituir nameserver 127.0.0.1 com nameserver <ip do meu DNS> e resolução de hostname trabalhou ...
Rémi

Respostas:


5

Eu consegui isso trabalhando adicionando a interface no meu host (Fedora 20) à zona confiável. Estou com vergonha de dizer que não sei o que isso realmente faz. Eu olhei para a saída de tabelas IP brutas e não vi nenhuma menção a essa interface, apenas algumas cadeias por zona. De qualquer forma, verifique seu host e veja o que poderia estar impedindo o encaminhamento de IP. Acho que o ping funciona porque os padrões são mais relaxados para o tráfego ICMP. Além disso, acho que você tem um erro de digitação acima, a máscara de rede para usb0 deve ser 255.255.255.252. Obrigado por postar o que você fez, isso teria sido muito mais doloroso sem ele.


Isso certamente ajuda.
Oct

1

Para o problema de substituição do Connection Manager /etc/resolv.conf, uma solução complicada é proteger o arquivo ( chmod 444não parece ser respeitado):

chattr +i /etc/resolv.conf

reinicie para verificar se a alteração é mantida usando 'reiniciar'

Para desproteger o arquivo posteriormente:

chattr -i /etc/resolv.conf

Era fazer isso ou jogar o /etc/init.d/connmanjogo de atualização (ou seja, sobrescrever) resolve.confno momento da inicialização após o connman.


1

Para compartilhar o sistema (tentei o ubuntu e o fedora), a internet WiFi com beaglebone black (através de ethernet) com o Debian wheezy instalado, siga este método.

No PC, clique no ícone de rede> conexões vpn> configure vpn> ethernet clique em + Adicionar

nomear a conexão beagledhcp ou qualquer coisa que você gosta

altere as configurações de IPV4 para dhcp automático

servidores DNS adicionais para 192.168.7.2 (IP do beaglebone)

clique em salvar

clique no ícone de rede> conexões vpn> configure vpn> ethernet

clique em + Adicionar

nomeie a conexão compartilhada como beagles ou algo que você goste

altere as configurações de IPV4 para "compartilhado com outros computadores"

clique em salvar (2 conexões podem ser estabelecidas automaticamente quando o cabo LAN e o cabo USB do beaglebone estiverem conectados ao PC.u também pode editar essas conexões)

conecte a placa ao PC (LAN e USB)

Abra o terminal e digite

[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

adicione estas linhas ao arquivo: para definir o IP estático para o 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

Salve o arquivo

/etc/init.d/networking restart

faça ifconfig para conhecer as mudanças

ping 8.8.8.8

feito

se tiver alguma dúvida envie-me: dawnpaulfacebook@gmail.com


A parte sobre "servidores DNS adicionais para 192.168.7.2 (IP do beaglebone)" não tem nada a ver com nada.
Octopus

0

Para mim, uma parte importante do quebra-cabeça também foi executar esses comandos na máquina host à qual o BBB está conectado:

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

E talvez também isso:

echo 1 > /proc/sys/net/ipv4/ip_forward

0

Digite um terminal do servidor / gateway:

pub arp -s "$ IP" "$ MAC"

Onde $ MAC é o endereço de hardware do controlador Ethernet da caixa de gateway linux. Você pode encontrá-lo executando ifconfig e verificando a propriedade ether da sua interface Ethernet. $ IP é o ip da porta usb no mesmo servidor / gateway conectado ao beagle.

:)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.