Date: Sat, 15 Dec 2012 11:18:57 -0700 From: Ian Lepore <freebsd@damnhippie.dyndns.org> To: Ronald Klop <ronald-freebsd8@klop.yi.org> Cc: freebsd-arm@freebsd.org Subject: Re: sheevaplug boot from nandfs hangs Message-ID: <1355595537.1198.72.camel@revolution.hippie.lan> In-Reply-To: <op.wpdc7xlc8527sy@212-182-167-131.ip.telfort.nl> References: <op.wo8dciyp8527sy@212-182-167-131.ip.telfort.nl> <1355364418.87661.489.camel@revolution.hippie.lan> <op.wpc9v5ew8527sy@212-182-167-131.ip.telfort.nl> <op.wpdc7xlc8527sy@212-182-167-131.ip.telfort.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2012-12-15 at 18:51 +0100, Ronald Klop wrote: > On Sat, 15 Dec 2012 17:39:31 +0100, Ronald Klop > <ronald-freebsd8@klop.yi.org> wrote: > > > On Thu, 13 Dec 2012 03:06:58 +0100, Ian Lepore > > <freebsd@damnhippie.dyndns.org> wrote: > > > >> On Thu, 2012-12-13 at 02:06 +0100, Ronald Klop wrote: > >>> Hello, > >>> > >>> I succeeded in installing and booting my kernel (SHEEVAPLUG 10-current > >>> from 22 nov.) from nandfs. I followed all the advise at > >>> http://wiki.freebsd.org/NAND. But the rootfs will not mount/start. > >>> > >>> The end of the bootinfo is this: > >>> cryptosoft0: <software crypto> > >>> Timecounters tick every 1.000 msec > >>> ipfw2 initialized, divert loadable, nat loadable, default to accept, > >>> logging disabled > >>> usbus0: 480Mbps High Speed USB v2.0 > >>> ugen0.1: <Marvell> at usbus0 > >>> uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on > >>> usbus0 > >>> uhub0: 1 port with 1 removable, self powered > >>> Root mount waiting for: usbus0 > >>> ugen0.2: <USB 2.0> at usbus0 > >>> umass0: <USB 2.0 USB Flash Drive, class 0/0, rev 2.00/11.00, addr 2> on > >>> usbus0 > >>> umass0: SCSI over Bulk-Only; quirks = 0x4000 > >>> umass0:0:0:-1: Attached to scbus0 > >>> Trying to mount root from nandfs:/dev/gnand0s.root []... > >>> WARNING: NANDFS is considered to be a highly experimental feature in > >>> FreeBSD. > >>> (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 > >>> (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an > >>> error > >>> (probe0:umass-sim0:0:0:0): Retrying command > >>> da0 at umass-sim0 bus 0 scbus0 target 0 lun 0 > >>> da0: <USB 2.0 USB Flash Drive 1100> Removable Direct Access SCSI-0 > >>> device > >>> da0: 40.000MB/s transfers > >>> da0: 3894MB (7975296 512 byte sectors: 255H 63S/T 496C) > >>> > >>> The kernel is responsive because if I remove or insert the usb stick it > >>> displays messages about it. (Not shown above) > >>> I'm connected via serial. What could be wrong? What information can I > >>> give > >>> more? > >>> I installed /dev/gnand0s.root by tarring the content of / on my usb > >>> stick > >>> to the mounted /dev/gnand0s.root. That looked ok. > >>> > >>> Regards, > >>> Ronald. > >> > >> Hmm, so the root mount happens, but init never gets started, or never > >> gets far enough to show signs of being started. Mounting root is > >> invoked from sys/kern/init_main.c, I guess what I'd do next is add some > >> printfs in there to see if vfs_mountroot() is returning and if so how > >> much farther it gets. > >> > >> Hmmm, if your kernel is built with ALT_BREAK_TO_DEBUGGER then on the > >> serial console maybe you can CR ~ ^B and poke around. Hmmm, or maybe > >> not, because I just tried that on my dreamplug and it just spewed this > >> many times: > >> > >> root@dpcur:/root # ~KDB: enter: Break to debugger > >> [ thread pid 10 tid 100002 ] > >> Stopped at kdb_enter+0x48:panic: mtx_lock() by idle thread > >> 0xc3593c00 on sleep mutex pmap @ > >> /local/build/staging/freebsd/dp10/src/sys/arm/arm/pmap.c:3662 > >> panic: mtx_lock() by idle thread 0xc3593c00 on sleep mutex eventhandler > >> @ /local/build/staging/freebsd/dp10/src/sys/kern/subr_eventhandler.c:251 > >> KDB: enter: panic > >> > >> and apparently recursed until it ran out of stack and locked up. > >> > >> So I guess it'll be printf-debugging to the rescue. :) > >> > >> I can confirm that this should be working. I've got a similar setup > >> going on Atmel arm chips, although I haven't sync'd up with -current for > >> a while, I'm at r241077 on that project. Right now I still load the > >> kernel from sdcard but root gets mounted from the nand and the system > >> runs. Performance is horrible (this is a low end arm, 180mhz), but it > >> works. > >> > >> > >> nand0: <AT91 Integrated NAND controller> mem 0xe0000000-0xefffffff on > >> atmelarm0 > >> nandbus0: <NAND bus> on nand0 > >> onand0: <ONFI compliant NAND> on nandbus0 > >> onand0: Found BBT table for chip > >> Timecounters tick every 10.000 msec > >> usbus0: 12Mbps Full Speed USB v1.0 > >> ugen0.1: <Atmel> at usbus0 > >> uhub0: <Atmel OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 > >> mmcsd0: 1876MB <SD SU02G 8.0 SN 3406901 MFG 09/2010 by 48 SD> at mmc0 > >> 22.5MHz/1bit/64-block > >> Root mount waiting for: usbus0 > >> uhub0: 2 ports with 2 removable, self powered > >> Root mount waiting for: usbus0 > >> ugen0.2: <Novatel Inc.> at usbus0 > >> Root mount waiting for: usbus0 > >> Root mount waiting for: usbus0 > >> ugen0.3: <Unknown> at usbus0 (disconnected) > >> Trying to mount root from nandfs:/dev/gnand0s.root []... > >> WARNING: NANDFS is considered to be a highly experimental feature in > >> FreeBSD. > >> warning: no time-of-day clock registered, system time will not be set > >> accurately > >> Starting file system checks: > >> > >> -- Ian > > > > Hi, > > > > Thanks for the hint. Compiling a new kernel with printf now. I saw > > bootverbose also prints more information. How do I enable that on ARM > > from the bootprompt? > > NB: break to debugger works on my Sheevaplug. But I am not familiar with > > its commands to see what it is doing. Can I force a coredump and would > > somebody be interested to look at it? > > > > Ronald. > > I also defaulted bootverbose to 1 in init_main.c. Now I get this. > > ipfw2 initialized, divert loadable, nat loadable, default to accept, > logging disabled > lo0: bpf attached > GEOM: new disk gnand0 > GEOM: new disk gnand.raw0 > usbus0: 480Mbps High Speed USB v2.0 > gnand0: slice 00000000-001fffff: u-boot (2047KB) > gnand0: slice 00200000-007fffff: fbsd-boot (6143KB) > gnand0: slice 00800000-1fffffff: root (516095KB) > ugen0.1: <Marvell> at usbus0 > uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0 > gnand.raw0: slice 00000000-001fffff: u-boot (2047KB) > gnand.raw0: slice 00200000-007fffff: fbsd-boot (6143KB) > gnand.raw0: slice 00800000-1fffffff: root (516095KB) > uhub0: 1 port with 1 removable, self powered > Trying to mount root from nandfs:/dev/gnand0s.root []... > WARNING: NANDFS is considered to be a highly experimental feature in > FreeBSD. > mountroot: unable to remount devfs under /dev (error 2). > mountroot: unable to unlink /dev/dev (error 2) > after vfs_mountroot() > start_init: trying /sbin/init > > The 'after vfs_mountroot()' is my own printf. I also verified sys_execve > of /sbin/init returned 0. > How do I go from here? Wow, this is all very familiar. I had this exact situation a couple months ago as I was trying to get freebsd running on my pico-sam9g45 eval board. My printfs showed exactly the same thing, the execve returned 0, but I never got any indication that init was actually running, nor did it die as near as I could tell, the system just went comatose. I can't quite remember how I tracked down the problem from there. Oh hey, I just noticed in your verbose output, that "unable to remount devfs under /dev", that's significant. init has this annoying tendancy to silently lock up if it can't open devices such as serial lines that are mentioned in /etc/ttys (also, if /etc/ttys is missing). I'll bet you just need to create a /dev mountpoint in your nandfs and everything will get better. There may be other mountpoints (/tmp, /var, etc) that didn't get created properly too. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1355595537.1198.72.camel>