Установите GuixSD, используя существующую систему Linux

Установите GuixSD, используя существующую систему Linux

Я хочу установить Guix System Distribution (или GuixSD, или просто Guix) вместе с некоторыми другими дистрибутивами. Проблема в том, что Guix не распознает драйверы Realtek, которые не являются свободными, поэтому я не могу использовать WiFi. Я могу установить Guix с Ethernet, но он очень нестабилен, поэтому я хочу установить его с моей существующей установкой Debian (buster), чтобы затем добавить канал Nonguix и установить драйверы. Проблема в том, что я не знаю, как это сделать.

Я почти уверен, что это включает установку Guix на Debian, установку некоторых пакетов и привязку GuixSD к корню (по крайней мере, так это делает NixOS, на которую вдохновлен Guix) или это включает chroot в ISO.

Буду признателен за любую возможную помощь.

Системная информация

# 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/"

решение1

Установка на Debian

Из справочного руководства GNU Guix,2 Установка:

Примечание
Мы рекомендуем использовать этоскрипт установщика оболочкидля установки Guix поверх работающей системы GNU/Linux, впоследствии называемойзарубежный дистрибутив. Скрипт автоматизирует загрузку, установку и начальную настройку Guix. Его следует запускать от имени пользователя root.

Вот bashоднострочная команда для установки Guix на Debian Buster:

bash <(wget -qO- https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh)

Установка канала Nonguix

Адаптированные инструкции изСтраница проекта Nonguix:

Nonguix может быть установлен какКанал Guix. Для этого добавьте его в ~/.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)

Затем бегите guix pull.

Использование несвободных прошивок и драйверов

Чтобы использовать Guix System со стандартным ядром Linux и несвободной прошивкой, отредактируйте поля ядра и прошивки определения операционной системы в 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))
  ...
  )

Если вам нужна только прошивка для сетевого устройства Realtek, вы можете сэкономить место на диске, используя меньший пакет прошивки:

(firmware (cons* iwlwifi-firmware
                 %base-firmware))

Затем, конечно, запустите sudo guix system reconfigure /etc/config.scm, чтобы применить вашу конфигурацию.

Изображение установки

Как вы сказали, официальный установочный образ Guix не будет работать на вашем оборудовании, поэтому вы можете сгенерировать установочный образ, работающий на несвободном ядре Linux и несвободной прошивке, с помощью следующей команды:

guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm

Как указано ниже, вам нужно будет запустить guix pullдля загрузки описаний пакетов Nonguix. Для успешной операции требуется некоторое свободное место на вашем USB-накопителе. Вышеуказанная --image-sizeопция позволяет вам указать размер образа и, таким образом, выделить для него свободное место. Указанное значение является исключительно ориентировочным — оно, очевидно, зависит от емкости вашего USB-накопителя.

Затем вы можете записать созданный образ диска на USB-флешку с помощью:

Примечание
В этом примере предполагается, что ваш флеш-накопитель распознается Linux как /dev/sdb.
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync

Установочный носитель, созданный вышеуказанным методом, не настраивает автоматически спецификацию каналов. Вам необходимо добавить Nonguix «вручную» /etc/guix/channels.scmи затем запустить guix pull, чтобы Guix узнал о библиотеках схем Nonguix. Ниже приведен код схемы Guile для включения Nonguix в спецификацию каналов.

(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))))

Как упоминалось ввыпуск 82, модули для сетевых устройств Realtek были включены с kernel-linux-5.11:

Файлы прошивки должны быть в realtek-firmwareили linux-firmwareпакете. Но я думаю, нам нужно собрать RTW88модуль. Поэтому нам нужно установить CONFIG_RTW88=mв upstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf. [Поскольку] kernel linux-5.11этот конкретный модуль теперь должен быть включен по умолчанию...

Связанный контент