Add a package containing a pvgrub image for xen generated from grub2wip/yesman
parent
d15e20f9c9
commit
55208cc2e1
@ -0,0 +1 @@ |
||||
normal (memdisk)/grub.cfg |
@ -0,0 +1,10 @@ |
||||
# The parentheses around ${root} here to match Grub's config file syntax |
||||
if search -s -f /boot/grub/grub.cfg ; then |
||||
echo "Reading (${root})/boot/grub/grub.cfg" |
||||
configfile /boot/grub/grub.cfg |
||||
fi |
||||
|
||||
if search -s -f /grub/grub.cfg ; then |
||||
echo "Reading (${root})/grub/grub.cfg" |
||||
configfile /grub/grub.cfg |
||||
fi |
@ -0,0 +1,42 @@ |
||||
{ stdenv, grub2_xen }: |
||||
|
||||
with stdenv.lib; |
||||
let |
||||
efiSystemsBuild = { |
||||
"i686-linux".target = "i386"; |
||||
"x86_64-linux".target = "x86_64"; |
||||
"aarch64-linux".target = "aarch64"; |
||||
}; |
||||
|
||||
in ( |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "pvgrub-image"; |
||||
|
||||
configs = ./configs; |
||||
|
||||
buildInputs = [ grub2_xen ]; |
||||
|
||||
buildCommand = '' |
||||
cp "${configs}"/* . |
||||
tar -cf memdisk.tar grub.cfg |
||||
# We include all modules except all_video.mod as otherwise grub will fail printing "no symbol table" |
||||
# if we include it. |
||||
grub-mkimage -O "${efiSystemsBuild.${stdenv.system}.target}-xen" -c grub-bootstrap.cfg \ |
||||
-m memdisk.tar -o "grub-${efiSystemsBuild.${stdenv.system}.target}-xen.bin" \ |
||||
$(ls "${grub2_xen}/lib/grub/${efiSystemsBuild.${stdenv.system}.target}-xen/" |grep 'mod''$'|grep -v '^all_video\.mod''$') |
||||
mkdir -p "$out/lib/grub-xen" |
||||
cp "grub-${efiSystemsBuild.${stdenv.system}.target}-xen.bin" $out/lib/grub-xen/ |
||||
''; |
||||
|
||||
meta = with stdenv.lib; { |
||||
description = "PvGrub image for use for booting PV Xen guests"; |
||||
|
||||
longDescription = |
||||
'' This package provides a PvGrub image for booting Para-Virtualized (PV) |
||||
Xen guests |
||||
''; |
||||
|
||||
platforms = platforms.gnu; |
||||
}; |
||||
}) |
Loading…
Reference in new issue