Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jul 1996 13:02:13 -0400 (EDT)
From:      Dmitry Kohmanyuk <dk@dog.farm.org>
To:        phk@critter.tfs.com (Poul-Henning Kamp)
Cc:        dk+@ua.net, freebsd-hackers@FreeBSD.org
Subject:   Re: lp booting: first cut
Message-ID:  <199607231702.NAA06537@dog.farm.org>
In-Reply-To: <3892.838134990@critter.tfs.com> from Poul-Henning Kamp at "Jul 23, 96 05:16:30 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Poul-Henning Kamp:
> The plip stuff depends on the speed of both cpus, it's very finiky.

I would say `dark magic' ;-)

I plan to hack somewhat on this, too.  (eating 30-40% of CPU is just too much
;-)

> >unfortunately, the kernel cannot proceed to single-user (all it
> >says is `NFS SWAP:' and `NFS ROOT:' lines).  I am trying to figure what's
> >wrong now. Previously, I had error 65 (no route to host) in nfs/nfs_vfsops.c, 
> >but I have fixed that by adding explicit gateway.
> 
> There is some utterly disgusting code that tries to find a ed%d interface
> to use in the kernel.  That would be a problem.  You need to explain
> to it that it's a lp0 interface instead in this case.  The right medium
> for this explanation is the struct nfs_diskless (?) and since you change
> that you need to change the version# of it, and then locore.s to copy
> the right number of bytes.  (Yes, I hate it too)

Yes, the code is there, but it is just a not-related hack.
I have already used the Source to find to proper way to do it. 
I don't need to change struct nfs_diskless. myif has fields for interface name
("lp0"), address, broadcast (used as destionation address for point-to-point
in SIOCAIFADDR - took me some time to figure out), and mask. 
The only magic added was setting broadcast to gateway if netmask is all ones,
and this change was done in boot/netboot/main.c.  No core kernel code touched.

Now if somebody would explain me how to trace this mysterious hang by DDB.
I try to boot -s, and still get a hang.  ctrl-alt-esc just throws me into
debugger with stack trace down to idleloop() or something.  `ps' in ddb
doesn't show anything but a basic crowd (swapper init pagedaemon vmdaemon 
update).   I would try to boot -d now.




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