38 lines
901 B
Nix
38 lines
901 B
Nix
|
{
|
||
|
busybox
|
||
|
, pkgsBuildBuild
|
||
|
, runCommand
|
||
|
, cpio
|
||
|
, writeReferencesToFile
|
||
|
, writeScript
|
||
|
} :
|
||
|
let
|
||
|
inherit (pkgsBuildBuild) gen_init_cpio;
|
||
|
script = writeScript "init" ''
|
||
|
#!/bin/sh
|
||
|
exec >/dev/console
|
||
|
echo Running in initramfs
|
||
|
PATH=${busybox}/bin:$PATH
|
||
|
export PATH
|
||
|
mount -t proc none /proc
|
||
|
mount -t sysfs none /sys
|
||
|
${busybox}/bin/sh
|
||
|
'';
|
||
|
refs = writeReferencesToFile busybox;
|
||
|
in runCommand "initramfs.cpio" { } ''
|
||
|
cat << SPECIALS | ${gen_init_cpio}/bin/gen_init_cpio /dev/stdin > out
|
||
|
dir /proc 0755 0 0
|
||
|
dir /sys 0755 0 0
|
||
|
dir /dev 0755 0 0
|
||
|
nod /dev/console 0600 0 0 c 5 1
|
||
|
nod /dev/mtdblock0 0600 0 0 b 31 0
|
||
|
dir /nix 0755 0 0
|
||
|
dir /nix/store 0755 0 0
|
||
|
dir /bin 0755 0 0
|
||
|
file /bin/sh ${busybox}/bin/sh 0755 0 0
|
||
|
file /init ${script} 0755 0 0
|
||
|
SPECIALS
|
||
|
find $(cat ${refs}) | ${pkgsBuildBuild.cpio}/bin/cpio -H newc -o -A -v -O out
|
||
|
cp out $out
|
||
|
''
|