mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-14 13:39:15 +03:00
nixos/doc: add notes on additional drivers or firmware
This describes how to build your own installer medium with some custom firmware/drivers, using an Intel MacBook as an example - on which WiFi doesn't work out of the box, due to it being nonfree. Fixes #15162. Co-authored-by: Lucas Hoffmann <lucc@users.noreply.github.com> Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
This commit is contained in:
parent
a12486c442
commit
9ff1ab4037
2 changed files with 65 additions and 0 deletions
|
@ -30,6 +30,37 @@ To check the content of an ISO image, mount it like so:
|
||||||
# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
|
# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Additional drivers or firmware {#sec-building-image-drivers}
|
||||||
|
|
||||||
|
If you need additional (non-distributable) drivers or firmware in the
|
||||||
|
installer, you might want to extend these configurations.
|
||||||
|
|
||||||
|
For example, to build the GNOME graphical installer ISO, but with support for
|
||||||
|
certain WiFi adapters present in some MacBooks, you can create the following
|
||||||
|
file at `modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix`:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ./installation-cd-graphical-gnome.nix ];
|
||||||
|
|
||||||
|
boot.initrd.kernelModules = [ "wl" ];
|
||||||
|
|
||||||
|
boot.kernelModules = [ "kvm-intel" "wl" ];
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then build it like in the example above:
|
||||||
|
|
||||||
|
```ShellSession
|
||||||
|
$ git clone https://github.com/NixOS/nixpkgs.git
|
||||||
|
$ cd nixpkgs/nixos
|
||||||
|
$ export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
|
||||||
|
```
|
||||||
|
|
||||||
## Technical Notes {#sec-building-image-tech-notes}
|
## Technical Notes {#sec-building-image-tech-notes}
|
||||||
|
|
||||||
The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
|
The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
|
||||||
|
|
|
@ -43,6 +43,40 @@ $ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
|
# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
|
||||||
|
</programlisting>
|
||||||
|
</section>
|
||||||
|
<section xml:id="sec-building-image-drivers">
|
||||||
|
<title>Additional drivers or firmware</title>
|
||||||
|
<para>
|
||||||
|
If you need additional (non-distributable) drivers or firmware in
|
||||||
|
the installer, you might want to extend these configurations.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
For example, to build the GNOME graphical installer ISO, but with
|
||||||
|
support for certain WiFi adapters present in some MacBooks, you
|
||||||
|
can create the following file at
|
||||||
|
<literal>modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix</literal>:
|
||||||
|
</para>
|
||||||
|
<programlisting language="bash">
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ./installation-cd-graphical-gnome.nix ];
|
||||||
|
|
||||||
|
boot.initrd.kernelModules = [ "wl" ];
|
||||||
|
|
||||||
|
boot.kernelModules = [ "kvm-intel" "wl" ];
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
Then build it like in the example above:
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
$ git clone https://github.com/NixOS/nixpkgs.git
|
||||||
|
$ cd nixpkgs/nixos
|
||||||
|
$ export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-building-image-tech-notes">
|
<section xml:id="sec-building-image-tech-notes">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue