FreeBSD on a DockStar - doesn't mount root

Warner Losh imp at bsdimp.com
Mon Feb 7 17:18:25 UTC 2011


On 02/07/2011 08:56, Maciej Milewski wrote:
> 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've used kern.cam.boot_delay on a RS-PRO board here that I run off the 
SD card, which is just a da device.

Warner

> 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
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
>
>
>



More information about the freebsd-arm mailing list