add shell.nix and tidy docs to take advantage of it
This commit is contained in:
parent
832221748b
commit
37caac1d56
3 changed files with 23 additions and 16 deletions
|
@ -11,7 +11,7 @@ available in the ``buildEnv`` derivation.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
nix-shell -A buildEnv --arg device '(import ./devices/qemu)'
|
nix-shell -A buildEnv
|
||||||
|
|
||||||
|
|
||||||
Emulated devices
|
Emulated devices
|
||||||
|
@ -27,7 +27,7 @@ To build it,
|
||||||
|
|
||||||
.. code-block:: console
|
.. 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
|
In a ``buildEnv`` nix-shell, you can use the ``mips-vm`` command
|
||||||
to run Qemu with appropriate options. It connects the Liminix
|
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
|
.. 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
|
If you run with ``--background /path/to/some/directory`` as the first
|
||||||
parameter, it will fork into the background and open Unix sockets in
|
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::
|
can do something like::
|
||||||
|
|
||||||
mkdir ros-sockets
|
mkdir ros-sockets
|
||||||
nix-shell -A buildEnv --arg device '(import ./devices/qemu)'
|
nix-shell -A buildEnv
|
||||||
nix-shell$ routeros ros-sockets
|
nix-shell$ routeros ros-sockets
|
||||||
nix-shell$ connect-vm ./ros-sockets/console
|
nix-shell$ connect-vm ./ros-sockets/console
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ do something like this:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
nix-shell -A buildEnv --arg device '(import ./devices/qemu)' \
|
nix-shell -A buildEnv
|
||||||
--run "tufted -a 192.168.8.251 result"
|
--run "tufted -a 192.168.8.251 result"
|
||||||
|
|
||||||
and then issue appropriate U-boot commands to download and flash the
|
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
|
``outputs.manifest`` attribute, which is a JSON representation of the
|
||||||
filesystem, and you can run ``nix-store --query`` on it.::
|
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
|
nix-store -q --tree manifest
|
||||||
|
|
||||||
|
|
||||||
|
@ -216,8 +216,8 @@ already started on.
|
||||||
Nix language style
|
Nix language style
|
||||||
==================
|
==================
|
||||||
|
|
||||||
In an attempt to keep this more consistent than NixWRT ended up being,
|
This section describes some Nix language style points that we
|
||||||
here is a Nix language style guide for this repo.
|
attempt to adhere to in this repo.
|
||||||
|
|
||||||
* favour ``callPackage`` over raw ``import`` for calling derivations
|
* favour ``callPackage`` over raw ``import`` for calling derivations
|
||||||
or any function that may generate one - any code that might need
|
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
|
assignment: just like when submitting to the Linux kernel you retain
|
||||||
the copyright on the code you contribute.
|
the copyright on the code you contribute.
|
||||||
|
|
||||||
|
|
||||||
Code of Conduct
|
Code of Conduct
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
@ -269,8 +270,8 @@ Where to send patches
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
|
|
||||||
Liminix' primary repo is https://gti.telent.net/dan/liminix but that
|
Liminix' primary repo is https://gti.telent.net/dan/liminix but you
|
||||||
doesn't help you much, because it doesn't have open registrations.
|
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
|
* There's a `mirror on Github <https://github.com/telent/liminix>`_ for
|
||||||
convenience and visibility: you can open PRs against that
|
convenience and visibility: you can open PRs against that
|
||||||
|
|
10
doc/user.rst
10
doc/user.rst
|
@ -23,19 +23,17 @@ it. For example:
|
||||||
|
|
||||||
.. code-block:: console
|
.. 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
|
``outputs.default`` is intended to do something appropriate for the
|
||||||
device, whatever that is. For the qemu device, it creates a directory
|
device, whatever that is. For the qemu device, it creates a directory
|
||||||
containing a squashfs root image and a kernel.
|
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
|
Future versions of this manual will at this point refer to
|
||||||
device-specific instructions for installing Liminix using the router's
|
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
|
Updating a running device
|
||||||
|
|
8
shell.nix
Normal file
8
shell.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
let
|
||||||
|
nixpkgs = <nixpkgs>;
|
||||||
|
liminix = (import ./default.nix {
|
||||||
|
device = (import ./devices/qemu);
|
||||||
|
liminix-config = ./vanilla-configuration.nix;
|
||||||
|
inherit nixpkgs;
|
||||||
|
});
|
||||||
|
in liminix
|
Loading…
Reference in a new issue