From: Andrey Borzenkov <arvidjaar@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Cc: adrian15sgd@gmail.com
Subject: Re: Trying to build Rescue image for three different target and platform
Date: Thu, 13 Mar 2014 09:51:28 +0400 [thread overview]
Message-ID: <20140313095128.74e85778@opensuse.site> (raw)
In-Reply-To: <531C934C.5070501@gmail.com>
В Sun, 09 Mar 2014 17:14:04 +0100
adrian15 <adrian15sgd@gmail.com> пишет:
> Basically what I want to do is to use grub-mkrescue to generate a grub2
> rescue disk with some custom files (The Super Grub2 Disk stuff).
>
> However I want to build different files depending on target+platform
> combination.
>
> My four combinations are:
>
> * (Hybrid) x86_64+efi and i386+pc
> * i386 - pc
> * x86_64 - efi
> * i386 - efi
>
> More about this setup.
>
> 1) As an initial setup I work with a Debian Unstable Sid Chroot amd64 as
> described in:
> http://www.supergrubdisk.org/wiki/Super_Grub2_Disk_Sid_Chroot#Introduction
> 2) I use Debian's Grub2 source code so that I do not have to deal
> manually with dependencies. That's explained here:
> http://www.supergrubdisk.org/wiki/Super_Grub2_Disk_Sid_Chroot_Grub2_Build_And_Installation
> (just before Hybrid build section).
>
> 3) x86_64_efi build is working. Basically what I run in the src dir is:
>
> sudo rm -rf /usr/local/share/grub
> sudo rm -rf /usr/local/lib/grub
> make clean
> make distclean
> bash linguas.sh
> bash autogen.sh
> ./configure --target=i386 --with-platform=efi && make && sudo make
> uninstall
> make clean
> make distclean
> ./configure --target=i386 --with-platform=pc && make && sudo make
> uninstall
> make clean
> make distclean
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> uninstall
> make clean
> make distclean
> make clean
> make distclean
> bash linguas.sh
> bash autogen.sh
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> install
>
To be honest, I do not understand what you are trying to do here.
> 6) When I build i386 - pc I get this error:
>
> xorriso : FAILURE : Given path does not exist on disk: -boot_image
> system_area='/usr/local/lib/grub/i386-pc/boot_hybrid.img'
>
> Why is it failing to create /usr/local/lib/grub/i386-pc/boot_hybrid.img
> file?
>
This file should be built and installed on 386-pc platform. If not
either there is a bug, or you are doing something wrong. It is hard to
tell, you are doing so many steps ...
> 7) Is it useful that I insist on building an i386+efi release? Any
> machine system that uses it? Some old Mac-something hardware perhaps?
>
> 8) What's the best way to build and install an hybrid system that
> includes both: x86_64_efi and i386 - pc stuff?
>
Just built and install grub for each platform you want to use;
grub-mkrescue will automatically include every platform it finds.
> Current code is:
>
> ./configure --target=i386 --with-platform=pc && make && sudo make install
> make clean
> make distclean
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> install
>
It is better to explicitly force host platform with --host=.... to make
sure user space is always the same. Otherwise it should be fine.
I prefer to build every platform in separate directory, there were
issues with incomplete cleanup. If you hit one, please report.
> 9) A) What's the best way to remove grub configuration files installed
> on the system so that I can start from scratch so that already built
> target+platform grub binaries or configurations are ignored?
>
There are no configuration files after "make install" (if we do not
count /etc/grub.d as configuration).
> B) That's what I try to do in clean_every_build function in
> supergrub-meta-mkrescue script but I do not think its an efficient way
> of doing it.
>
> C) You know I would like to remove the rm -rf /usr/local/share/grub and
> rm -rf /usr/local/lib/grub lines (too weird) and just use the:
>
> ./configure ; make ; make uninstall part.
>
> D) Which I do not know if could be re-written as:
>
> ./configure ; make uninstall
>
> (Notice that there is not a make step).
>
> Does removing the make default target call (make) breaks "make
> uninstall" functionality?
>
> 10) As a summary I basically want to build and install from upstream
> source code and then make one rescue disk for each one of these four
> combinations. (And make theses rescue diks in a row)
>
> * (Hybrid) x86_64+efi and i386+pc
> * i386 - pc
> * x86_64 - efi
> * i386 - efi
>
> So... any help on this build automation process?
>
> Thank you very much!
>
>
> adrian15
next prev parent reply other threads:[~2014-03-13 5:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-09 16:14 Trying to build Rescue image for three different target and platform adrian15
2014-03-13 5:51 ` Andrey Borzenkov [this message]
2014-03-16 5:56 ` adrian15
2014-03-16 7:04 ` Andrey Borzenkov
2014-03-16 12:05 ` adrian15
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140313095128.74e85778@opensuse.site \
--to=arvidjaar@gmail.com \
--cc=adrian15sgd@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.