followup: wanting to do all TFTP/NFS networking over the USB tether on a BBB

now that i have some free time, i want to nail down how one can do
all boot-time networking over the USB tether on a BBB. from a post by
tom rini on the u-boot list, i've been told that this involves
setting:

  setenv ethact usb_ether

in u-boot (among possibly other things).

  the goal is to set up a classroom environment where the students
have no connection to the BBB other than the USB tether, but want to
do all of their development on their dev host (probably fedora 19), so
it's obviously necessary that u-boot be able to configure the
networking to support TFTP for the kernel image and NFS for the root
filesystem.

  anyone done this? if i can nail down the recipe, i'll be happy to
post it on a wiki page to share.

rday

now that i have some free time, i want to nail down how one can do
all boot-time networking over the USB tether on a BBB. from a post by
tom rini on the u-boot list, i’ve been told that this involves
setting:

setenv ethact usb_ether

in u-boot (among possibly other things).

the goal is to set up a classroom environment where the students
have no connection to the BBB other than the USB tether, but want to
do all of their development on their dev host (probably fedora 19), so
it’s obviously necessary that u-boot be able to configure the
networking to support TFTP for the kernel image and NFS for the root
filesystem.

anyone done this? if i can nail down the recipe, i’ll be happy to
post it on a wiki page to share.

I haven’t tried, but wouldn’t some of the other USB boot mechanisms work just as well? I know Tom had looked fairly deeply at DFU.

For NFS, you’ll need to compile g_ether or g_multi into the kernel.

Hello again Robert,

There is a GSoC project where a person is attempting to boot from an Android phone using g_ether / g_multi. It seemed to be working last I work, but was not exactly “polished” yet( a few quirks to work out still ). At any rate it looked very promising.

Also most ( all ? ) NFS modules need to be compiled into the kernel( additional to g_ether / g_multi ), but I think this may be default behavior for current kernel configurations. It would not hurt to check while you’re in there though.

i'm not embarrassed to admit this is the first time i've tried to do
this, so there may in fact be a simple solution i'm not aware of. i
can see how the kernel would need g_ether or g_multi to support NFS --
my first obstacle is to just activate the network over the USB cable
from u-boot to TFTP the kernel image. so it's off to read the relevant
u-boot parts. i should probably sit down and re-familiarize myself
with all the recent developments in u-boot, anyway.

rday

So . . .

william@support:~$ grep -i g_ether /home/william/debian/linux-dev/KERNEL/.config
CONFIG_ETHERNET=y
william@support:~$ grep -i g_multi /home/william/debian/linux-dev/KERNEL/.config
CONFIG_MULTI_IRQ_HANDLER=y
CONFIG_USB_G_MULTI=m
CONFIG_USB_G_MULTI_RNDIS=y

CONFIG_USB_G_MULTI_CDC is not set

and

serverip=192.168.7.1
ipaddr=192.168.7.2
bootdelay=1
autoload=no
static_ip=192.168.7.2:192.168.7.1:192.168.7.1:255.255.255.0:arm
rootpath=/home/william/rootfs,rsize=32768,wsize=32768
console=ttyO0,115200n8
optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
loadtftp=tftpboot 0x80200000 /boot/uImage; tftpboot 0x815f0000 /boot/am335x-boneblack.dtb
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},vers=3 rw ip=${static_ip}
uenvcmd=setenv ethact usb_ether; run loadtftp; run netargs; bootm 0x80200000 - 0x815f0000

I can not proceed further without an FTDI module. The boot sequences cycles 4,5 or 6 times, then just stops. Everything else is setup fine and working, so this tells me one of two things. One, this version of uboot has no usb_ether support, or two, my settings are some how messed up. These settings work fine fine over ethernet so . . . Yeah, I do not know. I also did some testing with setting a MAC address for the usb also. Same result.