simplify calling buildEnv

Daniel Barlow 3 months ago
parent 37caac1d56
commit 0777bb47c0
  1. 19
  2. 7

@ -7,11 +7,9 @@ than by building and flashing a new image every time. This manual
documents various affordances for iteration and experiments.
In general, packages and tools that run on the "build" machine are
available in the ``buildEnv`` derivation.
available in the ``buildEnv`` derivation and can most easily
be added to your environment by running ``nix-shell``
.. code-block:: console
nix-shell -A buildEnv
Emulated devices
@ -35,7 +33,7 @@ serial console and the `QEMU monitor <
.. code-block:: console
nix-shell -A buildEnv --run "mips-vm result/vmlinux result/squashfs"
nix-shell --run "mips-vm result/vmlinux result/squashfs"
If you run with ``--background /path/to/some/directory`` as the first
parameter, it will fork into the background and open Unix sockets in
@ -71,7 +69,7 @@ This is made available as the ``routeros`` command in ``buildEnv``, so you
can do something like::
mkdir ros-sockets
nix-shell -A buildEnv
nix-shell$ routeros ros-sockets
nix-shell$ connect-vm ./ros-sockets/console
@ -104,8 +102,7 @@ do something like this:
.. code-block:: console
nix-shell -A buildEnv
--run "tufted -a result"
nix-shell --run "tufted -a result"
and then issue appropriate U-boot commands to download and flash the
@ -149,7 +146,7 @@ router from the internet so you can borrow the cable/fibre/DSL.
You need to configure the Ethernet card for VFIO passthru, then
you can execute ``run-border-vm`` in a ``buildEnv`` shell,
which starts up QEMU using the NixOS configuration in
In this VM
@ -169,6 +166,10 @@ In this VM
To configure bordervm, you need a file called ``bordervm.conf.nix``
which you can create by copying and appropriately editing ``bordervm.conf-example.nix``
Note: If you make changes to the bordervm configuration after
executing ``run-border-vm``, you need to remove the ``border.qcow2``
disk image file otherwise the changes won't get picked up.
Running tests

@ -5,4 +5,9 @@ let
liminix-config = ./vanilla-configuration.nix;
inherit nixpkgs;
in liminix
in liminix.buildEnv.overrideAttrs (o: {
nativeBuildInputs = o.nativeBuildInputs ++ [ (import nixpkgs {}).sphinx ] ;
shellHook = ''
publish(){ make -C doc html && rsync -azv doc/_build/html/; }