summaryrefslogtreecommitdiff
path: root/gnu/system/linux-initrd.scm
AgeCommit message (Expand)Author
2017-11-08build: Use overlayfs instead of unionfs....Overlayfs is part of the kernel, while unionfs needs FUSE. This also reduces the size of the initrd by ca. 4.3% (487K). * gnu/build/linux-boot.scm (mount-root-file-system): Remove optional parameter "unionfs"; mount using overlayfs instead of unionfs; new directory layout requied by overlayfs; update documentation. [mark-as-not-killable]: Remove now unused function * gnu/system/linux-initrd.scm (file-system-packages): Remove now unused packages "unionfs-fuse/static" and thus unused related 'if'. (linux-modules): Replace "fuse" by "overlay". Hartmut Goebel
2017-10-11file-systems: 'mount-file-system' now takes a <file-system> object....* gnu/build/file-systems.scm (mount-file-system): Rename 'spec' to 'fs' and assume it's a <file-system>. * gnu/build/linux-boot.scm (boot-system): Assume MOUNTS is a list of <file-system> and adjust accordingly. * gnu/build/linux-container.scm (mount-file-systems): Remove 'file-system->spec' call. * gnu/services/base.scm (file-system-shepherd-service): Add 'spec->file-system' call. Add (gnu system file-systems) to 'modules'. * gnu/system/linux-initrd.scm (raw-initrd): Use (gnu system file-systems). Add 'spec->file-system' call for #:mounts. Ludovic Courtès
2017-10-08linux-initrd: Ensure that the guile used in the initrd is referenced....By referencing guile from the initrd output explicitly, it will be present in the store when this initrd is used. If the exact guile used within the initrd isn't present in the store, then after root is switched during the boot process, loading modules (such as (ice-9 popen)) won't work. This fixes guix-patches bug #28399, "Fix mysql activation, and add a basic test". * gnu/system/linux-initrd.scm (expression->initrd)[builder]: Write out a file called references in to the initrd output, which includes the store path for guile. Christopher Baines
2017-07-04linux-initrd: Avoid monadic style a bit....* gnu/system/linux-initrd.scm (expression->initrd): Use 'program-file' for 'init'. (flat-linux-module-directory): Use 'computed-file' instead of 'gexp->derivation'. (raw-initrd): Adjust accordingly. Ludovic Courtès
2017-07-02linux-initrd: Add isofs if necessary....* gnu/system/linux-initrd.scm (base-initrd): Add isofs. Danny Milosavljevic
2017-05-19vm: Support creating FAT partitions....* gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): New procedures. (format-partition): Use them. Error for unknown file systems. * gnu/system/vm.scm (qemu-image): Include DOSFSTOOLS. * gnu/system/linux-initrd.scm (base-initrd): Always add nls_is8859-1.ko. Marius Bakke
2017-03-21file-systems: Do not use (gnu packages …)....Fixes a regression introduced in 7208995426714c9fc3ad59cadc3cc0f52df0f018 whereby (gnu system file-systems) would pull in (gnu packages …) module, which in turn breaks when importing things like (gnu build shepherd). * gnu/system/file-systems.scm (file-system-type-predicate): Export. (file-system-packages): Move to... * gnu/system/linux-initrd.scm (file-system-packages): ... here. Add docstring. * gnu/services/base.scm: Use it. * tests/file-systems.scm ("does not pull (gnu packages …)"): New test. Ludovic Courtès
2017-03-18file-systems: Factorize file-system-packages....* gnu/system/linux-initrd.scm (base-initrd): Move helper-packages body to ... * gnu/system/file-systems.scm (file-system-packages): ... here. New variable. Also export it. Danny Milosavljevic
2017-03-11linux-initrd: Add a raw-initrd and use it to define base-initrd....* gnu/system/linux-initrd.scm (raw-initrd): New exported variable. (base-initrd): Use raw-initrd to build the initrd. * doc/guix.texi (Initial RAM Disk): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mathieu Othacehe
2017-01-10system: Add btrfs file system support....* gnu/build/file-systems.scm (%btrfs-endianness, btrfs-superblock?, read-btrfs-superblock, btrfs-superblock-uuid, btrfs-superblock-volume-name, check-btrfs-file-system): New variables. (%paritition-label-readers, %partition-uuid-readers): Add btrfs readers. * gnu/system/linux-initrd.scm (linux-modules): Add btrfs modules when a btrfs file-system is used. * gnu/tests/install.scm (%btrfs-root-os %btrfs-root-os-source, %btrfs-root-installation-script, %test-btrfs-root-os): New system test. * doc/guix.texi: Adjust accordingly. Fixes <http://bugs.gnu.org/19280>. David Craven
2016-12-18linux-initrd: Support FAT filesystems....* gnu/system/linux-initrd.scm (base-initrd): When a FAT filesystem is present: Add fatfsck/static in 'helper-packages'; and add nls_iso8859-1 in 'linux-modules'. Marius Bakke
2016-09-05system: Use 'source-module-closure' where needed....* gnu/system/vm.scm (%vm-module-closure): Remove. (expression->derivation-in-linux-vm): Use 'source-module-closure' instead of %VM-MODULE-CLOSURE. (qemu-image): Likewise. * gnu/system/linux-initrd.scm (expression->initrd): Likewise. (flat-linux-module-directory, base-initrd): Likewise. * gnu/system/mapped-devices.scm (open-luks-device): Likewise. Ludovic Courtès
2016-07-12gnu: Switch to 'with-imported-modules'....* gnu/services.scm (directory-union): Use 'with-imported-modules' instead of the '#:modules' argument of 'computed-file'. * gnu/services/base.scm (udev-rules-union): Likewise. * gnu/services/dbus.scm (system-service-directory): Likewise. * gnu/services/desktop.scm (wrapped-dbus-service): (polkit-directory): Likewise. * gnu/services/networking.scm (tor-configuration->torrc): Likewise. * gnu/services/xorg.scm (xorg-configuration-directory): Likewise. * gnu/system/install.scm (self-contained-tarball): Likewise. * gnu/system/linux-container.scm (container-script): Likewise. * gnu/system/linux-initrd.scm (expression->initrd): Likewise, and remove #:modules parameter. (flat-linux-module-directory): Use 'with-imported-modules'. (base-initrd): Likewise. * gnu/system/locale.scm (locale-directory): Likewise. * gnu/system/shadow.scm (default-skeletons): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise. * gnu/tests/base.scm (run-basic-test): Likewise. * gnu/tests/install.scm (run-install): Likewise. * doc/guix.texi (Initial RAM Disk): Update 'expression->initrd' documentation. Ludovic Courtès
2016-06-29gnu: linux-initrd: Support NVMe devices....* gnu/system/linux-initrd.scm (base-initrd): Add nvme to linux-modules. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Jan Nieuwenhuizen
2016-04-18mapped-devices: LUKS partitions can be designated by their UUID....* gnu/system/mapped-devices.scm (device-mapping-service-type): Add 'modules' and 'imported-modules' fields to 'shepherd-service'. (open-luks-device): Use 'find-partition-by-luks-uuid' to lookup the partition when SOURCE is a bytevector. * gnu/system/linux-initrd.scm (base-initrd): Augment 'use-modules' form. * doc/guix.texi (Mapped Devices): Give example with a UUID. Ludovic Courtès
2016-04-18system: Add (gnu system mapped-devices)....* gnu/system/file-systems.scm (<mapped-device>, <mapped-device-type>): Move to... * gnu/system/mapped-devices.scm: ... here. New file. * gnu/system.scm, gnu/services/base.scm, gnu/system/linux-initrd.scm: Use it. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu.scm (%public-modules): Add it. Ludovic Courtès
2016-02-08Add (guix build bournish) and use it in the initrd....* guix/build/bournish.scm: New file. * Makefile.am (MODULES): Add it. * gnu/system/linux-initrd.scm (base-initrd): Add (guix build bournish) and use it. Ludovic Courtès
2016-02-03linux-initrd: Add serpent_generic and wp512 to the default set of modules....Adds modules needed for encrypted root partitions using the Serpent cipher or Whirlpool digest algorithms. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add "serpent_generic" and "wp512". Mark H Weaver
2016-02-03linux-initrd: Add hid-generic and hid-apple to the default set of modules....Fixes keyboard of MacBook2,1 during early boot, e.g. for typing a password to mount an encrypted root partition. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add "hid-generic" and "hid-apple". Mark H Weaver
2016-01-17linux-initrd: Remove "usbkbd" from the default set of modules....Reported by Ricardo Wurmus <rekado@elephly.net> at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20433#39>. * gnu/system/linux-initrd.scm (base-initrd): Remove "usbkbd". Ludovic Courtès
2015-10-27linux-initrd: Use pata_acpi, pata_atiixp, and isci modules only on Intel....* gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Include "pata_acpi", "pata_atiixp", and "isci" on Intel systems only. Mark H Weaver
2015-09-20linux-initrd: Add LUKS/dm-crypt modules to the initrd....Suggested by Petter <petter@mykolab.ch> and Mark H Weaver <mhw@netris.org>. Partly fixes <http://bugs.gnu.org/19190>. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add dm-crypt and xts. Ludovic Courtès
2015-07-10gnu: Include (guix build syscalls) module in initrd/VM derivations....This bug was introduced in commit 85c3127. Thanks to Christopher Webber for reporting it. * gnu/syste/linux-initrd.scm (base-initrd): Include (guix build syscalls) module in derivation. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise. David Thompson
2015-07-07gnu: system: Move file-system->spec to (gnu system file-systems)....* gnu/system/linux-initrd.scm (file-system->spec): Move this... * gnu/system/file-systems.scm: ... to here. David Thompson
2015-06-24linux-initrd: Use (guix cpio) instead of GNU cpio....* gnu/build/linux-initrd.scm (write-cpio-archive): Remove 'open-pipe*' and related calls. Compute list of files in 'files' variable. Use 'cpio:write-cpio-archive'. Remove #:cpio parameter. (build-initrd): Remove #:cpio parameter. * gnu/system/linux-initrd.scm (expression->initrd): Likewise, and adjust BUILDER accordingly. Add (guix cpio) to #:modules. Ludovic Courtès
2015-04-05linux-initrd: Add virtio drivers by default....* gnu/system/linux-initrd.scm (base-initrd): Change #:virtio? default to #t. This will facilitate the use of GuixSD in VM guests. Ludovic Courtès
2015-04-05system: Take kernel modules from the user-specified kernel....* gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to specify the linux kernel to use. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Propagate #:linux to base-initrd. * gnu/system.scm (operating-system-initrd-file): Pass #:linux to 'make-initrd'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Andy Wingo
2015-02-09linux-initrd: Add 'isci' module, needed for some SAS controllers....Encountered on a Dell Precision T3600. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add isci. Ludovic Courtès
2015-01-27linux-initrd: Add USB kernel modules to the default initrd....* gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add usb-storage, uas, usbkbd, and usbhid. * gnu/system/vm.scm (system-disk-image): Remove #:extra-modules argument to 'base-initrd'. Ludovic Courtès
2015-01-14monads: Move '%store-monad' and related procedures where they belong....This turns (guix monads) into a generic module for monads, and moves the store monad and related monadic procedures in their corresponding module. * guix/monads.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file, package-file, package->derivation, package->cross-derivation, origin->derivation, imported-modules, compiled, modules, built-derivations, run-with-store): Move to... * guix/store.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file): ... here. (%guile-for-build): New variable. (run-with-store): Moved from monads.scm. Remove default value for #:guile-for-build. * guix/packages.scm (default-guile): Export. (set-guile-for-build): New procedure. (package-file, package->derivation, package->cross-derivation, origin->derivation): Moved from monads.scm. * guix/derivations.scm (%guile-for-build): Remove. (imported-modules): Rename to... (%imported-modules): ... this. (compiled-modules): Rename to... (%compiled-modules): ... this. (built-derivations, imported-modules, compiled-modules): New procedures. * gnu/services/avahi.scm, gnu/services/base.scm, gnu/services/dbus.scm, gnu/services/dmd.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system/install.scm, gnu/system/linux-initrd.scm, gnu/system/shadow.scm, guix/download.scm, guix/gexp.scm, guix/git-download.scm, guix/profiles.scm, guix/svn-download.scm, tests/monads.scm: Adjust imports accordingly. * guix/monad-repl.scm (default-guile-derivation): New procedure. (store-monad-language, run-in-store): Use it. * build-aux/hydra/gnu-system.scm (qemu-jobs): Add explicit 'set-guile-for-build' call. * guix/scripts/archive.scm (derivation-from-expression): Likewise. * guix/scripts/build.scm (options/resolve-packages): Likewise. * guix/scripts/environment.scm (guix-environment): Likewise. * guix/scripts/system.scm (guix-system): Likewise. * doc/guix.texi (The Store Monad): Adjust module names accordingly. Ludovic Courtès
2014-12-08linux-initrd: Add the 'virtio_console' module for QEMU guests....* gnu/system/linux-initrd.scm (base-initrd)[virtio-modules]: Add "virtio_console". Ludovic Courtès
2014-11-28linux-initrd: Remove the ".ko" suffix from module names in 'base-initrd'....* gnu/system/linux-initrd.scm (base-initrd): Remove the .ko suffix from module names. Ludovic Courtès
2014-11-28linux-initrd: Remove now redundant module names....* gnu/system/linux-initrd.scm (base-initrd)[virtio-modules]: Remove "virtio.ko" and "virtio_ring.ko". [virtio-9p-modules]: Remove "fscache.ko" and "9pnet.ko". [linux-modules]: Remove "libahci.ko". Ludovic Courtès
2014-11-28linux-boot: Load modules and their dependencies, à la 'modprobe'....* gnu/build/linux-boot.scm: Use (gnu build linux-modules). (load-linux-module*): Remove. (boot-system): Add #:linux-module-directory parameter. [lookup-module]: New procedure. Call 'current-module-debugging-port'. Pass #:lookup-module to 'load-linux-module*'. Map LOOKUP-MODULE on LINUX-MODULES. * gnu/system/linux-initrd.scm (base-initrd): Adjust 'boot-system' call accordingly. Adjust #:modules argument as well. * gnu/system.scm (operating-system-activation-script)[%modules]: Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise. Ludovic Courtès
2014-11-28linux-initrd: Copy modules and their dependencies to the initrd....* gnu/system/linux-initrd.scm (flat-linux-module-directory)[build-exp]: Add 'lookup' procedure. Use 'recursive-module-dependencies' to compute the list of modules to copy. Adjust #:modules parameter. Ludovic Courtès
2014-11-13linux-initrd: Add modules for ATA controllers by default....Reported by th3kent on #guix. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add pata_acpi.ko and pata_atiixp.ko. Ludovic Courtès
2014-09-22system: Add support for boot-time mapped devices....* gnu/build/linux-boot.scm (boot-system): Add #:pre-mount parameter and honor it. * gnu/system/linux-initrd.scm (base-initrd): Add #:mapped-devices parameter. Add 'device-mapping-commands' variable, and use it to build the #:pre-mount argument of 'boot-system'. * gnu/system.scm (mapped-device-user, operating-system-user-mapped-devices, operating-system-boot-mapped-devices): New procedures. (device-mapping-services): Use 'operating-system-user-mapped-devices' instead of 'operating-system-mapped-devices'. (operating-system-initrd-file): Call the initrd with #:mapped-devices. Ludovic Courtès
2014-09-18linux-initrd: Remove now obsolete #:guile-modules-in-chroot? parameter....* gnu/build/linux-boot.scm (boot-system): Remove #:guile-modules-in-chroot? and related code. * gnu/system/linux-initrd.scm (base-initrd): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove #:guile-modules-in-chroot? argument in 'base-initrd' call. Ludovic Courtès
2014-09-12system: Add support for Linux-style mapped devices....* gnu/system/file-systems.scm (<mapped-device>): New record type. * gnu/system.scm (<operating-system>)[mapped-devices]: New field. (luks-device-mapping): New procedure. (other-file-system-services)[device-mappings, requirements]: New procedures. Pass #:requirements to 'file-system-service'. (device-mapping-services): New procedure. (essential-services): Use it. Append its result to the return value. (operating-system-initrd-file): Add comment. * gnu/services/base.scm (file-system-service): Add #:requirements parameter and honor it. (device-mapping-service): New procedure. * gnu/system/linux-initrd.scm (base-initrd): Add comment. Ludovic Courtès
2014-09-08linux-initrd: Store Linux modules in a normal store directory....* gnu/system/linux-initrd.scm (expression->initrd): Remove #:linux and #:linux-modules parameters. Remove call to 'float-linux-module-directory'. (base-initrd): Add call to 'float-linux-module-directory'. Use it in #:linux-modules argument in the gexp. Remove #:linux and #:linux-modules arguments to 'expression->initrd'. * gnu/build/linux-initrd.scm (build-initrd): Remove #:linux-module-directory parameter. Don't create 'modules' sub-directory. * gnu/build/linux-boot.scm (boot-system): Mentin that LINUX-MODULES is a list of absolute file names. Don't prepend "/modules/" to LINUX-MODULES. * doc/guix.texi (Initial RAM Disk): Adjust accordingly. Ludovic Courtès
2014-09-08linux-initrd: Remove #:to-copy argument of 'expression->initrd'....* gnu/system/linux-initrd.scm (expression->initrd): Remove #:to-copy parameter. Remove 'graph-files', and adjust #:references-graphs arguments to just list INIT. (base-initrd): Remove #:to-copy argument. * doc/guix.texi (Initial RAM Disk): Adjust accordingly. Ludovic Courtès
2014-09-08linux-initrd: Move initrd creation code to (guix build linux-initrd)....* gnu/build/linux-initrd.scm (cache-compiled-file-name, compile-to-cache, build-initrd): New procedures. * gnu/system/linux-initrd.scm (expression->initrd)[builder]: Remove code now moved above. Use 'build-initrd'. Ludovic Courtès
2014-09-08linux-initrd: Copy all the script's closure to the initrd....* gnu/system/linux-initrd.scm (expression->initrd): Remove calls to 'imported-modules' and 'compiled-modules'. Use 'gexp->script' with EXP. Add the result to TO-COPY. Make /init a symlink to that script, and copy its closure into the "contents" directory. Add fake /proc/self/exe symlink. * gnu/build/linux-boot.scm (load-linux-module*): Add comment about mmap. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Add "-m 256". This turns out to be needed for initrds containing things like e2fsck and several modules; with the default of 128 MiB, loading libahci.ko may fail with -1. Ludovic Courtès
2014-09-06linux-initrd: Populate the initrd's store with complete closures....* gnu/system/linux-initrd.scm (expression->initrd): Add 'graph-files'. Use (guix build store-copy) and 'populate-store' instead of local hack. Pass #:references-graphs to 'gexp->derivation'. Ludovic Courtès
2014-09-04linux-initrd: Move Linux module tree flattening to another derivation....* gnu/system/linux-initrd.scm (expression->initrd)[string->regexp]: Remove. Use 'flat-linux-module-directory'. Remove the equivalent logic from 'builder'. (flat-linux-module-directory): New procedure. Ludovic Courtès
2014-09-03linux-initrd: Factorize cpio archive creation....* gnu/build/linux-initrd.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system/linux-initrd.scm (expression->initrd): Use (gnu build linux-initrd) and 'write-cpio-archive' instead of the inlined code. Ludovic Courtès
2014-09-03Move part of (gnu build linux-boot) to (gnu build file-systems)....* gnu/build/linux-boot.scm (%ext2-endianness, %ext2-sblock-magic, %ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name, read-ext2-superblock, ext2-superblock-uuid, ext2-superblock-volume-name, disk-partitions, partition-label-predicate, find-partition-by-label, canonicalize-device-spec, MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_BIND, MS_MOVE, bind-mount, check-file-system, mount-flags->bit-mask, mount-file-system): Move to... * gnu/build/file-systems.scm: ... here. New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/services/base.scm: Use (gnu build file-systems). * gnu/services/dmd.scm (dmd-configuration-file): Likewise. * gnu/system.scm (operating-system-activation-script): Likewise. * gnu/system/linux-initrd.scm (base-initrd): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise. Ludovic Courtès
2014-09-03Rename (gnu build linux-initrd) to (gnu build linux-boot)....* gnu/build/linux-initrd.scm: Rename to... * gnu/build/linux-boot.scm: ... this. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu/build/activation.scm, gnu/build/vm.scm, gnu/services/base.scm, gnu/services/dmd.scm, gnu/system.scm, gnu/system/linux-initrd.scm, gnu/system/vm.scm: Adjust accordingly. Ludovic Courtès
2014-09-03Move operating system helpers from (guix build …) to (gnu build …)....* guix/build/activation.scm, guix/build/install.scm, guix/build/linux-initrd.scm, guix/build/vm.scm: Move to... * gnu/build: ... here. * Makefile.am (MODULES): Remove the above guix/build/ files. * gnu-system.am (GNU_SYSTEM_MODULES): Add the above gnu/build/ files here. * gnu/services/base.scm, gnu/services/dmd.scm, gnu/system.scm, gnu/system/linux-initrd.scm, gnu/system/vm.scm, guix/scripts/system.scm: Adjust to the new module names. Ludovic Courtès
2014-08-15linux-initrd: Load fscache.ko before the 9p modules....* gnu/system/linux-initrd.scm (base-initrd)[virtio-9p-modules]: Add "fscache.ko", required by Linux-libre 3.16. Ludovic Courtès