BBB Internet over the USB cable

From Klaus' wiki
Revision as of 11:14, 1 April 2016 by Klaus (Talk | contribs)

Jump to: navigation, search

It is rather easy to get access to the whole internet over the USB interface cable provided that your laptop/PC has internet access.

Enabling masquerading

If you're running Linux you can follow these instructions. NOTE: On Centos the Firewall graphical interface doesn't seem to work properly, which means that you have to modify a settings file instead. You can perform the same settings change on other Linuxes, i.e. Fedora and others, that run firewalld.

for Centos edit the /etc/firewalld/zones/public.xml

<?xml version="1.0" encoding="utf-8"?>
  <description>For use in public areas. You do not trust the other computers on n
etworks to not harm your computer. Only selected incoming connections are accepte
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="22"/>

add just before the </zone> this line:


If you're running Windows Derrek Molloy has some advices on this page.

On the BBB create this file and make it executable

# Author : Klaus Kolle
#   Date : 2016 02 22
# Purpose: Establishing connection to the Internet
# and set the clock, which has no battery backup
echo "Starting the Internet-over-USB script"
## Add a default gateway 
/sbin/route add default gw
grep -q /etc/resolv.conf
if [ "$?" -ne "0" ]; then
        echo "nameserver" >> /etc/resolv.conf
## Test for network availability
while :
        ping -c 5 -w 10
        if [ $? -eq 0 ]; then
## Now we should be ready to set the clock from the net
/usr/sbin/ntpdate -b -s -u
echo "End of the settings script"

At first login on the BBB execute this script as root (or use sudo).

Automating the script

You may want to set this script up so it will be executed at boot time. In order to do this you'll have to setup a boot script in /etc/init.d - you may want to call it internetOverUSB. Enter ths into the script.

#! /bin/sh
# Provides: InternetOverUSB
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enables Internet over USB cable
# Description: Enables access to the Internet over the Internet connection 
# provided by the connected host
case "$1" in
                sleep 20
exit 0

Now execute

$] chmod 755 /etc/init.d/internetOverUSB

The 20 seconds sleep is for the laptop being able to establish its network settings. May be adjusted to suit your OS and laptop specific needs.

Finally enable the script.

$] update-rc.d internetOverUSB defaults

Try to reboot and login again. Check that the date now is correct. If not debug your scripts.