;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2019 David Wilson ;;; Copyright © 2023 Kenny Ballou ;;; ;;; This program is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see . ;; Generate a bootable image (e.g. for USB sticks, etc.) with: ;; $ guix system image -t iso9660 installer.scm (define-module (iso installer) #:use-module (gnu services) #:use-module (gnu system) #:use-module (gnu system install) #:use-module (gnu system keyboard) #:use-module (gnu packages version-control) #:use-module (gnu packages curl) #:use-module (gnu packages disk) #:use-module (gnu packages emacs) #:use-module (gnu packages linux) #:use-module (gnu packages mtools) #:use-module (gnu packages package-management) #:use-module (nongnu packages linux) #:use-module (guix) #:use-module (kbg) #:export (installation-os-nonfree)) (define installation-os-nonfree (operating-system (inherit installation-os) (kernel linux) (firmware (list linux-firmware)) (keyboard-layout (keyboard-layout "us" #:options '("ctrl:nocaps"))) ;; Add the 'net.ifnames' argument to prevent network interfaces ;; from having really long names. This can cause an issue with ;; wpa_supplicant when you try to connect to a wifi network. (kernel-arguments '("quiet" "net.ifnames=0")) (services (cons* ;; Include the channel file so that it can be used during installation (simple-service 'channel-file etc-service-type (list `("channels.scm" ,(local-file (string-append %dotfiles-root "/config/guix/channels.scm"))))) (operating-system-user-services installation-os))) ;; Add some extra packages useful for the installation process (packages (append (list git curl emacs-no-x-toolkit lvm2 gptfdisk) (operating-system-packages installation-os))))) installation-os-nonfree