使用現有的 Linux 系統安裝 GuixSD
我想與其他發行版一起安裝 Guix System Distribution(或 GuixSD,或只是 Guix)。問題是,Guix 無法辨識非免費的 Realtek 驅動程序,所以我無法使用 WiFi。我可以用乙太網安裝 Guix,但它非常不穩定,所以我想用我現有的 Debian (buster) 安裝來安裝它,這樣我就可以添加 Nonguix 頻道並安裝驅動程序。問題是,我真的不知道怎麼做。
我很確定它包括在 Debian 上安裝 Guix,安裝一些軟體包,以及將 GuixSD 綁定到根目錄(至少,這就是 NixOS 的做法,Guix 的靈感來自於此),或者它包括 chrooting 到 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/"
在 Debian 上安裝
來自 GNU Guix 參考手冊,2 安裝:
這是
bash
在 Debian buster 上安裝 Guix 的單行命令: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 系統與標準 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 拇指驅動器:
筆記 此範例假設您的拇指驅動器被 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 方案庫。下面是在通道規範中包含 Nonguix 的 Guile 方案程式碼。(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
$$ Since $$
kernel linux-5.11
,這個特定的模組現在應該預設啟用…