Ich möchte Guix System Distribution (oder GuixSD oder einfach Guix) zusammen mit einigen anderen Distributionen installieren. Das Problem ist, dass Guix die unfreien Realtek-Treiber nicht erkennt, sodass ich kein WLAN verwenden kann. Ich kann Guix mit Ethernet installieren, aber es ist sehr instabil, daher möchte ich es mit meiner vorhandenen Debian-Installation (Buster) installieren, damit ich dann den Nonguix-Kanal hinzufügen und die Treiber installieren kann. Das Problem ist, dass ich nicht wirklich weiß, wie das geht.
Ich bin ziemlich sicher, dass dazu die Installation von Guix auf Debian, die Installation einiger Pakete und das Anbinden von GuixSD an die Wurzel gehört (zumindest macht das NixOS, das von Guix inspiriert ist, so) oder dass das Chrooten in das ISO dazu gehört.
Ich wäre für jede mögliche Hilfe dankbar.
Systeminformationen
# neofetch # some info was filtered
root@deblugo
---------------
OS: Debian GNU/Linux 10 (buster) x86_64
Host: HP Notebook
Kernel: 4.19.0-16-amd64
Packages: 1624 (dpkg)
Shell: bash 5.0.3
CPU: Intel Celeron N3060 (2) @ 2.480GHz
GPU: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx
Memory: 1931MiB / 3803MiB
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
# uname -a
Linux deblugo 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Antwort1
Installation unter Debian
Aus dem GNU Guix Referenzhandbuch:2 Installation:
Notiz Wir empfehlen die Verwendung diesesShell-Installationsskriptum Guix auf einem laufenden GNU/Linux-System zu installieren, im Folgenden alsausländische Distribution. Das Skript automatisiert den Download, die Installation und die Erstkonfiguration von Guix. Es sollte als Root-Benutzer ausgeführt werden.
Hier ist ein bash
Einzeiler-Befehl zur Installation von Guix auf Debian Buster:
bash <(wget -qO- https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh)
Nichtguix-Kanalinstallation
Angepasste Anweisungen aus demNonguix-Projektseite:
Nonguix kann installiert werden alsGuix-KanalFügen Sie es dazu hinzu zu ~/.config/guix/channels.scm
:
(cons* (channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
;; Enable signature verification:
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
%default-channels)
Dann renne guix pull
.
Verwendung von unfreier Firmware und Treibern
Um Guix System mit dem Standard-Linux-Kernel und unfreier Firmware zu verwenden, bearbeiten Sie die Kernel- und Firmware-Felder der Betriebssystemdefinition in config.scm
:
;; Import nonfree linux module.
(use-modules (nongnu packages linux)
(nongnu system linux-initrd))
(operating-system
(kernel linux)
(initrd microcode-initrd)
(firmware (list linux-firmware))
...
)
Wenn Sie nur Firmware für Ihr Realtek-Netzwerkgerät benötigen, können Sie möglicherweise Speicherplatz sparen, indem Sie stattdessen ein kleineres Firmware-Paket verwenden:
(firmware (cons* iwlwifi-firmware
%base-firmware))
Führen Sie es anschließend natürlich aus, sudo guix system reconfigure /etc/config.scm
um Ihre Konfiguration anzuwenden.
Installationsbild
Wie Sie sagten, wird das offizielle Guix-Installationsimage auf Ihrer Hardware nicht funktionieren, daher können Sie mit dem folgenden Befehl ein Installationsimage mit dem unfreien Linux-Kernel und der unfreien Firmware generieren:
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
Wie unten angegeben, müssen Sie ausführen, guix pull
um die Nonguix-Paketbeschreibungen herunterzuladen. Damit dieser Vorgang erfolgreich ist, ist etwas freier Speicherplatz auf Ihrem USB-Stick erforderlich. Mit der obigen --image-size
Option können Sie die Größe des Bildes angeben und ihm so freien Speicherplatz zuweisen. Der angegebene Wert ist rein indikativ – er hängt offensichtlich von der Kapazität Ihres Sticks ab.
Anschließend können Sie das erstellte Disk-Image mit folgendem Befehl auf einen USB-Stick schreiben:
Notiz |
---|
Dieses Beispiel geht davon aus, dass Ihr USB-Stick von Linux als erkannt wird /dev/sdb . |
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
Das mit der obigen Methode erstellte Installationsmedium konfiguriert Ihre Kanalspezifikation nicht automatisch. Sie müssen Nonguix „manuell“ hinzufügen /etc/guix/channels.scm
und dann ausführen, guix pull
damit Guix auf die Nonguix-Schemabibliotheken aufmerksam wird. Unten finden Sie Guile-Schemacode, um Nonguix in die Kanalspezifikation aufzunehmen.
(use-modules (ice-9 pretty-print))
(with-output-to-file "/etc/guix/channels.scm"
(lambda _
(pretty-print
'(cons*
(channel (name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix"))
%default-channels))))
Wie erwähnt inAusgabe 82, die Module für Realtek-Netzwerkgeräte sind seit enthalten kernel-linux-5.11
:
Die Firmware-Dateien sollten im
realtek-firmware
Paket enthalten seinlinux-firmware
. Aber ich schätze, wir müssen dasRTW88
Modul erstellen. Also müssen wir esCONFIG_RTW88=m
in einstellenupstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
. [Da]kernel linux-5.11
sollte dieses spezielle Modul jetzt standardmäßig aktiviert sein ...