source: mainline/tools/grub/mkimage.sh

Last change on this file was a114e09, checked in by Jakub Jermář <jakub@…>, 6 years ago

Allow per-boot-architecture GRUB files

Organize pre-compiled GRUB binaries per-architecture in order to prepare
the layout for adding an AArch64-EFI version of this bootloader:

  • Rename boot/grub.pc to boot/grub/ia32-pc.
  • Rename boot/grub.efi to boot/grub/ia32-efi.
  • Create symlinks boot/grub/amd64-pc and amd64-efi pointing to boot/grub/ia32-pc and ia32-efi, respectively.
  • Property mode set to 100755
File size: 2.1 KB
Line 
1#!/bin/bash
2#
3# Copyright (c) 2016 Jiri Svoboda
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# - Redistributions of source code must retain the above copyright
11# notice, this list of conditions and the following disclaimer.
12# - Redistributions in binary form must reproduce the above copyright
13# notice, this list of conditions and the following disclaimer in the
14# documentation and/or other materials provided with the distribution.
15# - The name of the author may not be used to endorse or promote products
16# derived from this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
29
30#
31# Build core.img GRUB image file for use by HelenOS installer (sysinst)
32# Note that we need a suitable build of Grub2 utilities, such as the one
33# we get by running grub-update.sh
34#
35# When sysinst can build core.img itself, this script (and its product,
36# prebuilt core.img in the source tree) will be no longer needed.
37#
38
39orig_dir="$(cd "$(dirname "$0")" && pwd)"
40grub_tools_dir="$orig_dir/grub-build/i386-pc/bin"
41grub_mod_dir="$orig_dir/../../boot/grub/ia32-pc/i386-pc"
42
43"$grub_tools_dir"/grub-mkimage --directory "$grub_mod_dir" \
44 --prefix "$grub_mod_dir" --output "$grub_mod_dir/core.img" \
45 --format 'i386-pc' --compression 'auto' --config "$orig_dir/load.cfg" \
46 "ext2" "part_msdos" "biosdisk" "search_fs_uuid"
Note: See TracBrowser for help on using the repository browser.