grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
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



  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).