다른 배포판과 함께 Guix System Distribution(또는 GuixSD 또는 Guix만)을 설치하고 싶습니다. 문제는 Guix가 무료가 아닌 Realtek 드라이버를 인식하지 못해서 WiFi를 사용할 수 없다는 것입니다. 이더넷을 통해 Guix를 설치할 수는 있지만 매우 불안정하기 때문에 기존 Debian(buster) 설치와 함께 설치하여 Nonguix 채널을 추가하고 드라이버를 설치하려고 합니다. 문제는 제가 무엇을 해야할지 잘 모르겠다는 것입니다.
나는 Debian에 Guix를 설치하고, 일부 패키지를 설치하고, GuixSD를 루트 디렉터리에 바인딩하거나(적어도 NixOS가 수행하는 작업이며 Guix에서 영감을 얻었습니다) ISO에 chrooting을 포함하는 작업을 포함한다고 확신합니다.
가능한 모든 도움을 주시면 감사하겠습니다.
시스템 메시지
# 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
데비안에 설치
GNU Guix 참조 매뉴얼에서,2 설치:
노트 이것을 사용하는 것이 좋습니다쉘 설치 프로그램 스크립트실행 중인 GNU/Linux 시스템에 Guix를 설치합니다.해외 발매. 이 스크립트는 Guix를 자동으로 다운로드, 설치 및 초기 구성합니다. 루트 사용자로 실행해야 합니다.
다음은 bash
Debian Buster에 Guix를 설치하는 한 줄 명령입니다:
bash <(wget -qO- https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh)
비 GUIX 채널 설치
다음에서 수정된 지시어Nonguix 프로젝트 페이지:
Nonguix는 다음과 같이 설치할 수 있습니다.GuixChannel. 이렇게 하려면 다음 위치에 추가하세요 ~/.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
.
무료가 아닌 펌웨어 및 드라이버 사용
표준 Linux 커널 및 무료 펌웨어가 포함된 Guix 시스템을 사용하려면 운영 체제 정의 커널 및 펌웨어 필드를 편집하세요 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
. [왜냐하면]kernel linux-5.11
이제 이 특정 모듈은 기본적으로 활성화되어야 합니다...