Am 26.10.2007 02:07, Peter Stuge schrieb:
On Thu, Oct 25, 2007 at 04:44:28PM +0200, Philip Schulz wrote:
I recently played around with LinuxBIOS and FreeBSD. In short, it somewhat works in QEMU using ADLO
Cool!
Do you know the FBSD boot process internals well?
No, I'm still learning.
I discussed this at Linuxforum.dk this spring with some FBSD people and have a contact I can dig up if you want to pick up the ball.
I'm afraid I've just started so I might not even be qualified to ask good questions. But thanks for the offer anyways, I might get back to you once I've made some progress.
The idea is to short-circuit all the BIOS junk that ADLO emulates and have LB/elfboot/FILO start the kernel directly, as is done with Linux.
Since the *BSD boot process is split into several steps that may not be quite as easy as with Linux however.
Yes, the FreeBSD/i386 boot process is split into several steps. FWIW, there's a man page describing the boot process at [1]. While you could probably use the FreeBSD kernel as a payload to LinuxBIOS, I don't think it would be a good idea. First, the FreeBSD GENERIC kernel, i.e. default kernel, is about 8.6 MBytes. The size could be reduced by removing drivers and options, but then it'd still be a few MBytes in size. Maybe gzipping the kernel image would work, I don't know. But there's a second and more important reason not to boot the kernel directly: The FreeBSD kernel doesn't understand command line options like "--init=/bin/sh" which I think the Linux kernel does. Instead, the FreeBSD kernel relies on a little program called "loader" to supply it with boot time options, e.g. selecting the default console or telling the kernel to boot in single-user mode. Also, the loader takes care of loading kernel modules at boot time. The loader will look for options in a file called /boot/loader.conf, parse it and then load the kernel from /boot/kernel/kernel. Obviously, the loader has to understand a fair amount of UFS in order to do that. So in short, I think the loader should be used as a LinuxBIOS payload instead of the kernel (which is what I'm going to try one of these days). I'm no expert though, so I might be wrong.
Regards,
Philip
[1]http://www.freebsd.org/cgi/man.cgi?query=boot&apropos=0&sektion=0&am...