grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] a.out support for multiboot and freebsd


From: Bean
Subject: Re: [PATCH] a.out support for multiboot and freebsd
Date: Sun, 17 Feb 2008 00:43:42 +0800

On Feb 16, 2008 2:43 AM, walt <address@hidden> wrote:
> I'd like to know exactly how you create your virtual disks for testing.
> I've been creating appropriate-size partitions on a USB stick and then
> copying whatever files I need onto it.  Then I use dd to make an img
> file to run in qemu.  It's a very slow process and I'd like to do it
> better.  Any hints?

i think the problem may be caused by dd. bsd disk label record the
start sector on disk, if you just copy the partition, the disk label
would be wrong, therefore cause the 'out of partition' problem, which
generally means reading beyond the end of disk. I recommend install
inside qemu to create consistent disk structure.

Anyway, i think the bsd module should be fine, here is the whole
patch, if nobody objects, i would like to commit it soon.

2008-02-16  Bean  <address@hidden>

        * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
        (aout_mod_SOURCES): New variable.
        (aout_mod_CFLAGS): Likewise.
        (aout_mod_LDFLAGS): Likewise.
        (_bsd_mod_SOURCES): New variable.
        (_bsd_mod_CFLAGS): Likewise.
        (_bsd_mod_LDFLAGS): Likewise.
        (bsd_mod_SOURCES): New variable.
        (bsd_mod_CFLAGS): Likewise.
        (bsd_mod_LDFLAGS): Likewise.

        * include/grub/aout.h: New file.

        * include/grub/i386/loader.h (grub_unix_real_boot): New function.

        * include/grub/i386/bsd.h: New file.

        * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
        to make it public.

        * kern/elf.c (grub_elf32_load): Get the physical address after the hook
        function is called, so that it's possible to change it inside the hook.
        (grub_elf64_load): Likewise.
        (grub_elf_file): Don't close the file if elf header is not found.
        (grub_elf_close): Close the file if grub_elf_file fails (The new
        grub_elf_file won't close it).
        (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
        (grub_elf64_size): Likewise.

        * kern/i386/loader.S (grub_unix_real_boot): New function.

        * loader/aout.c: New file.

        * loader/i386/bsd.c: New file.

        * loader/i386/bsd_normal.c: New file.

        * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.

        * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
        can test othe formats.

-- 
Bean

Attachment: bsd3.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]