pvgrub_image: add package
Add a package containing a pvgrub image for xen generated from grub2
This commit is contained in:
@@ -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;
|
||||
};
|
||||
})
|
||||
Reference in New Issue
Block a user