50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
{
|
|
mkDerivation,
|
|
linux_6_1, bc, bison, elfutils, flex, perl,
|
|
pigeon-kernel-params ? [
|
|
"64BIT" "TTY" "SERIAL_8250" "SERIAL_8250_CONSOLE" "PRINTK"
|
|
|
|
"HYPERVISOR_GUEST" "PARAVIRT" "KVM_GUEST"
|
|
|
|
"BLOCK" "VIRTIO_MENU" "VIRTIO" "VIRTIO_PCI" "VIRTIO_MMIO" "VIRTIO_BLK"
|
|
"EXT4_FS" "SHMEM" "TMPFS" "PROC_FS" "PROC_SYSCTL" "SYSFS" "DEVTMPFS"
|
|
|
|
"ACPI" "PCI" "PCI_MSI" "MAGIC_SYSRQ"
|
|
|
|
"BINFMT_ELF" "BINFMT_SCRIPT" "MULTIUSER" "FUTEX" "EPOLL" "EVENTFD"
|
|
"SIGNALFD" "TIMERFD" "POSIX_TIMERS" "FILE_LOCKING" "ADVISE_SYSCALLS"
|
|
"NET" "UNIX"
|
|
]
|
|
}:
|
|
|
|
mkDerivation {
|
|
inherit (linux_6_1) src version;
|
|
pname = "pigeon-kernel";
|
|
|
|
nativeBuildInputs = [ bc bison elfutils flex perl ];
|
|
hardeningDisable = [ "all" ];
|
|
enableParallelBuilding = true;
|
|
|
|
configurePhase = ''
|
|
runHook preConfigure
|
|
patchShebangs scripts tools
|
|
make tinyconfig
|
|
for OPTION in ${toString pigeon-kernel-params}; do
|
|
scripts/config --enable $OPTION
|
|
done
|
|
make olddefconfig
|
|
for OPTION in ${toString pigeon-kernel-params}; do
|
|
grep -qx "CONFIG_$OPTION=y" .config || exit 1
|
|
done
|
|
runHook postConfigure
|
|
'';
|
|
|
|
buildFlags = [ "vmlinux" ];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
cp vmlinux "$out"
|
|
runHook postInstall
|
|
'';
|
|
}
|