Comencemos por conectar nuestra placa al puerto USB de nuestro equipo, una vez transcurrido el tiempo de booteo, en nuestra máquina se creará una nueva placa de red virtual, la cual típicamente tendrá la dirección IP “192.168.7.1”.
Para verificar que esto sea así, desde una terminal escribiremos:
#ifconfig -a
#enp0s29u1u1: flags=4163<up> mtu 1500
inet 192.168.7.1 netmask 255.255.255.252 broadcast 192.168.7.3
inet6 fe80::caa0:30ff:feb5:7c38 prefixlen 64 scopeid 0x20<link></link>
ether c8:a0:30:b5:7c:38 txqueuelen 1000 (Ethernet)
RX packets 364 bytes 40963 (40.0 KiB)
...
Ahora ya podremos acceder vía SSH a nuestra Beagle:
#ssh root@192.168.7.2
Una vez ingresado el password:
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Feb 17 03:40:48 2014 from new-host-92.local
root@arm:~#
Ya estamos en la terminal de nuestra Beagle, consultemos por las interfaces de red activas en nuestra placa.
root@arm:~# ifconfig -a
Como resultado obtendremos dos interfaces: una corresponde a "localhost" y la otra a "usb0". Sin embargo, cuando se requiere instalar un paquete desde un repositorio externo, por ejemplo:
root@arm:~# aptitude install python-mysqldb
Nos encontraremos con que el sistema operativo no posee acceso a Internet.
Para solucionar este problema, tenemos dos caminos a tomar: el primero es darle a nuestra Beagle otra forma de acceso a Internet (WiFi, LAN, etc...) y el segundo compartiendo la red de nuestra computadora.
¿Cómo compartir?, es relativamente simple y se podrá aplicar para compartir acceso a Internet con cualquier dispositivo.
Empecemos por crear en la Beagle una regla de ruteo dentro de un archivo al cual le daremos permisos de ejecución.
root@arm:~# echo "route add default gw 192.168.7.1 usb0" > red.sh
root@arm:~# chmod +x red.sh
root@arm:~# ./red.sh
Por otra parte editaremos el contenido del archivo resolv.conf a efectos de dejar como servidor de DNS a Google e incorporaremos un atributo que impida modificar dicho archivo en el futuro. En el caso de requerir modificarlo, se deberá ejecutar el mismo comando con el parámetro “-i”.
root@arm:~# echo "nameserver 8.8.8.8" >> /etc/resolv.conf
root@arm:~# chattr +i /etc/resolv.conf
Esta es toda la configuración que se debe aplicar en la BeagleBone Black. Ahora debemos trabajar del lado de nuestro equipo, en donde supondremos que también tenemos instalado el sistema operativo Debian. Comenzaremos creando un archivo al cual luego de creado lo haremos ejecutable.
# vim compartir.sh
En éste, cargaremos el siguiente contenido:
#Habilitamos el forwardeo
echo 1 > /proc/sys/net/ipv4/ip_forward
#Borramos las tablas de iptables
iptables -F
#Agregamos una regla a IP tables
iptables -t nat -A POSTROUTING -s 192.168.7.2 -o wlp5s0 -j MASQUERADED
#Deshabilitamos el firewall
systemctl stop firewalld.service
Por último le daremos permiso de ejecución y lo ejecutaremos:
# chmod +x compartir.sh
# ./compartir.sh
A esta altura ya contamos con acceso a Internet desde nuestra Beagle, para probarlo, basta con realizar un ping a Google.
root@arm:~# ping www.google.com
Es importante recordar que cada vez que reiniciemos nuestra máquina o nuestra Beagle, deberemos volver a ejecutar los archivos que creamos.
Update:
Si tenemos Windows en nuestra PC, deberemos habilitar la opción "compartir internet" en nuestra placa de red principal. Atención: luego de hacer esto, Windows le cambia la IP a nuestra máquina.