센서 및 모니터링¶
BC-250에서 온도, 팬 속도, 전압, 성능 지표를 모니터링하는 가이드입니다.
개요¶
BC-250에는 여러 하드웨어 모니터링 구성 요소가 있습니다:
- Nuvoton NCT6686D SuperIO 칩 — 메인보드 센서(온도, 전압, 팬 속도)
- 읽기 전용 모니터링: in-kernel
nct6683드라이버(force=true와 함께) - PWM 팬 읽기+쓰기: out-of-tree
nct6687드라이버(Fred78290/nct6687d)와force=true
- 읽기 전용 모니터링: in-kernel
- AMD GPU 센서 — GPU 온도, 전압, 전력 소비
- k10temp — CPU 온도 모니터링
- NVMe 센서 — M.2 드라이브 온도
적절한 모니터링은 BC-250이 안전한 동작 온도(부하 시 70–85°C)를 유지하고 쿨링 또는 전원 문제를 진단하는 데 필수입니다.
SuperIO 드라이버 설정¶
SuperIO 칩 정보¶
BC-250은 하드웨어 모니터링용 Nuvoton NCT6686D Super I/O 칩을 사용합니다. Linux 드라이버 옵션은 두 가지입니다:
nct6683(in-kernel) — 센서 읽기 전용(온도, 전압, 팬 속도). 팬 PWM 제어 불가.nct6687(out-of-tree, Fred78290/nct6687d) — PWM 팬 제어 포함 전체 읽기+쓰기. 소프트웨어 팬 제어가 필요하면 필수.
둘 모두 칩이 자동 감지되지 않아 force=true가 필요합니다. 어떤 모듈이 로드되든 센서는 nct6686-isa-0a20으로 보고됩니다.
칩이 제공하는 항목:
- 여러 온도 센서(CPU, System, VRM MOS 등)
- 전압 레일 모니터링(+12V, +5V, +3.3V, CPU Soc, CPU Vcore 등)
- 팬 속도 모니터링(최대 8개 팬 헤더)
- PWM 팬 제어(
nct6687모듈만)
센서 모듈 로드¶
기본적으로 Linux가 이 칩용 드라이버를 자동 로드하지 않을 수 있습니다. 수동으로 활성화해야 합니다.
옵션 A: 읽기 전용 센서(nct6683)¶
PWM 팬 제어 없이 온도/전압/팬 속도 모니터링만 필요할 때 사용합니다.
1단계: 모듈이 올바르게 로드되는지 테스트:
2단계: 영구 적용:
echo 'options nct6683 force=true' | sudo tee /etc/modprobe.d/sensors.conf
echo 'nct6683' | sudo tee /etc/modules-load.d/99-sensors.conf
옵션 B: 전체 PWM 팬 제어(nct6687 — 권장)¶
소프트웨어 팬 속도 제어(CoolerControl, 수동 PWM 등)가 필요할 때 사용합니다.
1단계: nct6687 모듈 빌드 및 설치:
2단계: modprobe에서 nct6687 사용 및 nct6683 블랙리스트:
# nct6683 블랙리스트(nct6687과 충돌)
echo 'blacklist nct6683' | sudo tee /etc/modprobe.d/sensors.conf
echo 'options nct6687 force=true' | sudo tee -a /etc/modprobe.d/sensors.conf
# 부팅 시 nct6687 로드
echo 'nct6687' | sudo tee /etc/modules-load.d/99-sensors.conf
한 모듈만 선택
nct6683와 nct6687을 동시에 로드하지 마세요 — 충돌합니다. 사용하지 않는 쪽을 블랙리스트하세요.
Initramfs 재생성¶
Fedora/Bazzite:
Arch/Manjaro:
Debian/Ubuntu:
변경 적용을 위해 재부팅:
재부팅 시 PWM 값 리셋
nct6687 모듈은 재부팅 후 PWM 값을 유지하지 않습니다. CoolerControl, systemd 서비스, 또는 udev 규칙으로 부팅 시 원하는 팬 속도를 설정해야 합니다.
불변 / Atomic 배포판(Bazzite, Silverblue, Fedora CoreOS)¶
atomic/immutable 배포판(Bazzite, Silverblue, Fedora CoreOS, Kinoite)에서는 위 sudo make install이 동작하지 않습니다. 빌드는 성공하지만 복사가 실패합니다:
ostree 이미지에서 /usr/lib/modules는 읽기 전용이므로 모듈은 컴파일되지만 커널 트리에 복사할 수 없습니다. 그래서 이후 modprobe nct6687이 모듈 없음을 보고합니다. 사용 중인 커널에 따라 두 가지 동작 경로가 있습니다.
스톡 Bazzite 커널: Bazzite는 ublue-os/akmods의 akmod로 nct6687d 드라이버를 제공합니다. 2025-01-31에 제거되었고 41.20250314 stable에서 복구되었으므로, 최신 스톡 커널에서는 빌드 없이 로드만 하면 됩니다:
커스텀 BC-250 커널: 사전 빌드 akmod는 스톡 커널 ABI에 묶여 있어 -ogc 등 비스톡 suffix 커널에는 매칭 akmod가 없고 modprobe가 아무것도 찾지 못합니다. 위와 같이 실행 중 커널에 대해 모듈을 빌드한 뒤 설치하지 않고 빌드된 .ko를 직접 로드합니다:
lsmod | grep nct6687 및 sensors로 바인딩 확인.
insmod는 영구적이지 않습니다: 재부팅 후 유지되지 않고, 경로가 uname -r에 묶여 커널 업데이트마다 재빌드해야 합니다. 영구 적용은 빌드된 .ko를 /var 아래 쓰기 가능 위치에 보관하고 부팅 시 systemd oneshot 서비스로 로드:
# /etc/systemd/system/nct6687-load.service
[Unit]
Description=Load nct6687 SuperIO sensor module
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/insmod /var/lib/nct6687/nct6687.ko force=1
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
모듈을 복사하고 서비스 활성화:
sudo mkdir -p /var/lib/nct6687
sudo cp ./"$(uname -r)"/nct6687.ko /var/lib/nct6687/
sudo systemctl enable nct6687-load.service
커널 업데이트마다 .ko 재빌드 및 재복사를 기억하세요. 수동 설정이 번거롭면 NeOdYmS/bazzite-bc250-toolkit이 BC-250 Bazzite에서 nct6683→nct6687 전환을 자동화합니다.
lm-sensors 사용¶
설치¶
Fedora/Bazzite:
Arch/Manjaro:
Debian/Ubuntu:
센서 감지¶
감지 유틸리티 실행(모든 프롬프트에 YES):
사용 가능한 모든 센서를 스캔하고 자동 구성합니다.
센서 데이터 읽기¶
모든 센서 읽기 보기:
예상 출력¶
출력은 로드한 Super I/O 모듈에 따라 다릅니다.
nct6687 모듈(권장 — PWM 팬 제어 가능):
amdgpu-pci-0100
Adapter: PCI adapter
vddgfx: 699.00 mV
vddnb: 1.10 V
edge: +46.0°C
PPT: 38.01 W (avg = 40.25 W)
nvme-pci-0300
Adapter: PCI adapter
Composite: +38.9°C (low = -0.1°C, high = +82.8°C)
(crit = +84.8°C)
Sensor 1: +38.9°C (low = -273.1°C, high = +65261.8°C)
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +47.9°C
nct6686-isa-0a20
Adapter: ISA adapter
+12V: 0.00 V (min = +0.00 V, max = +0.00 V)
+5V: 0.00 V (min = +0.00 V, max = +0.00 V)
+3.3V: 3.36 V (min = +0.00 V, max = +3.36 V)
CPU Soc: 0.00 V (min = +0.00 V, max = +0.00 V)
CPU Vcore: 0.00 V (min = +0.00 V, max = +0.00 V)
CPU Fan: 0 RPM (min = 0 RPM, max = 0 RPM)
Pump Fan: 1907 RPM (min = 1866 RPM, max = 1907 RPM)
System Fan #1: 0 RPM (min = 0 RPM, max = 0 RPM)
...
CPU: +47.0°C (low = +35.0°C, high = +47.0°C)
System: +42.5°C (low = +20.0°C, high = +42.5°C)
VRM MOS: +42.0°C (low = +20.0°C, high = +42.0°C)
nct6683 모듈(읽기 전용, 팬 제어 없음):
nct6686-isa-0a20
Adapter: ISA adapter
VIN0: 832.00 mV (min = +0.00 V, max = +0.00 V)
...
fan1: 0 RPM (min = 0 RPM)
fan2: 1372 RPM (min = 0 RPM)
...
AMD TSI Addr 98h: +63.0°C ... sensor = AMD AMDSI
Thermistor 14: +57.5°C ... sensor = thermistor
Thermistor 15: +57.0°C ... sensor = thermistor
모듈에 따라 센서 이름이 다름
두 모듈 모두 nct6686-isa-0a20으로 보고되지만, nct6687은 이름 있는 라벨(CPU Fan, Pump Fan, CPU Soc 등)을, nct6683은 일반 이름(VIN0, fan1, Thermistor 14 등)을 표시합니다.
센서 이해¶
GPU 센서 (amdgpu-pci-0100):
- vddgfx — GPU 코어 전압
- vddnb — Northbridge/메모리 전압
- edge — GPU edge 온도(주 GPU 온도)
- PPT — Package Power Tracking(GPU 전력 소비, 와트)
CPU 센서 (k10temp-pci-00c3):
- Tctl — CPU 온도(Zen 2 control temperature)
SuperIO 센서 (nct6686-isa-0a20):
nct6687 모듈:
+12V,+5V,+3.3V,CPU Soc,CPU Vcore등 — 이름 있는 전압 레일CPU Fan,Pump Fan,System Fan #1-6— 이름 있는 팬 속도 모니터링(RPM), 최대 8채널CPU,System,VRM MOS— 이름 있는 온도 센서
nct6683 모듈:
VIN0-VIN16— 전압 레일(일반 이름)fan1-fan5— 팬 속도 모니터링(RPM)AMD TSI Addr 98h— AMD Temperature Sensor Interface(CPU 온도)Thermistor 14/15— 보드 온도 센서
실시간 센서 감시¶
센서 변경을 연속 모니터링:
매초 업데이트됩니다. Ctrl+C로 종료.
GPU 온도 모니터링¶
AMDGPU Sysfs 사용¶
GPU 온도를 직접 읽기:
밀리도 단위로 반환(예: 63000 = 63°C)
센티그레이드로 변환:
GPU 전력 소비¶
현재 GPU 전력 draw 읽기:
마이크로와트로 반환. 와트로 변환:
GPU 클럭 속도¶
현재 GPU 주파수 확인:
예시 출력:
별표(*)는 현재 활성 클럭 속도입니다.
팬 속도 모니터링 및 제어¶
팬 속도 보기¶
sensors 출력에서 nct6686-isa-0a20 섹션 확인:
BC-250 팬 헤더¶
보드에는 두 개의 물리 팬 헤더가 있습니다: J1(기본) 및 J4003(보조).
Super I/O 칩은 소프트웨어에서 최대 8개 팬 채널을 노출하지만, 연결된 헤더만 RPM을 표시합니다:
- 메인 쿨링 팬은 보통 **Pump Fan**으로 읽힘(
nct6687출력의 fan2, 또는nct6683출력의 fan2) - 연결되지 않은 채널은 0 RPM
BIOS 팬 제어 설정¶
BC-250 BIOS에는 세 가지 팬 제어 모드가 있습니다:
- Default — 최소 팬 속도로 보드 최대 안전 온도 유지 시도(권장하지 않음 — 너무 뜨겁게 동작)
- Full Speed — 팬 100% 상시(테스트 및 최대 쿨링에 권장)
- Customize — BIOS에서 사용자 정의 온도/팬 속도 곡선
권장: 초기 테스트 및 게이밍에는 "Full Speed" 모드. 안정 후 CoolerControl로 더 조용한 동작 가능.
PWM으로 수동 팬 제어¶
nct6687 모듈 필요
PWM 팬 제어에는 nct6687 모듈이 필요합니다. in-kernel nct6683은 읽기 전용이며 PWM 값을 설정할 수 없습니다.
사용 가능한 PWM 제어 확인:
수동으로 팬 속도 설정(값 0–255, 255 = 100%):
# nct6686용 hwmon 찾기
HWMON=$(grep -l nct6686 /sys/class/hwmon/hwmon*/name | head -1 | xargs dirname)
# PWM 설정(0=off, 127=50%, 255=100%)
echo 80 | sudo tee $HWMON/pwm2
재부팅 시 PWM 리셋
수동 설정 PWM 값은 재부팅 후 유지되지 않습니다. CoolerControl 또는 systemd 서비스로 부팅 시 팬 속도를 설정하세요.
CoolerControl — 센서 모니터링 및 팬 곡선 GUI¶
CoolerControl은 다음을 제공하는 GUI 애플리케이션입니다:
- 실시간 센서 모니터링
- 임의 온도 센서 기반 사용자 정의 팬 곡선
- 온도 이력 그래프
- 팬 속도 제어
Bazzite 설치¶
Bazzite에는 CoolerControl용 내장 recipe가 있습니다:
다음을 수행합니다:
1. Terra 저장소 활성화
2. liquidctl 및 coolercontrol 설치
3. 적용을 위해 재부팅 필요
재부팅 후 CoolerControl 시작:
Fedora 설치¶
Terra 저장소 활성화:
CoolerControl 설치:
Arch/Manjaro 설치¶
AUR에서 설치:
또는:
CoolerControl 사용¶
- 애플리케이션 메뉴 또는 터미널에서 CoolerControl 실행
- 감지된 모든 센서와 팬이 표시됩니다
- 팬을 클릭하여 사용자 정의 곡선 생성
- 곡선 기준 온도 센서 선택(예: GPU edge temp)
- 곡선 점을 드래그하여 온도별 팬 속도 설정
예시 팬 곡선: - 40°C: 팬 속도 30% - 60°C: 팬 속도 50% - 70°C: 팬 속도 75% - 80°C: 팬 속도 100%
Governor와 주파수 및 온도 확인¶
Discord 커뮤니티 권장:
데스크톱 모드:
게임 모드(Steam Deck UI): - Quick Settings에서 Steam 오버레이 성능 모니터링 활성화
다른 모니터링 도구¶
nvtop — GPU 활동 모니터¶
nvtop은 GPU용 htop입니다. 터미널 UI에서 GPU 사용률, VRAM 사용량, 온도, 전력 소비를 표시합니다.
설치:
Fedora/Bazzite:
Arch/Manjaro:
Debian/Ubuntu:
사용법:
q로 종료.
radeontop — AMD GPU 모니터¶
AMD GPU 전용 대안 GPU 모니터링 도구.
설치:
Fedora/Bazzite:
Arch/Manjaro:
Debian/Ubuntu:
사용법:
q로 종료.
MangoHud — 게임 내 오버레이¶
MangoHud는 FPS, GPU/CPU 온도, 사용률 등을 보여주는 게임 내 오버레이를 제공합니다.
설치:
Fedora/Bazzite:
Arch/Manjaro:
Debian/Ubuntu:
사용법:
MangoHud로 게임 실행:
Steam 게임은 실행 옵션에 추가:
설정:
~/.config/MangoHud/MangoHud.conf 생성:
fps_limit=60
vsync=0
gpu_temp
cpu_temp
gpu_power
cpu_power
ram
vram
fps
frametime=0
frame_timing=1
position=top-left
font_size=24
온도 임계값 및 안전 동작 범위¶
정상 동작 온도¶
유휴(데스크톱/가벼운 사용): - GPU: 45–55°C - CPU: 45–55°C - 전력: 50–70W
게이밍/고부하: - GPU: 70–85°C - CPU: 65–80°C - 전력: 150–235W(Cyberpunk + RT 시 최대 235W)
최대 안전 온도¶
- GPU edge temp: 권장 최대 85°C(일시적으로 90°C까지 가능)
- CPU (Tctl): 최대 90°C
- NVMe SSD: 최대 80°C(스펙상 critical 81.8°C)
온도 경고 징후¶
다음 증상이 보이면 쿨링이 부족합니다:
- 게이밍 중 GPU가 지속적으로 85°C 이상
- 급격한 FPS 하락 또는 스터터링(열 스로틀)
- 부하 시 시스템 크래시
- GPU governor가 열 관리를 위해 주파수 감소
쿨링 개선¶
온도가 너무 높으면:
- 팬 속도 확인 — 팬이 적절한 RPM으로 동작하는지
- 서멀 페이스트 확인 — 오래되었거나 건조했으면 재도포
- 팬 속도 증가 — BIOS "Full Speed" 또는 CoolerControl
- 공기 흐름 개선 — 팬 추가 또는 히트싱크 핀 절단으로 공기 침투 개선
- 먼지 확인 — 히트싱크 핀 먼지 제거
- 열 패드 확인 — GDDR6 메모리 칩 접촉 확인
커뮤니티 쿨링 데이터¶
Discord 테스트:
- Arctic P12 Max + 핀 절단: 게이밍 70–85°C, 벤치마크 86°C
- Noctua NF-A12x25 + 핀 절단: 게이밍 65–80°C
- 팬 shroud 스톡 히트싱크: 게이밍 80–90°C(열 한계 도달)
- Wraith Stealth + thermal putty: 180W 채굴/LLM 워크로드 ~70°C
센서 문제 해결¶
sensors 명령 출력 없음¶
문제: sensors 실행 시 아무것도 또는 매우 제한된 데이터만 표시.
해결 방법:
-
센서 감지 실행:
-
NCT6683 모듈 로드 확인:
-
모듈 로드 여부 확인:
-
lm-sensors 설치 확인:
센서 모듈 로드 실패¶
문제: modprobe nct6683 force=true 또는 modprobe nct6687 force=true 실패.
해결 방법:
-
커널 버전 확인(6.11+ 필요):
-
dmesg 오류 확인:
-
모듈 충돌 없이 한 번에 하나만 로드:
-
nct6687은 배포판에 패키지가 없으면 소스 빌드 필요:
atomic/immutable 배포판에서는 커널 트리가 읽기 전용이라git clone https://github.com/Fred78290/nct6687d.git cd nct6687d && make && sudo make install sudo modprobe nct6687 force=truemake install실패. 위 불변 / Atomic 배포판 하위 섹션 참고.
nct6683 vs nct6687
nct6683는 읽기 전용(온도, 전압, 팬 속도). nct6687은 PWM 팬 제어 포함 전체 읽기+쓰기. 팬 곡선 및 수동 속도 제어에는 nct6687 필요.
GPU 온도 미표시¶
문제: sensors 출력에 GPU 온도 없음.
해결 방법:
-
amdgpu 드라이버 로드 확인:
-
GPU 감지 확인:
-
amdgpu sysfs 직접 확인:
-
Mesa 25.1+ 설치 확인:
팬 속도 0 RPM 표시¶
문제: 팬이 돌아가는데도 모든 팬이 0 RPM.
가능한 원인:
- 모니터링 헤더에 팬 미연결 — BC-250은 보통 fan2 헤더만 사용
- PWM 헤더에 3핀 팬 — 일부 팬은 속도 보고 안 함
- 팬 splitter — tachometer 신호가 전달되지 않을 수 있음
- BIOS 팬 설정 — BIOS에서 팬 모드 변경 시도
확인:
팬 소리/바람이 느껴지면 센서가 0 RPM이어도 동작 중입니다. GPU 온도로 쿨링 효과를 확인하세요.
전력 소비가 이상함¶
문제: sensors가 매우 낮거나 0 전력 소비 표시.
해결 방법:
- 전력 읽기는 느리게 업데이트 — 10–30초 대기
- Kill-A-Watt 또는 스마트 플러그로 정확한 벽면 전력 측정
sensors의 GPU 전력은 GPU 칩 전력만, 전체 시스템 전력 아님- 전체 시스템 전력 = GPU + CPU + RAM + 보드 + PSU 비효율
예: - GPU PPT: 150W - 벽면 전체 시스템 전력: 180–200W
고급: 모니터링 스크립트¶
온도 로깅 스크립트¶
~/monitor-temps.sh로 저장:
#!/bin/bash
# BC-250 온도 모니터
# GPU temp, CPU temp, 전력을 파일에 로깅
LOGFILE="$HOME/bc250-temps.log"
echo "Timestamp,GPU_Temp,CPU_Temp,GPU_Power" > "$LOGFILE"
while true; do
TIMESTAMP=$(date +%s)
GPU_TEMP=$(cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input 2>/dev/null | awk '{print $1/1000}')
CPU_TEMP=$(sensors k10temp-pci-00c3 -u 2>/dev/null | grep temp1_input | awk '{print $2}')
GPU_POWER=$(cat /sys/class/drm/card0/device/hwmon/hwmon*/power1_average 2>/dev/null | awk '{print $1/1000000}')
echo "$TIMESTAMP,$GPU_TEMP,$CPU_TEMP,$GPU_POWER" >> "$LOGFILE"
sleep 5
done
실행 가능하게:
실행:
온도 알림 스크립트¶
~/temp-alert.sh로 저장:
#!/bin/bash
# GPU 온도가 임계값 초과 시 알림
THRESHOLD=85
while true; do
GPU_TEMP=$(cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input 2>/dev/null | awk '{print $1/1000}')
if (( $(echo "$GPU_TEMP > $THRESHOLD" | bc -l) )); then
notify-send -u critical "BC-250 Temperature Alert" "GPU temp: ${GPU_TEMP}°C (threshold: ${THRESHOLD}°C)"
fi
sleep 10
done
빠른 참조¶
필수 명령¶
# 모든 센서 보기
sensors
# 실시간 센서 감시
watch -n 1 sensors
# GPU 온도만
cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input | awk '{print $1/1000 "°C"}'
# GPU 전력 소비
cat /sys/class/drm/card0/device/hwmon/hwmon*/power1_average | awk '{print $1/1000000 "W"}'
# GPU 클럭 속도
cat /sys/class/drm/card0/device/pp_dpm_sclk
# nvtop 실행
nvtop
# radeontop 실행
radeontop
온도 목표¶
| 조건 | GPU 온도 | CPU 온도 | 전력 소모 |
|---|---|---|---|
| 유휴 | 45–55°C | 45–55°C | 50–70W |
| 가벼운 게이밍 | 60–75°C | 55–70°C | 100–150W |
| 고부하 게이밍 | 70–85°C | 65–80°C | 150–200W |
| 스트레스 테스트 | 80–86°C | 75–85°C | 200–235W |
쿨링 솔루션 성능¶
| 구성 | 유휴 온도 | 부하 온도 | 메모 |
|---|---|---|---|
| Arctic P12 Max (핀 절단) | 49°C | 70–86°C | 최고 성능 |
| Noctua NF-A12x25 (핀 절단) | 47–52°C | 65–80°C | 더 조용, 우수 쿨링 |
| 단일 120mm (핀 절단) | 55°C | 80–90°C | 대부분 게임에 적절 |
| shroud 스톡 | 60°C | 85–90°C | 한계선, 스로틀 가능 |
관련 문서¶
- GPU Governor — GPU 주파수 스케일링 및 전원 관리 구성
- 성능 튜닝 — 시스템 성능 최적화
- 하드웨어 개요 — BC-250 사양 및 쿨링 요구사항
- 문제 해결 — 열 및 안정성 문제 해결
최종 업데이트: 2026년 3월 18일