liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 37caac1d560f1890f627936bf4acd5457c030638
parent 832221748bb36e3a5e9f8c2563ea7ceb88d07847
Author: Daniel Barlow <dan@telent.net>
Date:   Fri, 17 Feb 2023 20:19:45 +0000

add shell.nix and tidy docs to take advantage of it

Diffstat:
Mdoc/developer.rst | 21+++++++++++----------
Mdoc/user.rst | 10++++------
Ashell.nix | 8++++++++
3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/doc/developer.rst b/doc/developer.rst @@ -11,7 +11,7 @@ available in the ``buildEnv`` derivation. .. code-block:: console - nix-shell -A buildEnv --arg device '(import ./devices/qemu)' + nix-shell -A buildEnv Emulated devices @@ -27,7 +27,7 @@ To build it, .. code-block:: console - NIX_PATH=nixpkgs=../nixpkgs:$NIX_PATH nix-build -I liminix-config=path/to/your/configuration.nix --arg device "import ./devices/qemu" -A outputs.default + nix-build -I liminix-config=path/to/your/configuration.nix --arg device "import ./devices/qemu" -A outputs.default In a ``buildEnv`` nix-shell, you can use the ``mips-vm`` command to run Qemu with appropriate options. It connects the Liminix @@ -35,7 +35,7 @@ serial console and the `QEMU monitor <https://www.qemu.org/docs/master/system/m .. code-block:: console - nix-shell -A buildEnv --arg device '(import ./devices/qemu)' --run "mips-vm result/vmlinux result/squashfs" + nix-shell -A buildEnv --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 +71,7 @@ This is made available as the ``routeros`` command in ``buildEnv``, so you can do something like:: mkdir ros-sockets - nix-shell -A buildEnv --arg device '(import ./devices/qemu)' + nix-shell -A buildEnv nix-shell$ routeros ros-sockets nix-shell$ connect-vm ./ros-sockets/console @@ -104,7 +104,7 @@ do something like this: .. code-block:: console - nix-shell -A buildEnv --arg device '(import ./devices/qemu)' \ + nix-shell -A buildEnv --run "tufted -a 192.168.8.251 result" and then issue appropriate U-boot commands to download and flash the @@ -198,7 +198,7 @@ because it has dependencies on other things you didn't know about. Build the ``outputs.manifest`` attribute, which is a JSON representation of the filesystem, and you can run ``nix-store --query`` on it.:: - NIX_PATH=nixpkgs=../nixpkgs:$NIX_PATH nix-build -I liminix-config=path/to/your/configuration.nix --arg device "import ./devices/qemu" -A outputs.manifest -o manifest + nix-build -I liminix-config=path/to/your/configuration.nix --arg device "import ./devices/qemu" -A outputs.manifest -o manifest nix-store -q --tree manifest @@ -216,8 +216,8 @@ already started on. Nix language style ================== -In an attempt to keep this more consistent than NixWRT ended up being, -here is a Nix language style guide for this repo. +This section describes some Nix language style points that we +attempt to adhere to in this repo. * favour ``callPackage`` over raw ``import`` for calling derivations or any function that may generate one - any code that might need @@ -259,6 +259,7 @@ variety of licences. I have no intention of asking for copyright assignment: just like when submitting to the Linux kernel you retain the copyright on the code you contribute. + Code of Conduct =============== @@ -269,8 +270,8 @@ Where to send patches ===================== -Liminix' primary repo is https://gti.telent.net/dan/liminix but that -doesn't help you much, because it doesn't have open registrations. +Liminix' primary repo is https://gti.telent.net/dan/liminix but you +can't send code there directly because it doesn't have open registrations. * There's a `mirror on Github <https://github.com/telent/liminix>`_ for convenience and visibility: you can open PRs against that diff --git a/doc/user.rst b/doc/user.rst @@ -23,19 +23,17 @@ it. For example: .. code-block:: console - NIX_PATH=nixpkgs=../nixpkgs:$NIX_PATH nix-build -I liminix-config=./tests/smoke/configuration.nix --arg device "import ./devices/qemu" -A outputs.default + nix-build -I liminix-config=./tests/smoke/configuration.nix --arg device "import ./devices/qemu" -A outputs.default ``outputs.default`` is intended to do something appropriate for the device, whatever that is. For the qemu device, it creates a directory containing a squashfs root image and a kernel. -As of Feb 2023, flashing devices is not implemented other than by -taking the covers off and connecting wires to the serial console -pads - so, check in the Developer Manual. - Future versions of this manual will at this point refer to device-specific instructions for installing Liminix using the router's -Web UI or other non-invasive method. +Web UI or other non-invasive method. As of Feb 2023, the only way to +flash a device is to take the cover off and connect wires to the +serial console pads - so, check in the Developer Manual. Updating a running device diff --git a/shell.nix b/shell.nix @@ -0,0 +1,8 @@ +let + nixpkgs = <nixpkgs>; + liminix = (import ./default.nix { + device = (import ./devices/qemu); + liminix-config = ./vanilla-configuration.nix; + inherit nixpkgs; + }); +in liminix