[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: aout support almost working now
From: |
Bean |
Subject: |
Re: aout support almost working now |
Date: |
Thu, 7 Feb 2008 03:48:20 +0800 |
On Feb 7, 2008 3:23 AM, walt <address@hidden> wrote:
> With Bean's last two commits I can almost replace legacy with grub2
> at least on x86. I have still one problem with the aout support that
> Bean posted as a patch on Jan 27.
>
> Using legacy, which loads the FreeBSD /boot/loader as the 'kernel',
> loader then reads its config files from the /boot directory so it
> knows what parameters to pass to the real kernel and also what menu
> items to show the user.
>
> Using grub2 with Bean's aout patch, I can load /boot/loader and
> then boot it successfully, but it seems that 'loader' can't find
> its config files in the /boot directory. This is what it prints:
>
> Can't work out which disk we are booting from.
> Guessed BIOS device 0xffffffff not found by probes,
> defaulting to disk0: can't load "kernel".
>
> At least on my machine, disk0 is the floppy drive and loader does
> actually go to try to read it before printing the error messages
> I listed, and then it drops to its interactive prompt.
>
> By examining the loader's variables it's clear that it never found
> its usual config files in /boot.
>
> BTW, I did set 'root' and 'prefix' to point at the correct partition
> before booting the loader.
>
> Any ideas what else to try?
i think the %edx should be set before jumping to code, try this patch:
diff --git a/kern/i386/loader.S b/kern/i386/loader.S
index 266f4ef..88f3045 100644
--- a/kern/i386/loader.S
+++ b/kern/i386/loader.S
@@ -137,6 +137,7 @@ FUNCTION(grub_multiboot_real_boot)
cli
/* Move the magic value into eax and jump to the kernel. */
+ movl $0x80, %edx
movl $MULTIBOOT_MAGIC2,%eax
popl %ecx
jmp *%ecx
@@ -159,6 +160,7 @@ FUNCTION(grub_multiboot2_real_boot)
cli
/* Move the magic value into eax and jump to the kernel. */
+ movl $0x80, %edx
movl $MULTIBOOT2_BOOTLOADER_MAGIC,%eax
popl %ecx
jmp *%ecx
Please note that this is not a proper patch, it assume booting from
the (hd0,0,a). you can adjust the value of %edx if you boot from other
partition.
--
Bean