forked from M-Labs/nix-servo
zynq_image: use the upstream zynq_image of not-os
This commit is contained in:
parent
5ce094b72f
commit
ae4d4c97b6
@ -1,90 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
# Copy of zynq_image.nix from https://github.com/cleverca22/not-os with added patch
|
|
||||||
|
|
||||||
let
|
|
||||||
# dont use overlays for the qemu, it causes a lot of wasted time on recompiles
|
|
||||||
x86pkgs = import pkgs.path { system = "x86_64-linux"; };
|
|
||||||
build = config.system.build;
|
|
||||||
customKernel = pkgs.linux.override {
|
|
||||||
extraConfig = ''
|
|
||||||
OVERLAY_FS y
|
|
||||||
CORESIGHT_LINKS_AND_SINKS m
|
|
||||||
CORESIGHT_SINK_TPIU m
|
|
||||||
CORESIGHT_SOURCE_ETM3X m
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
customKernelPackages = pkgs.linuxPackagesFor customKernel;
|
|
||||||
in {
|
|
||||||
boot.kernelPackages = customKernelPackages;
|
|
||||||
nixpkgs.system = "armv7l-linux";
|
|
||||||
system.build.zynq_image = let
|
|
||||||
cmdline = "root=/dev/mmcblk0 console=ttyPS0,115200n8 systemConfig=${builtins.unsafeDiscardStringContext build.toplevel}";
|
|
||||||
qemuScript = ''
|
|
||||||
#!/bin/bash -v
|
|
||||||
export PATH=${x86pkgs.qemu}/bin:$PATH
|
|
||||||
set -x
|
|
||||||
base=$(dirname $0)
|
|
||||||
|
|
||||||
mkdir ./tmp/
|
|
||||||
cp $base/root.squashfs ./tmp/
|
|
||||||
chmod +w ./tmp/root.squashfs
|
|
||||||
truncate -s 64M ./tmp/root.squashfs
|
|
||||||
|
|
||||||
qemu-system-arm \
|
|
||||||
-M xilinx-zynq-a9 \
|
|
||||||
-serial /dev/null \
|
|
||||||
-serial stdio \
|
|
||||||
-display none \
|
|
||||||
-dtb $base/zynq-zc706.dtb \
|
|
||||||
-kernel $base/zImage \
|
|
||||||
-initrd $base/initrd \
|
|
||||||
-drive file=./tmp/root.squashfs,if=sd,format=raw \
|
|
||||||
-append "${cmdline}"
|
|
||||||
'';
|
|
||||||
in pkgs.runCommand "zynq_image" {
|
|
||||||
inherit qemuScript;
|
|
||||||
passAsFile = [ "qemuScript" ];
|
|
||||||
preferLocalBuild = true;
|
|
||||||
} ''
|
|
||||||
mkdir $out
|
|
||||||
cd $out
|
|
||||||
cp ${build.squashfs} root.squashfs
|
|
||||||
cp ${build.kernel}/*zImage .
|
|
||||||
cp ${build.initialRamdisk}/initrd initrd
|
|
||||||
cp ${build.kernel}/dtbs/zynq-zc706.dtb .
|
|
||||||
ln -sv ${build.toplevel} toplevel
|
|
||||||
cp $qemuScriptPath qemu-script
|
|
||||||
chmod +x qemu-script
|
|
||||||
patchShebangs qemu-script
|
|
||||||
ls -ltrh
|
|
||||||
'';
|
|
||||||
environment.systemPackages = [ pkgs.strace ];
|
|
||||||
environment.etc."service/getty/run".source = pkgs.writeShellScript "getty" ''
|
|
||||||
bash </dev/ttyPS0 >/dev/ttyPS0
|
|
||||||
'';
|
|
||||||
environment.etc."pam.d/other".text = "";
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super: {
|
|
||||||
# armv7l cross-compile fixes
|
|
||||||
libuv = super.libuv.overrideAttrs (old: { doCheck = false;});
|
|
||||||
elfutils = super.elfutils.overrideAttrs (old: { doCheck = false; doInstallCheck = false;});
|
|
||||||
systemd = super.systemd.override { withEfi = false; };
|
|
||||||
procps = super.procps.override { withSystemd = false; };
|
|
||||||
nix = super.nix.override { enableDocumentation = false; };
|
|
||||||
|
|
||||||
# closure size fixes
|
|
||||||
openssh = super.openssh.override { withFIDO = false; withKerberos = false; };
|
|
||||||
util-linux = super.util-linux.override {
|
|
||||||
pamSupport=false;
|
|
||||||
capabilitiesSupport=false;
|
|
||||||
ncursesSupport=false;
|
|
||||||
systemdSupport=false;
|
|
||||||
nlsSupport=false;
|
|
||||||
translateManpages=false; };
|
|
||||||
utillinuxCurses = self.util-linux;
|
|
||||||
utillinuxMinimal = self.util-linux;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user