Guix System Distribution (または GuixSD、あるいは単に Guix) を他のディストリビューションと一緒にインストールしたいのですが、問題は Guix が Realtek ドライバーを認識しないことです。これは非フリーなので、WiFi を使用できません。Guix を Ethernet でインストールすることはできますが、非常に不安定なので、既存の Debian (buster) インストールと一緒にインストールして、Nonguix チャネルを追加し、ドライバーをインストールしたいと思います。問題は、その方法がまったくわからないことです。
これには、Debian に Guix をインストールし、いくつかのパッケージをインストールし、GuixSD をルートに固定すること (少なくとも、Guix は NixOS でこれを実行し、NixOS はこれを参考にしています) が含まれるか、ISO に chroot することが含まれると確信しています。
可能な限りのご協力をいただければ幸いです。
システム情報
# 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
Debianへのインストール
GNU Guixリファレンスマニュアルより2 インストール:
注記 この使用をお勧めしますシェルインストーラースクリプト実行中のGNU/Linuxシステム上にGuixをインストールすること。外国のディストリビューションこのスクリプトは、Guix のダウンロード、インストール、および初期構成を自動化します。root ユーザーとして実行する必要があります。
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 System を標準の 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 サムドライブに書き込むことができます。
注記 |
---|
この例では、USB メモリが Linux によって として認識されていることを前提としています/dev/sdb 。 |
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
上記の方法で作成されたインストール メディアでは、チャネル仕様は自動的に構成されません。Guix がNonguix スキーム ライブラリを認識できるようにするに/etc/guix/channels.scm
は、Nonguix を「手動で」追加して実行する必要がguix pull
あります。以下は、チャネル仕様に 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
、この特定のモジュールはデフォルトで有効になっているはずです...