Quiero instalar Guix System Distribution (o GuixSD, o simplemente Guix) junto con otras distribuciones. El problema es que Guix no reconoce los controladores Realtek, que no son gratuitos, por lo que no puedo usar WiFi. Puedo instalar Guix con Ethernet, pero es muy inestable, así que quiero instalarlo con mi instalación existente de Debian (buster) para luego poder agregar el canal Nonguix e instalar los controladores. El problema es que realmente no sé cómo.
Estoy bastante seguro de que incluye instalar Guix en Debian, instalar algunos paquetes y conectar GuixSD a la raíz (al menos, así es como lo hace NixOS, en el que se inspira Guix) o incluye chrooting en la ISO.
Agradecería cualquier ayuda posible.
Información del 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/"
Respuesta1
Instalación en Debian
Del Manual de referencia de GNU Guix,2 Instalación:
Nota Recomendamos el uso de estescript de instalación del shellpara instalar Guix sobre un sistema GNU/Linux en ejecución, en adelante denominadodistribución extranjera. El script automatiza la descarga, instalación y configuración inicial de Guix. Debe ejecutarse como usuario root.
Aquí hay un bash
comando de una sola línea para instalar Guix en Debian Buster:
bash <(wget -qO- https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh)
Instalación del canal Nonguix
Instrucciones adaptadas delPágina del proyecto Nonguix:
Nonguix se puede instalar comocanal guix. Para hacerlo, agréguelo 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)
Entonces corre guix pull
.
Uso de firmware y controladores no libres
Para utilizar el sistema Guix con el kernel de Linux estándar y firmware no libre, edite los campos de kernel y firmware de la definición del sistema operativo en 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))
...
)
Si solo necesita firmware para su dispositivo de red Realtek, es posible que pueda ahorrar espacio en disco utilizando un paquete de firmware más pequeño:
(firmware (cons* iwlwifi-firmware
%base-firmware))
Luego, por supuesto, ejecute sudo guix system reconfigure /etc/config.scm
para aplicar su configuración.
Imagen de instalación
Como dijiste, la imagen de instalación oficial de Guix no funcionará para tu hardware, por lo que puedes generar una imagen de instalación ejecutando el kernel de Linux y el firmware no libres con el siguiente comando:
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
Como se indica a continuación, deberá ejecutar guix pull
para descargar las descripciones del paquete Nonguix. Se requiere algo de espacio libre en su memoria USB para que esta operación se realice correctamente. La opción anterior --image-size
le permite especificar el tamaño de la imagen y, como tal, asignarle espacio libre. El valor dado es puramente indicativo; obviamente depende de la capacidad de su memoria USB.
Luego puedes escribir la imagen del disco generada en una memoria USB con:
Nota |
---|
Este ejemplo supone que Linux reconoce su memoria USB como /dev/sdb . |
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
Los medios de instalación producidos por el método anterior no configuran automáticamente las especificaciones de sus canales. Debe agregar Nonguix “manualmente” /etc/guix/channels.scm
y luego ejecutarlo guix pull
para que Guix conozca las bibliotecas de esquemas de Nonguix. A continuación se muestra el código del esquema Guile para incluir Nonguix en la especificación del 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 se menciona ennúmero 82, los módulos para dispositivos de red Realtek se incluyen desde kernel-linux-5.11
:
Los archivos de firmware deben estar en
realtek-firmware
ellinux-firmware
paquete. Pero supongo que necesitamos construir elRTW88
módulo. Así que tenemos que ponernos manosCONFIG_RTW88=m
a la obraupstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
. [Desde]kernel linux-5.11
, este módulo en particular ahora debería estar habilitado de forma predeterminada...