FreeBSD on a DockStar - doesn't mount root

Maciej Milewski milu at dat.pl
Mon Feb 7 16:13:43 UTC 2011


Monday 07 of February 2011 16:38:35 Torfinn Ingolfsen napisał(a):
> Hello,
...
> So it seems like this isn't a "delay" type problem.
From these dmesg lines you posted in your first mail it looked that is too 
short time for kernel to recognize the usb device. I had similar problems on 
mips RS/RSPRO boards and had to use small patch to make the delay longer. I 
admit that I didn't know of kern.cam.boot_delay that time and haven't tried it 
on my boards.

I don't know the real author of that patch.
Additionally I'm booting my board using ufs label this way:
ufs:ufs/rootfs


diff --git a/sys/kern/vfs_mountroot.c b/sys/kern/vfs_mountroot.c
index 496ea70..1956419 100644
--- a/sys/kern/vfs_mountroot.c
+++ b/sys/kern/vfs_mountroot.c
@@ -87,6 +87,8 @@ __FBSDID("$FreeBSD$");
 
 static int parse_mount(char **);
 static struct mntarg *parse_mountroot_options(struct mntarg *, const char *);
+static int     mount_root_delay = 4;
+TUNABLE_INT("mount_root_delay", &mount_root_delay);
 
 /*
  * The vnode of the system's root (/ in the filesystem, without chroot
@@ -917,13 +919,17 @@ vfs_mountroot_wait(void)
                PICKUP_GIANT();
                mtx_lock(&mountlist_mtx);
                if (LIST_EMPTY(&root_holds)) {
-                       mtx_unlock(&mountlist_mtx);
-                       break;
+                       if(0 == mount_root_delay--) {
+                               mtx_unlock(&mountlist_mtx);
+                               break;
+                       }
                }
                if (ppsratecheck(&lastfail, &curfail, 1)) {
                        printf("Root mount waiting for:");
                        LIST_FOREACH(h, &root_holds, list)
                                printf(" %s", h->who);
+                               if (LIST_EMPTY(&root_holds))
+                                       printf(" %d 
secs...",mount_root_delay);
                        printf("\n");
                }
                msleep(&root_holds, &mountlist_mtx, PZERO | PDROP, "roothold",

Regards,
Maciej Milewski


More information about the freebsd-arm mailing list