mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-05 09:38:07 +08:00
milkv/pioneer: init
This commit is contained in:
committed by
RaitoBezarius
parent
cac934beb3
commit
f4a07223a3
54
milkv/pioneer/linuxboot-initrd.nix
Normal file
54
milkv/pioneer/linuxboot-initrd.nix
Normal file
@@ -0,0 +1,54 @@
|
||||
{ buildGoModule
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, linux-firmware
|
||||
, ...
|
||||
}:
|
||||
|
||||
# Based on
|
||||
# https://github.com/sophgo/bootloader-riscv/blob/e0839852d571df106db622611f4786ae17e8df0f/scripts/envsetup.sh#L809-L819
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "u-root";
|
||||
version = "0.14.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "u-root";
|
||||
repo = "u-root";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-8zA3pHf45MdUcq/MA/mf0KCTxB1viHieU/oigYwIPgo=";
|
||||
};
|
||||
vendorHash = null;
|
||||
patches = [
|
||||
(
|
||||
fetchpatch {
|
||||
url = "https://github.com/sophgo/bootloader-riscv/commit/322c3305763872a9b88a1c85d79bca63b8fbe7a6.patch";
|
||||
hash = "sha256-l5r3DbcMqRYD5FhRBqtEIEscZAdDvjmQJE4BIAtWYWE=";
|
||||
stripLen = 1;
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
# We only build the u-root binary in the build phase and the initrd in the
|
||||
# postBuild hook.
|
||||
subPackages = [ "." ];
|
||||
postBuild = ''
|
||||
GOROOT="$(go env GOROOT)" $GOPATH/bin/u-root \
|
||||
-build bb \
|
||||
-uinitcmd=boot \
|
||||
-files "${linux-firmware}/lib/firmware/amdgpu/:lib/firmware/amdgpu/" \
|
||||
-files "${linux-firmware}/lib/firmware/radeon/:lib/firmware/radeon/" \
|
||||
-o initramfs.cpio \
|
||||
core boot
|
||||
|
||||
# The vendor does not compress the initrd. We do since we include more
|
||||
# firmware files. CRC32 is required by the kernel's decompressor.
|
||||
xz --check=crc32 initramfs.cpio
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -D initramfs.cpio.xz $out/initrd.img
|
||||
'';
|
||||
|
||||
# Tests time out after 10min for native riscv64 builds on the pioneer.
|
||||
doCheck = false;
|
||||
}
|
||||
Reference in New Issue
Block a user