Instale o GuixSD usando um sistema Linux existente

Instale o GuixSD usando um sistema Linux existente

Quero instalar o Guix System Distribution (ou GuixSD, ou apenas Guix) junto com algumas outras distros. O problema é que o Guix não reconhece os drivers Realtek, que não são gratuitos, então não posso usar WiFi. Posso instalar o Guix com Ethernet, mas é muito instável, então quero instalá-lo com minha instalação Debian (buster) existente para poder adicionar o canal Noguix e instalar os drivers. O problema é que realmente não sei como.

Tenho certeza de que inclui a instalação do Guix no Debian, a instalação de alguns pacotes e a fixação do GuixSD na raiz (pelo menos é assim que o NixOS faz, no qual o Guix é inspirado) ou inclui o chroot no ISO.

Eu apreciaria qualquer ajuda possível.

Informação do sistema

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

Responder1

Instalando no Debian

Do Manual de Referência GNU Guix,2 Instalação:

Observação
Recomendamos o uso destescript de instalação do shellinstalar o Guix em cima de um sistema GNU/Linux em execução, daí em diante chamado dedistribuição estrangeira. O script automatiza o download, instalação e configuração inicial do Guix. Deve ser executado como usuário root.

Aqui está um bashcomando de uma linha para instalar o Guix no Debian buster:

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

Instalação de canal Noguix

Instruções adaptadas doPágina do projeto Nonguix:

O Noguix pode ser instalado como umCanal Guix. Para fazer isso, adicione-o a ~/.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)

Então corra guix pull.

Usando firmware e drivers não livres

Para usar o Sistema Guix com o kernel Linux padrão e firmware não livre, edite os campos kernel e firmware da definição do sistema operacional em 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))
  ...
  )

Se você precisar apenas de firmware para seu dispositivo de rede Realtek, poderá economizar espaço em disco usando um pacote de firmware menor:

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

Então, é claro, execute sudo guix system reconfigure /etc/config.scmpara aplicar sua configuração.

Imagem de instalação

Como você disse, a imagem de instalação oficial do Guix não funcionará para o seu hardware, então você pode gerar uma imagem de instalação executando o kernel Linux não-livre e o firmware não-livre com o seguinte comando:

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

Conforme indicado abaixo, você precisará executar guix pullpara baixar as descrições dos pacotes Noguix. É necessário algum espaço livre em seu pendrive USB para que esta operação seja bem-sucedida. A opção acima --image-sizepermite especificar o tamanho da imagem e, como tal, atribuir-lhe espaço livre. O valor fornecido é meramente indicativo – obviamente depende da capacidade do seu pendrive.

Então você pode gravar a imagem de disco gerada em um pendrive USB com:

Observação
Este exemplo pressupõe que seu pendrive seja reconhecido pelo Linux como /dev/sdb.
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync

A mídia de instalação produzida pelo método acima não configura automaticamente as especificações dos seus canais. Você precisa adicionar o Noguix “manualmente” /etc/guix/channels.scme, em seguida, executar guix pullpara tornar o Guix ciente das bibliotecas do esquema Noguix. Abaixo está o código do esquema Guile para incluir Noguix na especificação do canal.

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

Como mencionado emedição 82, os módulos para dispositivos de rede Realtek foram incluídos desde kernel-linux-5.11:

Os arquivos de firmware devem estar realtek-firmwareno linux-firmwarepacote. Mas acho que precisamos construir o RTW88módulo. Então precisamos nos CONFIG_RTW88=minstalar upstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf. [Desde] kernel linux-5.11, este módulo específico agora deve estar habilitado por padrão...

informação relacionada