기존 Linux 시스템을 사용하여 GuixSD 설치

기존 Linux 시스템을 사용하여 GuixSD 설치

다른 배포판과 함께 Guix System Distribution(또는 GuixSD 또는 Guix)을 설치하고 싶습니다. 문제는 Guix가 무료가 아닌 Realtek 드라이버를 인식하지 못하기 때문에 WiFi를 사용할 수 없다는 것입니다. 이더넷으로 Guix를 설치할 수는 있지만 매우 불안정하기 때문에 기존 Debian(buster) 설치와 함께 설치한 다음 Nonguix 채널을 추가하고 드라이버를 설치하려고 합니다. 문제는 어떻게 하는지 잘 모르겠다는 것입니다.

나는 여기에 Guix를 Debian에 설치하고, 일부 패키지를 설치하고, GuixSD를 루트에 묶는 것이 포함되거나(적어도 Guix가 영감을 받은 NixOS가 수행하는 방식입니다) 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)

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.

무료가 아닌 펌웨어 및 드라이버 사용

표준 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 pullGuix가 Nonguix 구성표 라이브러리를 인식하도록 실행해야 합니다. 아래는 채널 사양에 Nonguix를 포함시키기 위한 Guile Scheme 코드입니다.

(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이제 이 특정 모듈은 기본적으로 활성화되어야 합니다...

관련 정보