1

I want to install Guix System Distribution (or GuixSD, or just Guix) alongside some other distros. The problem is, Guix doesn't recognise Realtek drivers, which are nonfree, so I can't use WiFi. I can install Guix with Ethernet, but it is very unstable, so I want to install it with my existing Debian (buster) installation so I can then add the Nonguix channel and install the drivers. Problem is, I don't really know how.

I'm pretty sure it includes installing Guix onto Debian, installing some packages, and strapping GuixSD onto the root (atleast, that's how NixOS does it, which Guix is inspired by) or it includes chrooting into the ISO.

I would appreciate any help possible.

System Info

# 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 Answer 1

2

Installing on Debian

From GNU Guix Reference Manual, 2 Installation:

Note
We recommend the use of this shell installer script to install Guix on top of a running GNU/Linux system, thereafter called a foreign distro. The script automates the download, installation, and initial configuration of Guix. It should be run as the root user.

Here is a bash one-liner command for installing Guix on Debian buster:

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

Nonguix channel installation

Adapted instructions from the Nonguix project page:

Nonguix can be installed as a Guix channel. To do so, add it to ~/.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) 

Then run guix pull.

Using Nonfree Firmware and Drivers

To use Guix System with the standard Linux kernel and nonfree firmware, edit the kernel and firmware fields of the operating-system definition 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)) ... ) 

If you only need firmware for your Realtek network device, you may be able to save disk space by using a smaller firmware package instead:

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

Then of course, run sudo guix system reconfigure /etc/config.scm to apply your configuration.

Installation image

As you said, the official Guix installation image won’t work for your hardware, so you can generate an installation image running the nonfree Linux kernel and nonfree firmware with the following command:

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

As indicated bellow, you will need to run guix pull to download the Nonguix package descriptions. Some free space on your USB thumbdrive is required for this operation to succeed. The above --image-size option allows you to specify the size of the image and, as such, to allocate free space to it. The given value is purely indicative — it obviously depends on your thumbdrive capacity.

Then you can write the generated disk image to a USB thumbdrive with:

Note
This example assumes your thumbdrive is recognized by Linux as /dev/sdb.
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync 

The installation media produced by the above method does not automatically configure your channels specification. You need to add Nonguix “manually” into /etc/guix/channels.scm and then run guix pull to make Guix aware of Nonguix scheme libraries. Below is Guile scheme code to include Nonguix in the channel specification.

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

As mentioned in issue 82, the modules for Realtek network devices have been included since kernel-linux-5.11:

The firmware files should be in realtek-firmware or the linux-firmware package. But I guess we need to build the RTW88 module. So we need to set CONFIG_RTW88=m in upstream guix gnu/packages/aux-files/linux-libre/5.10-x86_64.conf. [Since] kernel linux-5.11, this particular module should now be enabled by default...

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.