I'm having trouble to boot root file system from NFS network. I'm
using an USB/Ethernet adapter (Apple dongle) based on ASIX chip. The
adaptor is know to work as I used to connect when I boot Angstron from
MMC card.
In my tests:
- I've tried many network configurations (including direct connection)
- Different hosts and servers (including NFSv3 and NFSv4).
- Different kernel versions (as showed)
- Many command line variations to bootargs
- Every NFS server was test successfully on another host (i.e: mount
<ip>:<share> <dir> works)
I tried http://elinux.org/Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB
including the command line suggested:
setenv bootargs 'console=ttyS2,115200n8 noinitrd rw
ip=192.168.198.24::255.255.255.0 root=/dev/nfs
nfsroot=192.168.198.1:/opt/dmsw/OE_BEAGLE_rootfs,nolock,rsize=1024,wsize=1024,rootdelay=2'
And other variations such as omitting NFS option, adding more gateway,
interface, auto configuration, etc....
I pasted the kernel output below.
1) linux-omap-2.6-git
Does your kernel have built-in support for your ethernet dongle?
The "standard" angstrom kernel has those as modules, but that is not
good enough for nfs (as it will give a catch-22 situation: module is
needed to access nfs, nfs is needed to get module)
alternate from using a built-in driver is to use an initramfs
And if you want to do eth bridging over usb you should also make sure
the right stuff is in the kernel.
Good luck, FM
Thanks Frans,
Beside 'omap3_beagle_defconfig' to .config I have:
CONFIG_USB_GADGET=y
CONFIG_USB_MUSB_PERIPHERAL=y
CONFIG_USB_GADGET_MUSB_HDRC=y
CONFIG_USB_ETH=y
--tm
I tried it half year ago when I first got the Beagleboard. It is not difficult to do. But, the problem is that the driver of the USB-Ethernet dongle is located in the NFS drive also. If the USB-Ethernet dongle is reset, the Beagleboard is hung. I also tried to put the kernel and rootfs in the NAND with success. But, I was scared by the kernel message regarding the log saved in the NAND. So, I put the kernel and rootfs in the SD card. The configuration give me less trouble. I put all my application software and scripts in the NFS drive.
To get things fully clear, you are trying to boot from nfs with
ethernet bridged over usb, and not by using an ethernet usb dongle.
Correct?
If you *do* use an ethernet usb dongle you definitely need more drivers.
If you are bridging ethernet over usb I can't be of much help but I
would suggest to test first if you can do a regular boot and set up an
ethernet over usb bridge without executing additional commands during
startup (e.g. loading modules, calling functionality from bridge-utils
etc).
Actually I have never been there but suspect ths is going to need an
initramfs to get things going.
Frans
To get things fully clear, you are trying to boot from nfs with
ethernet bridged over usb, and not by using an ethernet usb dongle.
Correct?
I'm using ethernet usb dongle
http://store.apple.com/us/product/MB442Z/A?mco=MTY3ODQ5OTY
If you *do* use an ethernet usb dongle you definitely need more drivers.
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
I'll perform more tests with this parameters and reply my results.
--tm
It has been a few months since I made the rootfs work from NFS. What you need to do is to set up the bootcmd script in the x-loader and save it in the NAND. As I said before, the problem was that if the USB controller is reset for any reason, you need to push the board reset button to recover the system.
I solve the problem editing net/ipv4/ipconfig.h
-#define CONF_PRE_OPEN 500 /* Before opening: 1/2 second */
-#define CONF_POST_OPEN 1 /* After opening: 1 second */
+#define CONF_PRE_OPEN 2500
+#define CONF_POST_OPEN 3
For some way the module for my Ethernet dongle has an delay to
register the interface. So I added more time and worked.
--tm