Re: [Etherboot-developers] Re: Etherboot and FreeBSD
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Michael S. <Mic...@si...> - 2001-02-28 23:55:47
|
On Wed, 28 Feb 2001 14:33:56 -0800 (PST), Doug Ambrisko wrote: >Michael Sinz writes: >| Ken Yap wrote: >| > |FreeBSD has a rather nasty design flaw that made me dig into >| > |Etherboot. I tried to disturb as little as possible in the >| > |patch I submitted (here on this site) >| >| > Could you please resubmit to eth...@li.... >| > Reason is the main FreeBSD maintainer is on that list. I don't have >| > FreeBSD myself and can't verify your patch. He can tell you if your >| > concerns are valid and if you have fixed it the right way. > >I've been lurking and listening to his comments on the FreeBSD lists. What >he is doing is valid. It is my understanding that he is loading the symbol >tables used for debugging and some other useful things. I haven't >run into the problem since for debuging I do remote gdb and I have a >kernel in the NFS root so it can find things for top and such. Ahh, so you load via NFS and have the kernel load its own symbols after the fact? How well does that actually work? >| Anyway, the patch is attached here (and this is going to the >| etherboot-developers list. >| >| The problem (or not so much problem but design quirk) with FreeBSD >| is that it needs the debugging symbols (if you strip the kernel it >| will not work) to be loaded when the kernel is loaded. Plus, these > >This is a little strong and mis-leading since several people are apparantly >using something that doesn't work. Not to mention some products in the >thousands have been using this code for manufacturing so something works. The base boot works - and FreeBSD 2.x (a.out) worked due to different load formats. We were running early test builds without the symbols but this prevented the kvm tools from working, which included swapon, something that our servers actually need (yes, I am working on getting the software to be less of a memory pig, but the situation is rather complex...) I guess I was most surprised when symbol lookups worked for any static symbol in the kernel. There was no "define this as externally accessable" such as sysctl would do. That, combined with the lack of documentation of some of the boot loading process made me an unhappy engineer... I may need to reduce my flame thrower a bit otherwise I may get blasted :-) >| symbols must be set up in a special way and pointed to via a metadata >| structure that is pointed to by the bootinfo structure that is passed >| as part of the boot process. >| >| I have made changes to the osloader.c code to support this behavior. >| This lets FreeBSD be loaded via Etherboot for a diskless system >| (such as via DHCPD/BOOTP setups) and work. This affects only the Elf >| (FreeBSD 3.x/4.x) versions due to the way symbols are handled. > >I haven't tried the patches since I've been busy with some other stuff >but I think the concept is good and the feature is good so I don't see >any problem with this at a high level. I'm actually happy to see this >work being done however wonder why he didn't send email to me directly >since I'm listed as the maintainer in FreeBSD ports collection. Maybe >I missed something. Sorry about that - we had to get something working ASAP and after running into what the real problem was and not finding a good solution without a BIOS change we went with the BIOS change. (The good part is that we built the hardware for these clusters and thus were already in a position to build the BIOS for them...) If I stepped on any toes with the patch posting, I am sorry. I saw the sourceforge project and figured that was the way to do things. (The main other projects I have been involved with were, I would say, handled very differently and not via sourceforge so I did not know what the right protocol is for a sourceforge handled project. My bad.) -- Michael Sinz ---- Technology and Engineering Director/Consultant "Starting Startups" mailto:mic...@si... My place on the web ------->> http://www.sinz.org/Michael.Sinz |