diff options
author | Kenny Ballou <kb@devnulllabs.io> | 2023-02-27 14:52:08 -0700 |
---|---|---|
committer | Kenny Ballou <kb@devnulllabs.io> | 2023-03-06 13:55:53 -0700 |
commit | 3ce02667840ac7962abddd653a899e8c55ae1ae5 (patch) | |
tree | 77c3d8b1c1963df59e1d5ce92b87ef351cd80262 /iso | |
parent | 9ac0992899402bde134694e790dd4d44d90570d0 (diff) | |
download | dotfiles-3ce02667840ac7962abddd653a899e8c55ae1ae5.tar.gz dotfiles-3ce02667840ac7962abddd653a899e8c55ae1ae5.tar.xz |
iso: create basic installer ISO image
Since the hardware I use requires nonfree'ness, I need the "corrupted"
kernel and firmware.
Signed-off-by: Kenny Ballou <kb@devnulllabs.io>
Diffstat (limited to 'iso')
-rw-r--r-- | iso/installer.scm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/iso/installer.scm b/iso/installer.scm new file mode 100644 index 00000000..a08fe10d --- /dev/null +++ b/iso/installer.scm @@ -0,0 +1,66 @@ +;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> +;;; Copyright © 2019 David Wilson <david@daviwil.com> +;;; Copyright © 2023 Kenny Ballou <kb@devnulllabs.io> +;;; +;;; 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 <https://www.gnu.org/licenses/>. + +;; 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 |