Installieren Sie GuixSD unter Verwendung eines vorhandenen Linux-Systems

Installieren Sie GuixSD unter Verwendung eines vorhandenen Linux-Systems

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 bashEinzeiler-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.scmum 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 pullum die Nonguix-Paketbeschreibungen herunterzuladen. Damit dieser Vorgang erfolgreich ist, ist etwas freier Speicherplatz auf Ihrem USB-Stick erforderlich. Mit der obigen --image-sizeOption 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.scmund dann ausführen, guix pulldamit 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-firmwarePaket enthalten sein linux-firmware. Aber ich schätze, wir müssen das RTW88Modul erstellen. Also müssen wir es CONFIG_RTW88=min einstellen upstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf. [Da] kernel linux-5.11sollte dieses spezielle Modul jetzt standardmäßig aktiviert sein ...

verwandte Informationen