summaryrefslogtreecommitdiff
path: root/README.org
diff options
context:
space:
mode:
Diffstat (limited to 'README.org')
-rw-r--r--README.org68
1 files changed, 59 insertions, 9 deletions
diff --git a/README.org b/README.org
index 54fc97d..dc13104 100644
--- a/README.org
+++ b/README.org
@@ -98,17 +98,25 @@ For some hardware the official Guix installation image won't do
nonfree Linux kernel and nonfree firmware with the following command:
#+begin_src sh
+guix system image --image-type=iso9660 /path/to/this/channel/nongnu/system/install.scm
+#+end_src
+
+Like the official Guix installation image, this will produce a read-only image
+with any changes made stored in memory. As indicated below, you will need to
+run ~guix pull~ to download the Nonguix package descriptions, so will need
+enough memory to hold the cached channel code which can be several hundred
+megabytes. As an alternative, you can create a writable image with the
+following command:
+
+#+begin_src sh
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
#+end_src
-As indicated bellow, you will need to run ~guix pull~ to download the
-Nonguix package descriptions. Some free space on your USB thumbdrive is
-required for this operation to succeed. The ~--image-size~ option allows
-you to specify the size of the image and, as such, to allocate free space
-to it. The given value is purely indicative. It obviously depends on your
-thumbdrive capacity.
+The ~--image-size~ option allows you to specify the size of the image and, as
+such, to allocate free space to it. The given value is purely indicative. It
+obviously depends on your thumbdrive capacity.
-Then you can write the generated disk image to a USB thumbdrive with:
+Either type of image can be written to a USB thumbdrive with:
#+BEGIN_SRC sh
# NOTE: This example assumes your thumbdrive is recognized by Linux as /dev/sdb.
@@ -185,9 +193,51 @@ required, it is recommended to stay with Linux LTS releases:
...)
#+END_SRC
-** Avoiding kernel recompilation
+** Substitutes for nonguix
+
+A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
+On Guix System, you can add and authorize this URL in the following way:
+#+BEGIN_SRC scheme
+(operating-system
+ (services (modify-services %desktop-services
+ (guix-service-type config => (guix-configuration
+ (inherit config)
+ (substitute-urls
+ (append (list "https://substitutes.nonguix.org")
+ %default-substitute-urls))
+ (authorized-keys
+ (append (list (local-file "./signing-key.pub"))
+ %default-authorized-guix-keys))))))
+ ...)
+#+END_SRC
+
+Notice that the URL of the server should be specified without a trailing
+slash. The file ~signing-key.pub~ should be downloaded directly from
+[[https://substitutes.nonguix.org/signing-key.pub]].
+
+Alternatively, you can replace ~(local-file "./signing-key.pub")~ by:
+#+BEGIN_SRC scheme
+(plain-file "non-guix.pub"
+ "<contents of signing-key.pub>")
+#+END_SRC
+
+Guix System will only use the substitution server after it has been
+reconfigured. The substitution server will therefore by default not
+be used the first time you run ~guix system reconfigure~ after adding
+the substitution server. It is therefore recommended to explicitly
+specify the use of the substitution server the first time
+you reconfigure your system:
+#+BEGIN_SRC sh
+sudo guix archive --authorize < signing-key.pub
+sudo guix system reconfigure /etc/config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
+#+END_SRC
+
+Check out the [[https://guix.gnu.org/manual/en/html_node/Substitutes.html][chapter on substitutes]]
+in the Guix manual for more details.
+
+** Pinning package versions
-Since prebuilt substitutes are not currently available for Nonguix, you may find
+When using substitutes is not an option, you may find
that ~guix system reconfigure~ recompiles the kernel frequently due to version
bumps in the kernel package. An inferior can be used to pin the kernel version
and avoid lengthy rebuilds.