콘텐츠로 이동

Fedora CoreOS 설정

Fedora CoreOS Logo

Fedora CoreOS는 BC-250에서 훌륭하게 동작합니다. 컨테이너 최적화 OS로 cockpit, podman, quadlets를 사용하여 단일 머신을 관리합니다. 여러 노드를 관리할 때는 Docker swarm을 사용합니다.

ignition 설정은 다루지 않지만, BC-250 및 성능 커스터마이징에 대한 설치 후 설정은 안내할 수 있습니다.

상태: 완전히 동작

난이도: 특수 설정 (데스크톱이 아니라 헤드리스 서버 플랫폼)

운영 체제: Bazzite가 이 위에 구축된 기반이므로 향후 Bazzite로 쉽게 'rebase'할 수 있습니다.

커널 및 소프트웨어 버전: 작성 시점 기준 커널 7.0.8이 기본 커널 버전입니다. 아래 모든 커스터마이징은 Zincati를 통한 Fedora CoreOS 자동 시스템 업그레이드를 통해 유지되도록 설계되었습니다.


Fedora CoreOS를 선택하는 이유

장점

  • 롤링 릴리스 - 롤링 릴리스 및 관리형 업그레이드
  • 낮은 RAM 사용량 - 새로 프로비저닝된 머신에서 일반적으로 640MB 미만
  • 불변 기반 - rpm-ostree의 모든 장점
  • 컨테이너 최적화 워크로드용 - 사용 사례 예: Games on Whales, Frigate, Home Assistant, *Claw, llama-server

BIOS 요구 사항

설치 전 필수:

  1. 수정된 BIOS 플래시 (P3.00 권장)

  2. VRAM 할당 설정 (512MB dynamic 권장)

  3. IOMMU 비활성화 (IOMMU가 손상됨 — 반드시 비활성화)

BIOS 플래시 가이드를 참조하세요.


Fedora CoreOS 설치

사전 요구 사항

  • USB 드라이브 (4GB+)
  • Fedora CoreOS Live DVD ISO fedoraproject.org
  • Linux 명령줄에 대한 친숙함

설치 단계

Fedora CoreOS 설치 가이드 따르기

Fedora CoreOS 설치는 공식 Fedora CoreOS 설치 가이드에 따라 수행해야 합니다. BC-250에 CoreOS를 설치하는 데 특별한 변경이나 커스터마이징은 필요하지 않습니다. 모든 커스터마이징은 설치 후에 수행합니다.


설치 후 단계

ACPI C-State 및 P-State 활성화

CoreOS 업그레이드를 통해 C-State 및 P-State 설정이 유지됩니다. root 사용자로 실행하세요.

  1. bc250-acpi-fix github 저장소에서 두 .aml 파일을 가져옵니다.
    git clone https://github.com/bc250-collective/bc250-acpi-fix.git
    
  2. AML 파일을 포함하는 dracut 디렉터리 생성
    mkdir -p /etc/dracut.conf.d/acpi/
    
  3. *.aml 파일을 /etc/dracut.conf.d/acpi/에 복사
    cp bc250-acpi-fix/*.aml /etc/dracut.conf.d/acpi/
    
  4. 다음 내용으로 /etc/dracut.conf.d/99-acpi-override.conf 새 파일 생성
    cat <<EOF > /etc/dracut.conf.d/99-acpi-override.conf
    acpi_override="yes"
    acpi_table_dir="/etc/dracut.conf.d/acpi"
    EOF
    
  5. InitramFS 생성 활성화
    rpm-ostree initramfs --enable
    
  6. 재부팅
    systemctl reboot
    
  7. ACPI 테이블 Override가 적용되었는지 확인
    root@localhost:~# dmesg | grep SSDT-.ST
    [    0.005283] ACPI: SSDT ACPI table found in initrd [kernel/firmware/acpi/SSDT-CST.aml][0x30e]
    [    0.005286] ACPI: SSDT ACPI table found in initrd [kernel/firmware/acpi/SSDT-PST.aml][0x39e]
    

Cyan Skillfish 거버너 활성화

GPU를 스로틀할 수 있습니다. 내 설정에서는 350 MHz에서 2200 MHz까지 테스트되었습니다. 냉각 설정에 크게 의존합니다. GPU 속도를 2000 MHz 이상으로 설정하고 모든 GPU Compute Unit을 활성화할 때는 주의하세요. 내 설정에서는 시스템 잠금이 발생했습니다.

  1. COPR filippo/bazzite 저장소를 로컬 시스템에 다운로드하여 배치합니다.
    curl --output-dir /etc/yum.repos.d/ -O https://copr.fedorainfracloud.org/coprs/filippor/bazzite/repo/fedora-44/filippor-bazzite-fedora-44.repo
    
  2. cyan-skillfish-governor-smu 패키지 설치
    rpm-ostree install cyan-skillfish-governor-smu
    
  3. 재부팅
    systemctl reboot
    
  4. 선호에 맞게 구성 편집
    nano /etc/cyan-skillfish-governor-smu/config.toml 
    
  5. cyan-skillfish-governor-smu 서비스 활성화
    systemctl enable cyan-skillfish-governor-smu.service
    systemctl restart cyan-skillfish-governor-smu.service
    
  6. 서비스가 실행 중이고 동작하는지 확인
    systemctl status cyan-skillfish-governor-smu.service
    

하드웨어 모니터 활성화

읽기 전용 하드웨어 모니터 기능을 사용할 수 있습니다.

  1. 모듈을 로드하는 구성 파일 생성
    echo 'nct6683' > /etc/modules-load.d/nct6683.conf
    
  2. 모듈과 함께 로드할 옵션의 구성 파일 생성
    echo 'options nct6683 force=1' > /etc/modprobe.d/nct6683.conf
    
  3. 재부팅
    systemctl reboot
    
  4. 모듈이 로드되었는지 확인
    root@localhost:~# dmesg | grep nct6683
    [    3.811815] nct6683: Found NCT6686D or compatible chip at 0x2e:0xa20
    [    3.812657] nct6683 nct6683.2592: NCT6686D EC firmware version 1.0 build 07/28/21
    

추가 코어 잠금 해제 활성화

이전에 언급했듯 40 Compute Unit을 활성화하고 냉각/전력에 주의**가 필요합니다. 준비되지 않으면 **문제가 발생합니다. 이를 활성화하는 경우 거버너를 350 MHz에서 1500 MHz 사이로 유지하는 것이 권장됩니다. 재부팅마다 한 번 로드해야 합니다. 대안으로 동일한 목표를 달성하는 커널 패치를 참조할 수 있습니다(향후 업데이트를 위해 이 패치를 유지하는 것이 더 복잡할 수 있음).

  1. AMD User Mode Register (UMR) 유틸리티 설치
    rpm-ostree install umr
    
  2. 재부팅
    systemctl reboot
    
  3. 다음 내용으로 systemd용 새 파일 생성
    cat <<EOF > /etc/systemd/system/gpu-unlock.service
    [Unit]
    Description=Unlock GPU Compute Units at Boot
    After=multi-user.target
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStartPre=/usr/bin/sleep 10s
    ExecStart=/usr/bin/umr -w *.gfx1013.mmRLC_PG_ALWAYS_ON_WGP_MASK 0x1f
    ExecStart=/usr/bin/umr -w *.gfx1013.mmCC_GC_SHADER_ARRAY_CONFIG 0x0
    ExecStart=/usr/bin/umr -w *.gfx1013.mmCC_GC_SHADER_ARRAY_CONFIG 0x0 -b 1 0 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmCC_GC_SHADER_ARRAY_CONFIG 0x0 -b 1 1 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmCC_GC_SHADER_ARRAY_CONFIG 0x0 -b 0 1 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmCC_GC_SHADER_ARRAY_CONFIG 0x0 -b 0 0 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmSPI_PG_ENABLE_STATIC_WGP_MASK 0x1f -b 0 0 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmSPI_PG_ENABLE_STATIC_WGP_MASK 0x1f -b 0 1 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmSPI_PG_ENABLE_STATIC_WGP_MASK 0x1f -b 1 0 0xffffffff
    ExecStart=/usr/bin/umr -w *.gfx1013.mmSPI_PG_ENABLE_STATIC_WGP_MASK 0x1f -b 1 1 0xffffffff
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  4. 서비스 등록, 활성화 및 시작
    systemctl daemon-reload
    systemctl enable gpu-unlock.service
    systemctl restart gpu-unlock.service
    

14.75GB VRAM 할당 활성화

LLM 등 서비스에 GPU에 14.75GB RAM을 할당할 수 있습니다. 추가 VRAM 구성 설정이 있습니다. 링크된 문서를 검토하세요. 참고: 아래 할당이 동작하려면 BIOS VRAM을 512MB Dynamic Allocation으로 설정해야 합니다.

  1. 다음 내용으로 modprobe 구성 생성
    cat <<EOF > /etc/modprobe.d/bc250-vram.conf
    options ttm pages_limit=3776000 page_pool_size=3776000
    options amdgpu gttsize=14750
    EOF
    
  2. initramfs 동기화 강제
    rpm-ostree initramfs-etc --force-sync
    
  3. 재부팅
    systemctl reboot
    

Spectre 완화 비활성화

일부 CPU 속도 향상을 허용합니다.

  1. 커널 commandline 설정
    rpm-ostree kargs --replace="mitigations=auto,nosmt=off"
    
  2. 재부팅
    systemctl reboot
    

Podman으로 컨테이너에 GPU 노출

컴퓨트 용도(예: LLM)로 vulkan을 활용하여 GPU를 자주 노출합니다. podman 명령줄에서 다음을 사용하세요:

--device /dev/dri --device /dev/kfd

관련 가이드: - Fedora 설정 - Bazzite 설정 - CachyOS 설정 - GPU 거버너