Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { pkgs ? import <nixpkgs> {} }: with pkgs;
- let linuxPackages = callPackage /etc/nixos/thirtythree/kernel.nix {}; in
- rec {
- linux = linuxPackages.kernel;
- initrd = (makeInitrd {
- contents = [
- { object = init; symlink = "/sbin/init"; }
- { object = init; symlink = "/init"; }
- { object = "${modulesClosure}/lib"; symlink = "/lib"; }
- ];
- }).overrideAttrs (o: {
- makeUInitrd = false;
- });
- modulesClosure = makeModulesClosure {
- kernel = aggregateModules [ linuxPackages.kernel linuxPackages.zfs linuxPackages.spl ];
- rootModules = ["zfs"];
- firmware = [];
- };
- init = writeScript "init" ''
- #!${busybox}/bin/ash -x
- ${busybox}/bin/mknod /dev/console c 5 1
- ${busybox}/bin/mknod /dev/null c 1 3
- ${busybox}/bin/mknod /dev/ttyFIQ0 c 254 0
- echo "Hello, world!"
- echo "Hello, console!" > /dev/console
- echo "Hello, tty!" > /dev/ttyFIQ0
- export PATH=${busybox}/bin:${pkgs.zfs}/bin
- mkdir -p /proc
- mount -t proc proc /proc
- mkdir -p /sys
- mount -t sysfs sys /sys
- mkdir -p /etc
- echo $'\x99\x33\x99\x33' > /etc/hostid
- modprobe zfs
- (
- cd /sys
- for dev in devices/virtual/misc/zfs block/* ; do
- ( . $dev/uevent
- type=c
- [[ $dev = *block* ]] && type=b
- mknod /dev/$DEVNAME $type $MAJOR $MINOR
- ) &
- done
- wait
- )
- mkdir -p /mnt
- zpool import -N thirtythree
- mount.zfs -o zfsutil thirtythree/nixos/root /mnt
- mount.zfs -o zfsutil thirtythree/nixos/nix /mnt/nix
- exec ash
- '';
- nspawn = writeScript "nspawn" ''
- #!${stdenv.shell}
- exec unshare -m ${nspawnReal} "$@"
- '';
- nspawnReal = writeScript "nspawn-real" ''
- #!${stdenv.shell}
- mount -t tmpfs tmpfs /tmp
- cd /tmp
- gzip -d < ${initrd}/initrd | cpio -i
- exec chroot . /sbin/init
- '';
- kexec = writeScript "kexec" ''
- #!${stdenv.shell}
- set -ex
- kexec -l ${linux}/Image --initrd ${initrd}/initrd --append "console=ttyFIQ0 panic=10 loglevel=4" --dtb ${linux}/dtbs/rockchip/rk3399-nanopi4-rev01.dtb
- sleep 5
- echo ---------------------------------------- > /dev/console
- systemctl kexec
- '';
- # storagemedia=sd rw root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait root=/dev/mmcblk0p1 rw rootfstype=ext4
- # earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1
- # uboot_logo=0x02000000@0xf5c00000 loader.timestamp=2019-03-16_17:26:35 SecureBootCheckOk=0
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement