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 bash
comando 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.scm
para 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 pull
para 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-size
permite 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.scm
e, em seguida, executar guix pull
para 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-firmware
nolinux-firmware
pacote. Mas acho que precisamos construir oRTW88
módulo. Então precisamos nosCONFIG_RTW88=m
instalarupstream 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...