https://elinux.org/index.php?title=Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB&feed=atom&action=historyMount BeagleBoard Root Filesystem over NFS via USB - Revision history2024-03-19T04:27:53ZRevision history for this page on the wikiMediaWiki 1.31.0https://elinux.org/index.php?title=Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB&diff=13513&oldid=prevLikewise: Added a working method to automatically add usb0 to br0 upon detection of usb0.2009-08-30T21:07:33Z<p>Added a working method to automatically add usb0 to br0 upon detection of usb0.</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 21:07, 30 August 2009</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l251" >Line 251:</td>
<td colspan="2" class="diff-lineno">Line 251:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>...</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>...</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">==Automatically add usb0 to br0==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Create <tt>/etc/udev/rules.d/52-add-net-usb-to-br.rules</tt> which adds usb0 to the bridge br0.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><pre></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">SUBSYSTEM=="usb", INTERFACE=="usb*", RUN+="/usr/sbin/brctl addif br0 usb0"</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></pre></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Tested under Ubuntu Linux 9.04 host. Unplug the USB cable, run <tt>sudo brctl show</tt>, then plug the cable and run <tt>sudo brctl show</tt> again to verify it was added.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Future Considerations==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Future Considerations==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del class="diffchange diffchange-inline">When </del>the <del class="diffchange diffchange-inline">usb0 is detected by </del>the <del class="diffchange diffchange-inline">Linux Host during the BeagleBoard boot, how can we automatically add it to the Ethernet bridge?</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins class="diffchange diffchange-inline">Make </ins>the <ins class="diffchange diffchange-inline">udev script aware of </ins>the <ins class="diffchange diffchange-inline">actual interface name (usbX).</ins></div></td></tr>
<!-- diff cache key elinux:diff::1.12:old-11750:rev-13513 -->
</table>Likewisehttps://elinux.org/index.php?title=Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB&diff=11750&oldid=prevDon Darling: /* Step 2: Booting the BeagleBoard */2009-05-15T22:05:21Z<p><span dir="auto"><span class="autocomment">Step 2: Booting the BeagleBoard</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 22:05, 15 May 2009</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l174" >Line 174:</td>
<td colspan="2" class="diff-lineno">Line 174:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>setenv bootargs 'console=<del class="diffchange diffchange-inline">ttyS0</del>,115200n8 noinitrd rw ip=192.168.198.24::255.255.255.0 root=/dev/nfs</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>setenv bootargs 'console=<ins class="diffchange diffchange-inline">ttyS2</ins>,115200n8 noinitrd rw ip=192.168.198.24::255.255.255.0 root=/dev/nfs</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>nfsroot=192.168.198.1:/opt/dmsw/OE_BEAGLE_rootfs,nolock,rsize=1024,wsize=1024,rootdelay=2'</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>nfsroot=192.168.198.1:/opt/dmsw/OE_BEAGLE_rootfs,nolock,rsize=1024,wsize=1024,rootdelay=2'</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>setenv bootcmd 'mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000'</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>setenv bootcmd 'mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000'</div></td></tr>
<!-- diff cache key elinux:diff::1.12:old-9256:rev-11750 -->
</table>Don Darlinghttps://elinux.org/index.php?title=Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB&diff=9256&oldid=prevDirk: Move article into category and link to BeagleBoard page2009-02-12T19:11:14Z<p>Move article into category and link to BeagleBoard page</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 19:11, 12 February 2009</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>This page explains how to bridge the usb0 device to eth0 on your Linux host, enabling your Linux host to act as a hub for your BeagleBoard and connecting it to the outside world.  As an additional reference, the following article is good at explaining how to create a typical Ethernet bridge on a Linux machine with two Ethernet cards:</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">[[Category: Linux]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">[[Category: OMAP]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>This page explains how to bridge the usb0 device to eth0 on your Linux host, enabling your Linux host to act as a hub for your <ins class="diffchange diffchange-inline">[[</ins>BeagleBoard<ins class="diffchange diffchange-inline">]] </ins>and connecting it to the outside world.  As an additional reference, the following article is good at explaining how to create a typical Ethernet bridge on a Linux machine with two Ethernet cards:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[http://www.linuxjournal.com/article/8172 Linux Journal:  Kernel Korner - Linux as an Ethernet Bridge]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[http://www.linuxjournal.com/article/8172 Linux Journal:  Kernel Korner - Linux as an Ethernet Bridge]</div></td></tr>
<!-- diff cache key elinux:diff::1.12:old-9253:rev-9256 -->
</table>Dirkhttps://elinux.org/index.php?title=Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB&diff=9253&oldid=prevDon Darling at 22:15, 11 February 20092009-02-11T22:15:10Z<p></p>
<p><b>New page</b></p><div>This page explains how to bridge the usb0 device to eth0 on your Linux host, enabling your Linux host to act as a hub for your BeagleBoard and connecting it to the outside world. As an additional reference, the following article is good at explaining how to create a typical Ethernet bridge on a Linux machine with two Ethernet cards:<br />
<br />
[http://www.linuxjournal.com/article/8172 Linux Journal: Kernel Korner - Linux as an Ethernet Bridge]<br />
<br />
Before starting, make sure you have the "bridge-utils" package installed on your Linux host. This gives you the "brctl" command, which you need for creating and using an Ethernet bridge.<br />
<br />
<br />
==Step 1: Create an Ethernet Bridge from usb0 to eth0 on your Linux Host==<br />
<br />
<br />
The main difference between the scenario in the [http://www.linuxjournal.com/ Linux Journal] article mentioned above and the BeagleBoard is that we're creating a bridge from usb0 to eth0 instead of from eth1 to eth0. Also, we have to deal with the fact that "usb0" doesn't exist as a device on our Linux host except when the USB Gadget support is running on the connected Beagleboard, which isn't the case when we're first booting the Linux host.<br />
<br />
My Linux host is running Fedora Core 10. I'm sure some of the following network configuration steps are specific to Fedora, but they can probably be easily adapted to other Linux distributions. On Fedora, I edited the network scripts "<tt>/etc/sysconfig/network-scripts/ifcfg-eth0</tt>" and "<tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>" by hand to make sure those interfaces had no IP or gateway settings, and that they were not controlled by the Fedora network manager by setting <tt>NM_CONTROLLED=no</tt>.<br />
<br />
Contents of <tt>/etc/sysconfig/network-scripts/ifcfg-eth0</tt>:<br />
<br />
<pre><br />
DEVICE=eth0<br />
ONBOOT=no<br />
BOOTPROTO=none<br />
TYPE=Ethernet<br />
USERCTL=no<br />
PEERDNS=yes<br />
IPV6INIT=no<br />
NM_CONTROLLED=no<br />
</pre><br />
<br />
Contents of <tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>:<br />
<br />
<pre><br />
DEVICE=usb0<br />
ONBOOT=no<br />
BOOTPROTO=none<br />
TYPE=Ethernet<br />
USERCTL=no<br />
IPV6INIT=no<br />
NM_CONTROLLED=no<br />
PEERDNS=yes<br />
</pre><br />
<br />
Next, I created a new script "<tt>/etc/sysconfig/network-scripts/ifcfg-br0</tt>" that is going to be the "bridge" interface that connects both usb0 and eth0 to the outside world. This script looks a lot like what "<tt>ifcfg-eth0</tt>" ''used'' to look like.<br />
<br />
<br />
Contents of <tt>/etc/sysconfig/network-scripts/ifcfg-br0</tt>:<br />
<br />
<pre><br />
# Ethernet Bridge<br />
DEVICE=br0<br />
ONBOOT=no<br />
SEARCH="dmlab" # Replace with your search domains<br />
BOOTPROTO=none<br />
NETMASK=255.255.255.0 # Replace with your subnet's netmask<br />
IPADDR=192.168.198.1 # Replace with your Linux host's IP address<br />
USERCTL=no<br />
PEERDNS=yes<br />
IPV6INIT=no<br />
GATEWAY=192.168.198.254 # Replace with your subnet's gateway<br />
TYPE=Ethernet<br />
DNS1=192.168.198.1<br />
DOMAIN='dmlab' # Replace with your Linux host's domain(s)<br />
NM_CONTROLLED=no<br />
</pre><br />
<br />
Next, I created following init script and placed it in <tt>/etc/init.d/br0</tt>.<br />
<br />
Contents of <tt>/etc/init.d/br0</tt>:<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Source function library.<br />
. /etc/rc.d/init.d/functions<br />
<br />
RETVAL=0<br />
<br />
# Check if all what named needs running<br />
start()<br />
{<br />
/usr/sbin/brctl addbr br0<br />
/usr/sbin/brctl addif br0 eth0<br />
/sbin/ifup eth0<br />
/sbin/ifup br0<br />
return 0;<br />
}<br />
<br />
stop() {<br />
/sbin/ifdown br0<br />
/sbin/ifdown eth0<br />
/usr/sbin/brctl delbr br0<br />
}<br />
<br />
<br />
restart() {<br />
stop<br />
start<br />
} <br />
<br />
# See how we were called.<br />
case "$1" in<br />
start)<br />
start<br />
;;<br />
stop)<br />
stop<br />
;;<br />
restart)<br />
restart<br />
;;<br />
*)<br />
echo $"Usage: $0 {start|stop|restart}"<br />
exit 3<br />
esac<br />
<br />
exit $RETVAL<br />
</pre><br />
<br />
<br />
I set the br0 init script to run during bootup by making the following symbolic link:<br />
<br />
<pre><br />
ln -s /etc/init.d/br0 /etc/rc5.d/S91br0<br />
</pre><br />
<br />
My system typically runs at runlevel 5 (hence rc5.d), and "S91" on my system runs after the networking scripts, but before critical services like dns, named, dhcp, samba, etc, which need the interface to be up when starting.<br />
<br />
The br0 script manually brings up eth0 and br0, which is why it is important that these interfaces are not controlled by Fedora's network manager.<br />
<br />
After re-booting the Linux host (without a BeagleBoard attached), the result of "ifconfig" should list "br0", "eth0", and "lo", and if you execute "sudo brctl show" it should list eth0 as being a member of the bridge.<br />
<br />
<pre><br />
$ ifconfig<br />
<br />
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <br />
inet addr:192.168.198.1 Bcast:192.168.198.255 Mask:255.255.255.0<br />
inet6 addr: fe80::21a:a0ff:feec:79f1/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:3875507 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:3351392 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:2798652354 (2.6 GiB) TX bytes:977920512 (932.6 MiB)<br />
<br />
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <br />
inet6 addr: fe80::21a:a0ff:feec:79f1/64 Scope:Link<br />
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1<br />
RX packets:2015574 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:3411988 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:1780819388 (1.6 GiB) TX bytes:972140276 (927.1 MiB)<br />
Interrupt:16 <br />
<br />
lo Link encap:Local Loopback <br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:236666 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:236666 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:317726283 (303.0 MiB) TX bytes:317726283 (303.0 MiB)<br />
</pre><pre><br />
$ sudo brctl show<br />
<br />
bridge name bridge id STP enabled interfaces<br />
br0 8000.001aa0ec79f1 no eth0<br />
</pre><br />
<br />
You should be able to access the external network the same as before on your Linux host at this point.<br />
<br />
==Step 2: Booting the BeagleBoard==<br />
<br />
<br />
The next step is to boot the BeagleBoard with kernel parameters that tell it to mount its root file system over NFS. Here are the U-Boot settings I used to boot the kernel from an SD card, then boot the rootfs over NFS:<br />
<br />
<pre><br />
setenv bootargs 'console=ttyS0,115200n8 noinitrd rw ip=192.168.198.24::255.255.255.0 root=/dev/nfs<br />
nfsroot=192.168.198.1:/opt/dmsw/OE_BEAGLE_rootfs,nolock,rsize=1024,wsize=1024,rootdelay=2'<br />
setenv bootcmd 'mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000'<br />
</pre><br />
<br />
In the above parameters, replace the following with settings for your network:<br />
<br />
{| border="1"<br />
|+<br />
| '''Replace This''' || '''With This'''<br />
|-<br />
| <tt>ip=192.168.198.24::255.255.255.0</tt> || <tt>ip=</tt><BeagleBoard IP Address><tt>::</tt><your subnet mask><br />
|-<br />
| <tt>nfsroot=192.168.198.1:/opt/dmsw/OE_BEAGLE_rootfs</tt> || <tt>nfsroot=</tt><IP address of your NFS server><tt>:</tt><path to root filesystem on NFS server><br />
|}<br />
<br />
While the BeagleBoard kernel is booting, the usb0 device will show up on the Linux host. Run "ifconfig" a few times, and when "usb0" is listed, run the following command:<br />
<br />
<pre><br />
$ sudo brctl addif br0 usb0<br />
</pre><br />
<br />
This will add "usb0" to the Ethernet bridge, and the Linux host will now act as a hub for the Beagleboard. The Beagleboard will now continue to boot, but the weird thing is I didn't see any of the kernel boot messages scroll by while it's starting up. However, when it's done the "Angstrom" prompt comes up on the serial normally.<br />
<br />
If you execute "sudo brctl show" after the BeagleBoard is done booting, it should now should both eth0 and usb0 being on the bridge:<br />
<br />
<pre><br />
$ sudo brctl show<br />
<br />
bridge name bridge id STP enabled interfaces<br />
br0 8000.001aa0ec79f1 no eth0<br />
usb0<br />
</pre><br />
<br />
==Step 3: Accessing the Outside World from the BeagleBoard==<br />
<br />
<br />
You might want to make sure that any firewall software like iptables is disabled on the Linux host, or at least make sure the firewall settings allow the Linux host to act as a hub for your BeagleBoard. Otherwise, the BeagleBoard will not be able to see the outside world.<br />
<br />
On the BeagleBoard, modify "<tt>/etc/network/interfaces</tt>", and configure the settings for "usb0".<br />
<br />
Contents of BeagleBoard's <tt>/etc/network/interfaces</tt>:<br />
<br />
<pre><br />
iface usb0 inet static<br />
address 192.168.198.24 # Replace with BeagleBoard's IP Address<br />
netmask 255.255.255.0 # Replace with your subnet mask<br />
network 192.168.198.0 # Replace with your network address<br />
gateway 192.168.198.254 # Replace with your subnet gateway<br />
</pre><br />
<br />
Also, edit the <tt>/etc/resolve.conf</tt> on the BeagleBoard to point to your DNS server. Here are my settings:<br />
<br />
Contents of BeagleBoard's <tt>/etc/resolve.conf</tt>:<br />
<pre><br />
search dmlab # Replace with your domain search path <br />
nameserver 192.168.198.1 # Replace with your DNS server<br />
</pre><br />
<br />
Note that my linux host (192.168.198.1) is running a DNS server. If yours isn't, don't use your Linux host IP here -- set this to the DNS server that your Linux host is using.<br />
<br />
Finally, bring up the usb0 interface on the BeagleBoard:<br />
<br />
<pre><br />
$ ifup usb0<br />
</pre><br />
<br />
You should now be up and connected as if your beagle board was on the network at the same level as the linux host.<br />
<br />
<pre><br />
$ ping some.machine.com<br />
<br />
PING some.machine.com (192.94.93.21): 56 data bytes <br />
64 bytes from 192.94.93.21: seq=0 ttl=247 time=18.005 ms <br />
64 bytes from 192.94.93.21: seq=1 ttl=247 time=10.254 ms <br />
...<br />
</pre><br />
<br />
==Future Considerations==<br />
* When the usb0 is detected by the Linux Host during the BeagleBoard boot, how can we automatically add it to the Ethernet bridge?</div>Don Darling