콘텐츠로 이동

GPU Governor 설정

GPU governor는 BC-250 성능에 필수적이며, 동적 주파수 및 전압 스케일링을 가능하게 합니다.

Governor가 필요한 이유

Governor 없이

  • GPU 주파수 1500 MHz에 고정
  • 동적 스케일링 없음
  • 유휴 시 더 높은 전력 소비(85–105W)
  • 낮은 성능(2000+ MHz 도달 불가)

Governor 사용 시

  • GPU가 1000 MHz(유휴)에서 2000–2230 MHz(부하)로 스케일
  • 동적 전압 스케일링(700–1000 mV)
  • 더 나은 온도
  • 유휴 전력 감소(65–85W)
  • 더 나은 게이밍 성능

전력 절감: 유휴 시 20–30W 감소

성능에 필수

좋은 게이밍 성능을 위해 governor는 선택 사항이 아닙니다. 없으면 1500 MHz에 고정됩니다.

ACPI 수정 — 권장

bc250-collective/bc250-acpi-fix는 CPU C-State 및 P-State 지원용 SSDT 테이블을 제공합니다:

  • SSDT-CST(C-States): C1/C2/C3 CPU 유휴 상태 활성화. 없으면 CPU 코어가 유휴 시 절전하지 않습니다.
  • SSDT-PST(P-States): 표준 Linux cpufreq governor(schedutil, powersave 등)로 CPU 주파수를 800 MHz에서 3200 MHz까지 스케일링. 커널 6.19.8에서 동작 확인.

두 테이블은 initrd override로 로드합니다 — 아래 ACPI 수정 설치 섹션 참고. GPU governor 동작에는 필수는 아니지만, CPU 유휴 전력을 크게 개선하고 CPU 주파수 스케일링을 가능하게 합니다.

최소 전압: 700mV

GPU 최소 전압을 700mV 미만으로 설정하지 마세요. GPU가 1500MHz에 고정되어 governor의 목적이 무의미해집니다.

Governor 옵션

Cyan-Skillfish Governor TT(대안)

개발자: filippor(Magnap 작업 기반) 유형: 열 스로틀링이 있는 다단계 governor 서비스 이름: cyan-skillfish-governor-tt 설정: /etc/cyan-skillfish-governor-tt/config.toml

기능: - 열 스로틀링이 있는 여러 주파수 단계 - GPU 사용률을 최적 범위에 유지 - COPR/RPM 및 AUR 제공 - 커널 주파수 범위 패치 필요(Bazzite에 사전 포함)

COPR: filippor/bazzite 저장소: github.com/filippor/cyan-skillfish-governor

서비스 이름 변경(2025년 12월)

filippor는 2025년 12월 13일 서비스 이름을 cyan-skillfish-governor에서 cyan-skillfish-governor-tt로 변경했습니다. 설정 폴더가 /etc/cyan-skillfish-governor/에서 /etc/cyan-skillfish-governor-tt/로 이동했습니다. 업그레이드 시 설정을 이전하세요:

sudo cp /etc/cyan-skillfish-governor/config.toml /etc/cyan-skillfish-governor-tt/config.toml

Cyan-Skillfish Governor SMU(권장)

개발자: filippor / Magnap 유형: SMU 기반 governor — 커널 패치를 완전히 우회 서비스 이름: cyan-skillfish-governor-smu 설정: /etc/cyan-skillfish-governor-smu/config.toml 출시: 2026년 1월 18일

기능: - SMU 펌웨어 호출로 클럭 속도 관리 - 어떤 배포판에서도 커널 주파수 범위 패치 불필요 - AUR(cyan-skillfish-governor-smu) 및 COPR(filippor/bazzite) 제공; 다른 배포판은 릴리스 tarball - 커널 패치 없이 모든 배포판에서 동작 - 커뮤니티 권장 기본값(2026년 3월+)

COPR: filippor/bazzite 저장소: github.com/filippor/cyan-skillfish-governor (smu branch)

Oberon Governor(레거시 — 여전히 안정적)

개발자: mothenjoyer69 / TuxThePenguin0 유형: 이 상태 governor(최소/최대 주파수)

기능: - 간단한 설정 - 검증된 안정성 - 낮은 CPU 부담(0.4%) - 이진 상태: 1000 MHz 유휴, 2000 MHz 부하

COPR: @exotic-soc/oberon-governor 저장소: gitlab.com/mothenjoyer69/oberon-governor

NexGen3D 설정 스크립트(Bazzite 초보자)

저장소: github.com/NexGen-3D-Printing/SteamMachine

cyan-skillfish-governor-smu 설치, swap/zram 구성, CPU mitigations 적용을 자동화하는 Bazzite 설정 스크립트. Bazzite 초보자의 사실상 표준. NexGen3D 스크립트는 이 문서를 메인 가이드로 참조합니다.

PS5GPU-BC250(GUI 컨트롤러 — 신규)

개발자: ZEROAESQUERDA 유형: 자동 및 수동 모드가 있는 GUI 기반 GPU 컨트롤러

기능: - 시각적 Qt 인터페이스(KDE, GNOME에서 동작) - GPU 최소/최대 주파수 및 전압 조정 - 동작 온도 한계 설정 - 부하 및 온도에 따른 4단계 부스트 자동 클럭 제어 - 수동 주파수 및 전압 제어 모드 - 커널 패치 또는 설정 파일 편집 불필요 - Windows의 MSI Afterburner / Adrenalin과 유사하게 동작

저장소: github.com/ZEROAESQUERDA/PS5GPU-BC250

다른 Governor 먼저 비활성화

PS5GPU-BC250 사용 전 실행 중인 GPU governor(cyan-skillfish-governor-smu, cyan-skillfish-governor-tt, oberon)를 비활성화해야 합니다. 여러 주파수 컨트롤러를 동시에 실행하면 충돌이 발생합니다.


설치

옵션 1: COPR / 패키지 관리자(가장 쉬움)

주요 배포판 모두에 사전 빌드 패키지가 있습니다.

Fedora (dnf):

sudo dnf copr enable filippor/bazzite
sudo dnf install cyan-skillfish-governor-smu
sudo systemctl enable --now cyan-skillfish-governor-smu.service

Bazzite (rpm-ostree):

sudo dnf copr enable filippor/bazzite
rpm-ostree install cyan-skillfish-governor-smu
systemctl reboot
# 재부팅 후:
sudo systemctl enable --now cyan-skillfish-governor-smu.service

Arch/CachyOS (AUR):

yay -S cyan-skillfish-governor-smu
sudo systemctl enable --now cyan-skillfish-governor-smu.service

TT Governor용(대안 — 커널 패치 필요):

# Fedora/Bazzite:
sudo dnf copr enable filippor/bazzite
sudo dnf install cyan-skillfish-governor-tt
sudo systemctl enable --now cyan-skillfish-governor-tt.service

# Arch/CachyOS:
yay -S cyan-skillfish-governor-tt
sudo systemctl enable --now cyan-skillfish-governor-tt.service

중요: GPU 디바이스 타겟 확인

설치 후 governor가 올바른 GPU 디바이스를 대상으로 하는지 확인하세요:

  • BC-250이 어떤 card인지 확인: ls -la /sys/class/drm/ | grep card
  • 시스템에 따라 governor가 card0 또는 card1을 대상할 수 있음
  • governor 설정이 적용되지 않으면 설정에서 올바른 card를 수동 지정해야 할 수 있음

컴파일 불필요

COPR 패키지를 사용하면 governor를 소스에서 수동 컴파일할 필요가 없습니다. 패키지는 사전 빌드되어 유지보수됩니다.

COPR 패키지 상태

filippor/bazzite COPR은 cyan-skillfish-governor-smu(권장)와 cyan-skillfish-governor-tt(대안)를 제공합니다. 2026년 3월 현재 동작 확인.

옵션 2: Debian/Ubuntu/일반 Linux(릴리스 tarball)

업스트림은 .deb를 제공하지 않습니다. filippor의 releases 페이지의 릴리스 tarball을 사용하세요:

# 최신 cyan-skillfish-governor-smu-*-x86_64-linux.tar.gz 다운로드 후:
tar -xf cyan-skillfish-governor-smu-*-x86_64-linux.tar.gz
cd cyan-skillfish-governor-smu-*/
sudo ./scripts/install.sh
sudo systemctl enable --now cyan-skillfish-governor-smu.service

옵션 3: 소스에서 빌드

빌드 방법은 github.com/filippor/cyan-skillfish-governor 참고. SMU 변형은 smu 브랜치에 있으며 cargo build --release로 빌드합니다.

설정

Cyan-Skillfish Governor SMU 설정(권장)

설정 파일: /etc/cyan-skillfish-governor-smu/config.toml

예시 설정:

smu 브랜치는 이전 safe-points = [...] 배열이 아닌 섹션 기반 TOML 스키마를 사용합니다. 아래 기본값은 업스트림 default-config.toml과 일치하며, 전압 곡선을 1000 mV로 평탄화하여 커뮤니티 검증 2150–2200 MHz 상한과 맞춥니다.

# 샘플링 및 조정 주기, 마이크로초
[timing.intervals]
sample = 500
adjust = 200_000

# GPU 사용률 메트릭 패치(BC-250에서 MangoHud 655% 버그 수정)
[gpu-usage]
fix-metrics = true
method = "busy-flag"   # "busy-flag" 또는 "process"
flush-every = 10

# 주파수/전압 백엔드
[gpu]
set-method = "smu"     # "smu" 또는 "kernel"

# 선택적 D-Bus 인터페이스(cyan-skillfish-performance-mode 헬퍼용)
[dbus]
enabled = true

# 주파수 변경 속도, MHz/밀리초
[timing.ramp-rates]
normal = 1
burst = 50

# 버스트 동작 및 스텝 다운 임계값, 샘플 수
[timing]
burst-samples = 60
down-events = 5

# 적용할 최소 주파수 변경, MHz
[frequency-thresholds]
adjust = 10

# GPU 부하 목표 범위(분율, 퍼센트 아님)
[load-target]
upper = 0.80
lower = 0.65

# 열 한계, °C
[temperature]
throttling = 85
throttling_recovery = 75

# 전압 곡선, 각 점은 하나의 [[safe-points]] 테이블
[[safe-points]]
frequency = 1000   # MHz
voltage = 800      # mV

[[safe-points]]
frequency = 1500
voltage = 900

[[safe-points]]
frequency = 2000
voltage = 1000     # gaming

[[safe-points]]
frequency = 2150
voltage = 1000     # 커뮤니티 검증 부스트 상한

[[safe-points]]
frequency = 2200
voltage = 1000     # 스톡 쿨링에서 최대 안정

전압 상한: 먼저 1000 mV 시도, 보드별로 올리기

일부 40 CU 보드는 지속 부하에서 평탄 1000 mV로 2150–2200 MHz를 유지합니다(한 보드에서 실시간 검증). 다른 보드는 상단에서 작은 증가(~1025 mV @ 2150, ~1050 mV @ 2200)가 필요할 수 있습니다. GDDR6 및 SoC bin이 다르므로 "올바른" 곡선은 보드별입니다.

권장 접근:

  1. 곡선 상단을 평탄 1000 mV로 시작.
  2. 10분 이상 지속 Vulkan 워크로드 실행 — memtest_vulkan은 헤드리스로 VRAM 스트레스, llama-bench는 연산, 원하는 게임은 실제 부하.
  3. 크래시, 멈춤, 메모리 오류 시: 상단 점을 15–25 mV씩 올리고 재실행. 2200에서 1075 mV를 넘기지 마세요 — 그 이상은 열만 추가하고 안정성은 안 사줍니다. 상단 주파수 점을 낮추는 편이 낫습니다.

이전 가이드의 1025–1075 mV 권장은 전반적으로 보수적이었습니다. 2026년 발견은 **많은 보드가 필요 없다**는 것이지, 어떤 보드도 필요 없다는 뜻은 아닙니다.

변경 후 재시작:

sudo systemctl restart cyan-skillfish-governor-smu

Cyan-Skillfish Governor TT 설정

설정 파일: /etc/cyan-skillfish-governor-tt/config.toml

예시 설정:

tt 브랜치는 smu와 동일한 섹션 기반 스키마를 사용하되, SMU 전용 [gpu-usage], [gpu], [dbus] 섹션은 없습니다(TT는 SMU 펌웨어 호출이 아닌 sysfs를 사용).

[timing.intervals]
sample = 500
adjust = 200_000

[timing.ramp-rates]
normal = 1
burst = 50

[timing]
burst-samples = 60

[frequency-thresholds]
adjust = 10

[load-target]
upper = 0.80
lower = 0.65

[temperature]
throttling = 85
throttling_recovery = 75

[[safe-points]]
frequency = 1000
voltage = 700

[[safe-points]]
frequency = 1500
voltage = 900

[[safe-points]]
frequency = 2000
voltage = 1000

[[safe-points]]
frequency = 2150
voltage = 1000

최소 전압: 700mV

최소 전압을 700mV 미만으로 설정하면 GPU가 1500MHz에 고정됩니다. 항상 최소 전압 ≥700mV 유지.

전압/주파수 수동 테스트:

# governor 중지
sudo systemctl stop cyan-skillfish-governor-tt

# 주파수 및 전압 수동 설정
echo vc 0 2000 1000 > /sys/devices/pci0000:00/0000:00:08.1/0000:01:00.0/pp_od_clk_voltage

# 벤치마크/게임으로 안정성 테스트

# 안정하면 설정에 추가

확인

Governor 실행 여부 확인

# 서비스 상태 확인(설치한 것 사용)
systemctl status cyan-skillfish-governor-smu
# 또는: systemctl status cyan-skillfish-governor-tt

# active (running) 표시되어야 함

주파수 스케일링 확인

# 현재 GPU 주파수 보기
cat /sys/class/drm/card0/device/pp_dpm_sclk

# 예시 출력:
# 0: 1000Mhz
# 1: 1500Mhz
# 2: 2000Mhz *
#
# *는 활성 주파수

동적 스케일링 테스트: 1. 유휴 시 주파수 확인(~1000 MHz여야 함) 2. 게임 또는 벤치마크 시작 3. 부하 시 주파수 확인(2000+ MHz로 증가해야 함)

모니터링 도구

CoolerControl (GUI):

# Fedora
sudo dnf copr enable terra/terra
sudo dnf install coolercontrol

# Bazzite
ujust install-coolercontrol

실시간 GPU 주파수, 전압, 온도를 표시합니다.

명령줄:

# 주파수 변경 감시
watch -n 1 'cat /sys/class/drm/card0/device/pp_dpm_sclk'

MangoHud(게임 내 오버레이):

# MangoHud 설치
sudo dnf install mangohud  # Fedora
sudo pacman -S mangohud    # Arch

# 오버레이로 게임 실행
mangohud %command%  # Steam 실행 옵션

문제 해결

부팅 시 Governor가 시작되지 않음

증상: - GPU가 1500 MHz에 고정 - 서비스가 inactive

서비스 확인:

# 설치한 governor 확인:
sudo systemctl status cyan-skillfish-governor-smu
# 또는: sudo systemctl status cyan-skillfish-governor-tt

# 로그 확인
sudo journalctl -u cyan-skillfish-governor-smu
# 또는: sudo journalctl -u cyan-skillfish-governor-tt

해결 방법:

1. 서비스 활성화:

sudo systemctl enable cyan-skillfish-governor-smu
# 또는: sudo systemctl enable cyan-skillfish-governor-tt

2. 설정 파일 존재 확인:

ls -l /etc/cyan-skillfish-governor-smu/config.toml
# 또는: ls -l /etc/cyan-skillfish-governor-tt/config.toml

# 없으면 governor 재설치

3. 수동 재시작:

sudo systemctl restart cyan-skillfish-governor-smu
# 또는: sudo systemctl restart cyan-skillfish-governor-tt

우회(Arch/CachyOS):

일부 사용자는 부팅 후 GPU를 사용하기 전까지 governor가 활성화되지 않는다고 보고합니다: - 부팅 후 한 번 게임 또는 벤치마크 실행 - governor가 활성화되어 유지됨

주파수가 1500 MHz에 고정

가능한 원인: 1. Governor 미실행 2. 설정 파일 누락/잘못됨 3. Governor 바이너리 미설치

디버그:

# governor 바이너리 존재 확인(설치한 것)
which cyan-skillfish-governor-smu
# 또는: which cyan-skillfish-governor-tt

# 설정 확인
cat /etc/cyan-skillfish-governor-smu/config.toml
# 또는: cat /etc/cyan-skillfish-governor-tt/config.toml

# 로그 오류 확인
sudo journalctl -u cyan-skillfish-governor-smu --no-pager -n 20

Oberon Governor에서 마이그레이션

레거시 oberon-governor를 사용 중이면 cyan-skillfish-governor-smu로 마이그레이션:

# oberon 중지 및 비활성화
sudo systemctl stop oberon-governor
sudo systemctl disable oberon-governor

# oberon 패키지 제거
sudo dnf remove oberon-governor              # Fedora/Bazzite
# 또는: sudo pacman -R oberon-governor         # Arch
# 또는: rpm-ostree uninstall oberon-governor   # Bazzite (rpm-ostree)

# 이전 설정 제거
sudo rm -f /etc/oberon-config.yaml

# 대체 설치
sudo dnf copr enable filippor/bazzite
sudo dnf install cyan-skillfish-governor-smu

# 활성화 및 시작
sudo systemctl enable --now cyan-skillfish-governor-smu.service

# 실행 확인
systemctl status cyan-skillfish-governor-smu

수정 확인:

# 유휴 시 1000 MHz 표시(1500 MHz 고정 아님)
cat /sys/class/drm/card0/device/pp_dpm_sclk

GPU card 번호

시스템 구성에 따라 GPU가 card0 또는 card1일 수 있습니다. ls /sys/class/drm/로 올바른 card를 확인하세요.

GPU 리셋 시 검은 화면(Governor 실행 중)

증상: - 게임 중 GPU 크래시, 화면이 검게 되고 복구되지 않음 - 시스템은 동작하는 것 같음(팬 회전, SSH 가능)하지만 디스플레이 출력 없음 - 하드 리부트 필요

원인: governor가 주파수를 관리하는 동안 GPU가 크래시하면 GPU 리셋 메커니즘이 완료되지 않을 수 있습니다. governor가 리셋 중 sysfs에 계속 쓰기를 시도하여 복구를 방해합니다.

우회: - 크래시가 잦은 게임 전 governor 비활성화: sudo systemctl stop cyan-skillfish-governor-smu - 이후 재활성화: sudo systemctl start cyan-skillfish-governor-smu

장기 해결: GPU 크래시를 유발하지 않는 안정적인 전압/주파수 설정 사용. 특정 게임이 GPU를 지속적으로 크래시시키면 전압을 올리거나 최대 주파수를 낮추세요.

Governor 사용 시 시스템 크래시

증상: - 게이밍 중 시스템 불안정 - GPU 주파수 변경 시 크래시

원인: - 주파수에 비해 전압이 너무 낮음 - 과열 - 불안정한 오버클럭

해결 방법(순서):

1. 먼저 온도 확인. 스톡 쿨링에서는 거의 항상 실제 원인입니다.

sensors
# GPU edge는 지속 부하에서 < 90 °C 유지. 95 °C+는 열 스로틀.

95–100 °C에 도달하면 수정은 쿨링(더 나은 팬, 재도포, 케이스 공기 흐름)이지 전압이 아닙니다. 열 제한 상태에서 전압을 올리면 상황이 악화됩니다.

2. 쿨링이 한계면 최대 주파수 감소. 상위 주파수 [[safe-points]] 블록을 제거하여 곡선 상한:

# /etc/cyan-skillfish-governor-smu/config.toml 편집
[[safe-points]]
frequency = 1000
voltage = 700

[[safe-points]]
frequency = 1500
voltage = 900

[[safe-points]]
frequency = 2000   # 여기서 상한, 2150/2200 항목 제거
voltage = 1000

3. 그다음에만 전압 고려. 온도는 괜찮지만 2150–2200 MHz에서 여전히 크래시하면 해당 보드는 상단 점만 작은 증가가 필요할 수 있습니다:

[[safe-points]]
frequency = 2200
voltage = 1025   # 상단만 +25 mV 시도

2200 MHz에서 1025 mV를 넘기는 것은 드물게 안정성 수정이고 거의 항상 열만 추가합니다. +25 mV로 도움이 안 되면 상단 점을 낮추고 2 GHz로 타협하세요.

Governor 높은 CPU 사용률

정상 CPU 사용률: - Cyan-Skillfish SMU: 0.9–1.3% CPU - Cyan-Skillfish TT: 0.9–1.3% CPU

CPU 사용률 > 2%인 경우:

폴링 간격 확인. smu 브랜치는 [timing.intervals] 아래 마이크로초 단위 간격을 사용합니다. sample(및 비례적으로 adjust)를 올려 CPU 부담 감소:

# /etc/cyan-skillfish-governor-smu/config.toml 편집
[timing.intervals]
sample = 1000      # 기본 500 µs, 두 배로 샘플률 절반
adjust = 400_000   # sample과 비율 유지(기본은 sample * 400)

버그 확인:

# governor 로그 보기(설치한 것)
sudo journalctl -u cyan-skillfish-governor-smu -f
# 또는: sudo journalctl -u cyan-skillfish-governor-tt -f

성능 비교

Governor 유휴 주파수 최대 주파수 CPU 사용률 응답 시간 커널 패치
없음 1500 MHz 1500 MHz 0% N/A No
SMU (권장) Variable 2300+ MHz 0.9–1.3% 24ms No
TT (대안) Variable 2175+ MHz 0.9–1.3% 24ms Yes
Oberon (레거시) 1000 MHz 2000 MHz 0.4% 100ms Yes

Governor 비교

Cyan-Skillfish SMU 사용 시점(권장)

  • 커널 패치 불필요: 패치 없이 모든 배포판에서 동작
  • 최대 제어: SMU 펌웨어로 정밀 주파수 제어
  • 최고 효율: 여러 전압 점으로 연속 스케일링
  • 적합: 모든 사용자, 특히 커널 패치가 추가 작업인 CachyOS/Arch

Cyan-Skillfish TT 사용 시점

  • 다단계 스케일링: 열 스로틀링 인식
  • 패키지 제공: Bazzite에서 쉽게 설치(커널 사전 패치)
  • 적합: 이미 커널 패치가 있는 Bazzite 사용자

Oberon 사용 시점(레거시)

  • 간단한 설정: 이 상태 governor(최소/최대)
  • 검증된 안정성: 가장 오래되고 테스트 많음
  • 낮은 부담: 0.4% CPU 사용률
  • 참고: 더 이상 적극 권장하지 않음 — SMU로 마이그레이션

Governor로 오버클럭

안전한 오버클럭 가이드

1단계: 최대 안정 주파수 테스트

# governor 중지(설치한 것)
sudo systemctl stop cyan-skillfish-governor-smu
# 또는: sudo systemctl stop cyan-skillfish-governor-tt

# 테스트 주파수 수동 설정
echo vc 0 2100 1050 > /sys/devices/pci0000:00/0000:00:08.1/0000:01:00.0/pp_od_clk_voltage

# 벤치마크 실행(30분 이상)
# 안정하면 더 높게 시도
# 크래시하면 주파수 낮추거나 전압 올리기

2단계: Governor 설정 업데이트

[[safe-points]] 블록 추가 또는 조정. 각 블록은 곡선의 하나의 (주파수, 전압) 점:

# /etc/cyan-skillfish-governor-smu/config.toml
[[safe-points]]
frequency = 1000
voltage = 700

[[safe-points]]
frequency = 2000
voltage = 1000

[[safe-points]]
frequency = 2100   # 안정 테스트 주파수
voltage = 1050     # 유지한 전압

3단계: 재시작 및 테스트

sudo systemctl restart cyan-skillfish-governor-smu
# 또는: sudo systemctl restart cyan-skillfish-governor-tt

# 게임/벤치마크로 테스트
# 온도 모니터링

알려진 GPU 한계(쿨링 의존):

  • 350 MHz: 커널 주파수 범위 패치 시 최소
  • 1000 MHz: 스톡 커널에서 최소
  • 2000 MHz @ 1000 mV: 모든 보드에서 안전한 시작점
  • 2100–2175 MHz @ 1025–1050 mV: 많은 보드에서 동작, 철저히 테스트
  • 2230 MHz @ 1060 mV: 공랭, 보수적 최대
  • 2300 MHz @ 1075 mV: 좋은 공랭(Arctic P12 Max 이상)
  • 2400 MHz @ 1125 mV: 수랭 전용(NexGen3D 테스트)

쿨링이 한계를 결정

최대 안정 주파수는 쿨링 솔루션에 크게 의존합니다. 위 한계는 지속 부하를 가정합니다. 각 단계에서 30분 이상 게이밍 테스트 후 설정을 확정하세요.

bc250_smu_oc로 CPU 오버클럭

bc250_smu_oc 도구는 SMU 명령으로 CPU를 오버클럭합니다. 동적 주파수 스케일링을 유지하면서 부스트 클럭 상한을 올립니다.

설치

git clone https://github.com/bc250-collective/bc250_smu_oc.git
cd bc250_smu_oc
pip install --user .

주파수 테스트

# 3700 MHz 테스트(전압 자동 튜닝)
sudo bc250-detect -f 3700 -v 1231

# --keep로 도구 종료 후 OC 유지
sudo bc250-detect -f 3900 -v 1280 -k

검증된 CPU 오버클럭 결과(Fedora 43, kernel 6.19.8)

주파수 자동 튜닝 전압 7zip MIPS 온도(전부하) vs 스톡
3500 (stock) auto 26,062 60°C baseline
3600 MHz 1150 mV 26,518 65°C +1.7%
3700 MHz 1199 mV 27,212 68°C +4.4%
3800 MHz 1250 mV 27,919 72°C +7.1%
3900 MHz 1275 mV 28,410 75°C +9.0%
4000 MHz — throttles 77°C ❌

쿨링이 중요

이 결과는 온도에 따라 PWM을 조절하는 팬 커브 서비스로 얻었습니다. PWM 80(~1400 RPM) 스톡 팬에서는 3900 MHz가 스로틀됩니다. 좋은 쿨링이 OC 여유를 늘립니다.

CPU OC 영구 적용

# 테스트 및 설정 생성
sudo bc250-detect -f 3900 -v 1280 -k -c /etc/bc250-overclock.conf

# systemd 서비스로 설치
sudo bc250-apply -a -i /etc/bc250-overclock.conf
sudo systemctl enable bc250-smu-oc

OC 서비스는 부팅 시 부스트 상한을 올립니다. ACPI P-States와 schedutil governor와 결합하면 CPU가 동적으로 스케일합니다: 유휴 800 MHz → 부하 3900 MHz.

오버클럭 위험

오버클럭은 불안정, 크래시, 하드웨어 손상을 유발할 수 있습니다. 항상 온도를 모니터링하고 철저히 테스트하세요.

ACPI 수정 설치

bc250-acpi-fix는 CPU C-States(유휴 절전) 및 P-States(주파수 스케일링)를 활성화하는 SSDT 테이블을 제공합니다. 커널 6.19.8에서 둘 모두 동작 확인.

활성화 내용

  • C-States (SSDT-CST): CPU 코어가 유휴 시 C1/C2/C3 절전 상태로 전환, 전력 소비 감소
  • P-States (SSDT-PST): 표준 Linux cpufreq governor(schedutil, powersave, performance 등)로 CPU 주파수 800 MHz–3200 MHz 스케일링

설치

1단계: initrd override 클론 및 빌드

git clone https://github.com/bc250-collective/bc250-acpi-fix.git
cd bc250-acpi-fix

# ACPI override cpio 아카이브 생성
mkdir -p kernel/firmware/acpi
cp SSDT-CST.aml SSDT-PST.aml kernel/firmware/acpi/
find kernel | cpio -o -H newc > /tmp/acpi_override.cpio

# /boot에 복사
sudo cp /tmp/acpi_override.cpio /boot/acpi_override.cpio

2단계: 부트 로더에 추가

Fedora (BLS entries):

# 현재 커널의 BLS 항목 편집
sudo nano /boot/loader/entries/$(cat /etc/machine-id)-$(uname -r).conf

# initrd 줄 앞에 /acpi_override.cpio 추가:
# Before: initrd /initramfs-6.19.8-200.fc43.x86_64.img
# After:  initrd /acpi_override.cpio /initramfs-6.19.8-200.fc43.x86_64.img

Arch/Debian (GRUB):

# /etc/default/grub에 추가:
GRUB_EARLY_INITRD_LINUX_CUSTOM="acpi_override.cpio"

# GRUB 재생성
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # Fedora
sudo grub-mkconfig -o /boot/grub/grub.cfg    # Arch
sudo update-grub                              # Debian

3단계: 재부팅 및 확인

sudo reboot

# 재부팅 후 C-states 확인:
ls /sys/devices/system/cpu/cpu0/cpuidle/
# state0, state1, state2, state3 표시

# P-states 확인:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# 표시: 3200000 2550000 2325000 1960000 1820000 1600000 1271000 800000

# 권장 CPU governor 설정:
echo schedutil | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

커널 업데이트 참고

새 커널로 업데이트하면 새 커널의 BLS 항목에 ACPI override가 포함되지 않습니다. 새 항목을 편집하거나 kernel-install hook으로 자동화해야 합니다.

커뮤니티 리소스

참고


최종 업데이트: 2026-03-21