summary refs log tree commit diff
path: root/nixos/modules/installer/cd-dvd/iso-image.nix
Commit message (Collapse)AuthorAge
* nixos/iso-image: Remove leftover false dichotomy between console/serialSamuel Dionne-Riel2023-09-06
| | | | | | | | | | Relying on the built-in UEFI console here was already necessary, so we are losing nothing by removing the needless `serial` call, which hung some systems. This also makes the implementation much easier to understand. Also, no ugly-font menu anymore!
* nixos/iso-image: graphicalGrub -> forceTextModeSamuel Dionne-Riel2023-09-06
| | | | | | | | | | This helps keep logic simpler, as what we do is forcing text mode, which means the non-default case is `truthy`, making things easier to digest in the config file. Also renaming this option is considered "internal", since it lives only within the `iso-image` namespace, and also not a breaking change since it was not part of a stable release.
* nixos/iso-image: Tear down GOP and rely on console for Linux bootSamuel Dionne-Riel2023-09-06
| | | | | This solves an issue where *some systems* (tested on Steam Deck) the EFI GOP may be broken during stage-1.
* nixos/iso-image: Drop all unneeded FS modulesSamuel Dionne-Riel2023-09-06
| | | | | It's not like the iso-image will be anything else than isohybrid FAT+iso9660...
* nixos/iso-image: Re-enable graphics modeSamuel Dionne-Riel2023-09-06
| | | | | | | | | Which ***anyway*** was not disabled correctly. Following changes will actually disable it. What this did was disable the "themed" menu driver, but still continued relying on the gfxterm infra, which in itself is why things were ugly and weird.
* nixos/iso-image: Check GRUB config on buildSamuel Dionne-Riel2023-09-06
|
* nixos/iso-image: Add common display resolutionsSamuel Dionne-Riel2023-09-06
| | | | Hey, look at that, grub is the correct way around on a Steam Deck!
* nixos/iso-image: Use intrinsic UEFI console for serial output in GRUBSamuel Dionne-Riel2023-09-06
| | | | | | | | The `serial` console hangs on some systems. Unknown why. Anyway, the way this worked right now relied on it telling the user on the UEFI console how to enable it. So if I understand it correctly, it will not cause any regression there.
* nixos/iso-image: Make modules list easier to manageSamuel Dionne-Riel2023-09-06
| | | | | | With a bash array. This change is morally a no-op.
* nixos/iso-image: fix syntaxK9002023-07-05
|
* nixos/iso-image: make graphical grub configurablelassulus2023-06-29
|
* nixos/iso-image: enable BIOS boot by default if possibleIvan Trubach2023-05-23
| | | | | | | | | | | The change introduced in commit e5b072eca165430efc4d7a179011a42aab4470a2 breaks backwards compatibility for some users, see https://github.com/NixOS/nixpkgs/commit/e5b072eca165430efc4d7a179011a42aab4470a2#commitcomment-113775008 https://github.com/NixOS/nixpkgs/pull/219351#discussion_r1139773448 This change updates the implementation to enable BIOS boot if possible for the build and host platforms, and also assert that BIOS boot is not enabled for non-x86 host platforms.
* nixos/iso-image: add some typesners2023-05-22
|
* nixos/iso-image: prepend to ISO menu labelsners2023-05-22
|
* nixos/*: remove boot.grub.versionajs1242023-05-10
|
* nixos/iso-image: type isoImage.squashfsCompressionAlyssa Ross2023-05-09
|
* nixos/iso-image: targetPlatform -> hostPlatformAlyssa Ross2023-05-08
| | | | | This is not a compiler, and therefore does not need to care about the target platform.
* treewide: use more lib.optionalStringFelix Buehler2023-04-07
|
* nixos/iso-image: s/efi/EFI in documentationIvan Trubach2023-03-09
|
* nixos/iso-image: add an option to disable BIOS bootIvan Trubach2023-03-09
| | | | | | | This change adds an option to disable legacy BIOS boot support for ISO images. The implementation uses syslinux package that currently does not support non-x86 platforms and thus cannot be cross-compiled, e.g. from AArch64 system.
* nixos/version: add config.system.nixos.distroName and ↵Victor Fuentes2023-01-14
| | | | config.system.nixos.distroId
* nixos/installer/cd-dvd/iso-image: Honor boot.loader.timeout for EFINathan Henrie2022-12-24
| | | | | | | EFI boot timeout is currently a static 10 whereas syslinux uses boot.loader.timeout. This changes the EFI config to match. Some discussion at https://discourse.nixos.org/t/how-to-override-let-variables/23741/2
* Make syslinuxTimeout match documentationNathan Henrie2022-12-22
| | | | | | | - https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX#TIMEOUT_timeout - https://github.com/NixOS/nixpkgs/blob/cbe419ed4c8f98bd82d169c321d339ea30904f1f/nixos/modules/system/boot/loader/loader.nix#L16 Fixes https://github.com/NixOS/nixpkgs/issues/207289
* nixos: fix typosfigsoda2022-12-17
|
* dvd-image: replace faketime with --invariant for mkfs.vfatMartin Schwaighofer2022-10-22
|
* nixos/iso-image: Refactor: apply / unshadowRobert Hensing2022-09-29
|
* nixos/iso-image: Fix evalRobert Hensing2022-09-29
|
* lib/systems/default.nix: add efiArch suffixesIvan Nikolaenko2022-09-29
| | | | | | | Move already implemented functionality to the upper level so it could be used in a more generic way. Signed-off-by: Ivan Nikolaenko <ivan.nikolaenko@unikie.com>
* nixos/*: automatically convert option docspennae2022-08-06
|
* nixos/*: replace </para><para> with double linebreakspennae2022-08-03
| | | | | | | | | | our xslt already replaces double line breaks with a paragraph close and reopen. not using explicit para tags lets nix-doc-munge convert more descriptions losslessly. only whitespace changes to generated documents, except for two strongswan options gaining paragraph two breaks they arguably should've had anyway.
* treewide: use isx86 where appropriateAlyssa Ross2022-07-30
|
* treewide: use isAarch where appropriateAlyssa Ross2022-07-30
|
* lib/systems/inspect.nix: remove isPowerPCAdam Joseph2022-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Very confusingly, the `isPowerPC` predicate in `lib/systems/inspect.nix` does *not* match `powerpc64le`! This is because `isPowerPC` is defined as isPowerPC = { cpu = cpuTypes.powerpc; }; Where `cpuTypes.powerpc` is: { bits = 32; significantByte = bigEndian; family = "power"; }; This means that the `isPowerPC` predicate actually only matches the subset of machines marketed under this name which happen to be 32-bit and running in big-endian mode which is equivalent to: with stdenv.hostPlatform; isPower && isBigEndian && is32bit This seems like a sharp edge that people could easily cut themselves on. In fact, that has already happened: in `linux/kernel/common-config.nix` there is a test which will always fail: (stdenv.hostPlatform.isPowerPC && stdenv.hostPlatform.is64bit) A more subtle case of the strict isPowerPC being used instead of the moreg general isPower accidentally are the GHC expressions: Update pkgs/development/compilers/ghc/8.10.7.nix Update pkgs/development/compilers/ghc/8.8.4.nix Update pkgs/development/compilers/ghc/9.2.2.nix Update pkgs/development/compilers/ghc/9.0.2.nix Update pkgs/development/compilers/ghc/head.nix Since the remaining legitimate use sites of isPowerPC are so few, remove the isPowerPC predicate completely. The alternative expression above is noted in the release notes as an alternative. Co-authored-by: sternenseemann <sternenseemann@systemli.org>
* iso-image: slim down UEFI El Torito imageThomas Watson2022-04-13
| | | | | | | | | | | | | | | UEFI firmware does not have to be able to read ISO9660 filesystems, so the El Torito mechanism provides a way to specify an embedded FAT32 image which contains files the UEFI firmware itself must be able to read, such as UEFI executables. Once GRUB starts and reads its configuration, it can access the ISO9660 filesystem to load other files. This change removes the unused kernel, initrd, and GRUB font files from the El Torito image, but keeps the GRUB configuration and UEFI executables. These files have been present since EFI support was originally introduced in commit 097c656. Other distribution ISOs, such as Ubuntu 20.04, Fedora 35, and Windows 10 work this way too. This saves 24MiB on x86_64 and 61MiB on aarch64 ISOs.
* installer/cd-dvd/iso-image: add syslinuxTheme config optionDaniel Kilimnik2022-03-25
| | | | It was not possible to change the theme used by syslinux when building an iso image.
* installer/cd-dvd/iso-image: avoid leaking build timestamps on non-x86Thomas Watson2022-01-05
|
* treewide: refactor isi686 && isx86_64 -> isx86Ryan Burns2021-11-20
|
* nixos/doc: clean up defaults and examplesNaïm Favier2021-10-04
|
* lib/modules: add mkImageMediaOverrideDavid Arnold2021-08-03
| | | | | | | | | so the underlaying use case of the preceding commit is so generic, that we gain a lot in reasoning to give it an appropriate name. As the comment states: image media needs to override host config short of mkForce
* nixos/boot-media: soft-force entire fs layoutDavid Arnold2021-08-03
| | | | | | | | | | | | | | | | | | https://github.com/NixOS/nixpkgs/pull/131760 was made to avo a speicific configuration conflict that errored out for multiple definitions of "/" when the installer where overlayed on any existing host configuration. --- Problem 1: It turns out that in also other mountpoints can coflict. Solution 1: use `mkOverride 60` for all mountpoints (even for the ones unlikely causing confilct for consistency sake) --- Problem 2: It turns out that on an installation media for a fresh machine (before formatting), we usually don't have any devices yet formatted. However defining for example `fileSystems.<nme>.device = "/dev/disk/by-label/...", in newer versions of nixos, seems to make the system startup fail. Similarily waiting for a non-existent swap device does not make the startup fail, but has a 1:30 min timeout. Solution 2: For an installation medium, soft-override ("unless users know what they are doing") the entire `fileSystems` and `swapDevices` definitions.
* nixos/installer: force root fs typeDavid Arnold2021-07-28
| | | | | | | | | | | | | | | | | | installer media can be used on top of existing host configs. In such scenarions, root fs types will already be defined. Before this change, this will inevitably lead to the following error: ```console error: The option `fileSystems./.fsType' has conflicting definition values: - In `/nix/store/2nl5cl4mf6vnldpbxhrbzfh0n8rsv9fm-source/DevOS/os/hardware/common.nix': "ext4" - In `/nix/store/jbch90yqx6gg1h3fq30jjj2b6h6jfjgs-source/nixos/modules/installer/cd-dvd/iso-image.nix': "tmpfs" ``` With this patch, the installers will override those values according to their own local requirement. Use `mkOverride 60` so that conscientious overriding specially targeted at the installer, e.g. with `mkForce` is still straight forward.
* Merge pull request #119657 from syncom/syncom/deterministic-efiimgSandro2021-06-26
|\
| * iso-image: More concise code for fixed order mmd and mcopy operationsNing Shang2021-05-20
| | | | | | | | Thanks @misuzu for the suggestions.
| * iso-image: Workaround for better determinism in du outputNing Shang2021-05-20
| | | | | | | | The value of du output depends on the underlying file system, and thus is not fully deterministic. This workaround rounds up the disk usage size to the nearest multiple of 1MB, to increase the probability that two du output values on two different file systems fall within the same 1MB window. Note that this workaround won't make du output 100% reproducible, but will increase the probability of getting deterministic builds across different file systems.
| * iso-image: Use fixed-order mcopy instead of file globbingNing Shang2021-05-17
| | | | | | | | | | | | | | | | | | | | | | mcopy file globbing is non-deterministic with respect to the underlying file system. As a result, the current mcopy approach is less likely to reproduce efi.img on different machines. We replace mcopy file globbing with fixed-order mmd and mcopy operations for better determinism. We also use faketime on mmd for the same reason. We use faketime, mmd, and mcopy directly, becase they are already in PATH. Thank misuzu@ for the feedback.
* | treewide: Use `fileSystems.<name>.depends` option where necessaryjakobrs2021-06-08
| |
* | iso-image: Improve disk detectionSamuel Dionne-Riel2021-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should help in rare hardware-specific situations where the root is not automatically detected properly. We search using a marker file. This should help some weird UEFI setups where the root is set to `(hd0,msdos2)` by default. Defaulting to `(hd0)` by looking for the ESP **will break themeing**. It is unclear why, but files in `(hd0,msdos2)` are not all present as they should be. This also fixes an issue introduced with cb5c4fcd3c5d4070f040d591b2dd1da580f234d1 where rEFInd stopped booting in many cases. This is because it ended up using (hd0) rather than using the `search` which was happening beforehand, which in turn uses (hd0,msdos2), which is the ESP. Putting back the `search` here fixes that.
* | iso-image: unqualified root → ($root)Samuel Dionne-Riel2021-05-22
| | | | | | | | | | | | | | This technically changes nothing. In practice `$root` is always the "CWD", whether searched for automatically or not. But this serves to announce we are relying on `$root`... I guess...
* | iso-image: change date on all filesSamuel Dionne-Riel2021-05-22
| | | | | | | | | | | | | | It may be that in some conditions dates earlier than 1980 on FAT on GRUB 2.06~ish will cause failures https://github.com/NixOS/nixpkgs/issues/123376#issuecomment-845515035
* | iso-image: Force gfxmodeSamuel Dionne-Riel2021-05-22
|/ | | | https://www.gnu.org/software/grub/manual/grub/html_node/gfxmode.html