Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Apr 2009 15:53:02 -0700
From:      Marcus Reid <marcus@blazingdot.com>
To:        Andrew Thompson <thompsa@FreeBSD.org>
Cc:        freebsd-current@freebsd.org, Nenhum_de_Nos <matheus@eternamente.info>, Robert Noland <rnoland@FreeBSD.org>
Subject:   Re: Booting from usb hard disk
Message-ID:  <20090416225302.GA39766@blazingdot.com>
In-Reply-To: <20090330061036.GA83528@citylink.fud.org.nz>
References:  <1237804575.1771.7.camel@balrog.2hip.net> <fd2392216bb33e5b66f8fe79459e45e2.squirrel@cygnus.homeunix.com> <1237884572.1771.28.camel@balrog.2hip.net> <20090330061036.GA83528@citylink.fud.org.nz>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 29, 2009 at 11:10:36PM -0700, Andrew Thompson wrote:
> On Tue, Mar 24, 2009 at 03:49:32AM -0500, Robert Noland wrote:
> > On Mon, 2009-03-23 at 19:40 -0300, Nenhum_de_Nos wrote:
> > > On Mon, March 23, 2009 07:36, Robert Noland wrote:
> > > > So I have my i386 install on a usb hard disk, which I can only boot on
> > > > one machine now.  The one machine that I can make work has a bios option
> > > > that reads "BIOS ehci handoff".  This used to work with the old usb
> > > > stack.  The machines that it doesn't work on, boot the kernel, but fail
> > > > to mount root, giving me the forbidding mountroot> prompt, which is
> > > > immediately followed by the message saying that da0 is attached.  da0 is
> > > > however not listed in the available boot devices list.  I tried playing
> > > > around with the timeout in vfs_mount.c, but that didn't seem to have any
> > > > impact.  It has been suggested that this may be a "geom" timeout, but I
> > > > don't know anything about the boot system really.
> > > 
> > > I had problem a while ago with via mini itx hardware, that was quite
> > > close. If I try boot from usb (installed in usb hdd), I get to the point
> > > of loader not finding my disk.
> > > 
> > > I then used a small flash disk attached to the ata (44 pin ide) channel
> > > and formatted /boot in there. this way I get to the point of mount root
> > > you said, and da0 not being alive soon enough to mount root. list disks
> > > also couldn't find da0 though.
> > > 
> > > I tried current from that time, and no good.
> > > 
> > > if this is solved, I'll be happy to try whatever patch to current. (as
> > > long as I can install it from another box/or its ata channel, as it can't
> > > boot vanilla 7.1R)
> > 
> > So, my solution was to set kern.cam.scsi_delay=10000
> > in /boot/loader.conf
> 
> The following patch should work. It creates interleaving root hold
> tokens from the CAM probe to disk_create and geom providor tasting.
> I had to add a malloc type flag as sleeping isnt allowed at the point I
> added the token alloc in CAM.
> 
> http://people.freebsd.org/~thompsa/root_wait.diff
> 
> It needs review by the various geom/cam ppls.

I'm running up against the problems booting from USB that are (somewhat)
fixed by your patch.  I noticed that it was comitted but reverted due
to not being the correct approach.  Setting kern.cam.scsi_delay=10000
doesn't work for me either.  Is there another way to work around it?

Thanks,

Marcus



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090416225302.GA39766>