Power management/Guide/ko

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Power management/Guide and the translation is 79% complete.
Outdated translations are marked like this.


최근 몇 년간, 전원 관리 기능은 완벽한 랩톱을 추구하기 위한 과제로서 차별화된 기능이 됐습니다. 아직까지는 운영체제에서 다양한 전원 관리 기능을 지원해야합니다. 이 안내서에서 젠투 설치 과정에서 전원이 부족한 자원을 자동화된 방식으로 유연하게 설정하는 방법을 다루겠습니다.

Article status
This article has some todo items:
  • Add instructions for kernel configuration of remaining CPU frequency drivers

도입부

이 문서 정보

이 문서는 랩톱의 전원 관리 기능을 다룹니다. 비록 이 안내서에서 다루는 내용의 일부가 서버의 전원관리에 적용할 수 있긴 하지만, 그런 용도로 문서를 작성한건 아닙니다. 랩톱이 아닌 시스템에 적용할 때는 주의를 기울이십시오.

이 문서의 주된 목적은 완벽한 기능을 제공하는 랩톱 모드 도구를 갖추는 것입니다. 그러나 우리는 개별 설정에 있어 더 자세한 관점으로 접근하려 다른 도구도 참고합니다. 각각의 경우, 랩톱 모드 도구에서 기능을 비활성화하여 동일한 자원을 다루는 문제에 있어 각 도구가 문제를 일으키지 않게 해야합니다.

laptop_mode 란

laptop_mode 설정은 디스크의 회전수 속성을 줄여(그리고 대기중인 작업을 처리한 후 바로 동작 상태로 복귀하지 않음) 입출력을 최적화하는 커널 설정입니다.

laptop-mode-tools 란

Laptop Mode Tools는 사용자로 하여금 전원 절약 기능을 최적화하는 프로그램 꾸러미(app-laptop/laptop-mode-tools) 입니다. 커널에서 laptop_mode 설정을 관리할 수 있지만, 시스템의 다른 전원 관련 설정을 조절할 수도 있습니다.

리눅스 커널 설정

최소한의 커널 설정

포티지에는 제각기 다른 커널 소스 코드가 존재합니다. sys-kernel/gentoo-sources 사용을 추천합니다만, 고급 최대 절전 기능을 사용한다면 sys-kernel/tuxonice-sources 커널이 필요합니다. 적당한 전원 관리 기능을 리눅스 커널에서 활성화하려면, 다음 설정을 활성화하십시오:

To enable proper power management features in the Linux kernel, enable the following settings:

커널 전원 관리용 최소 커널 설정
'"`UNIQ--pre-00000004-QINU`"'

CPU 주파수 조절 드라이버 활성화를 잊지 마십시오. 샌디 브릿지 이상의 인텔 코어 시리즈 프로세서에서는 userspace, ondemand, conservative 정책은 불필요합니다. 기본적으로 "performance"로 선택해야 하며, ACPI Processor P-States driver 대신 Intel P state control을 선택해야합니다[1].

In this case, the userspace, ondemand, and conservative governors are unnecessary. The performance governor should be selected as the default. [2]

커널 Kernel setup for Intel Sandy Bridge and newer processors
Power management and ACPI options --->
  -*- Device power management core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
  
  [*] CPU Frequency scaling --->
        Default CPUFreq governor (performance)  --->
    -*- 'performance' governor
    <*> Intel P state control

Enabling additional drivers

For Intel processors used in laptops since 2011 you may want to enable additional advanced features - Thermal and powercap sysfs.

Thermal sysfs driver

커널 Generic Thermal sysfs driver
Device Drivers --->
  -*- Generic Thermal sysfs driver --->
    (0)   Emergency poweroff delay in milli-seconds                                                                              
    [*]   Expose thermal sensors as hwmon device                                                                                
    -*-   Enable writable trip points                                                                                          
          Default Thermal governor (step_wise)  --->                                                                           
    [*]   Fair-share thermal governor                                                                                           
    -*-   Step_wise thermal governor                                                                                            
    -*-   Bang Bang thermal governor                                                                                            
    -*-   User_space thermal governor                                                                                           
    [ ]   Thermal emulation mode support
    [*]   Power allocator thermal governor   
    <M>   Intel PowerClamp idle injection driver
    <M>   X86 package temperature thermal driver
    < >   Intel SoCs DTS thermal driver                                                                                          
          ACPI INT340X thermal drivers  --->                                                                                     
             <M> ACPI INT340X thermal drivers
    <M>   Intel PCH Thermal Reporting Driver

powercap sysfs driver

Additionally, you can enable Running Average Power Limit – RAPL technology. Both PowerTOP and turbostat utilities are aware of RAPL. For RAPL enablement use:

커널 Generic powercap sysfs driver
Device Drivers --->
  [*] Generic powercap sysfs driver --->
    <M>   Intel RAPL Support

To make use of Intel's Linux thermal daemon you first need to emerge sys-power/thermald and enable it via:

root #rc-config add thermald

or

root #systemctl enable thermald
참고
dptfxtract from Intel may be used to auto generate a thermald.conf.xml for the system.

더 자세한 설명은 Power_management/Processor/ko#커널 부분을 살펴보십시오.

(필요한 경우) 새 커널을 빌드하고 설치한 다음, 다시 부팅하십시오.

랩톱 모드 도구 사용

설치

Laptop mode tools 프로그램 설치를 다음 명령 한방에 끝낸다는게 그리 놀랄 일은 아닙니다:

root #emerge --ask app-laptop/laptop-mode-tools

그러나, 이 꾸러미에는 USE 플래그 설정 단계를 통해 추가 설정을 진행해야 합니다. 따라서 지원 USE 플래그를 우선 살펴보신 후, 해당 플래그가 꾸러미에서 어떤 의미를 담고 있는지 알아보도록 하겠습니다.

USE 플래그 설명 제안 이유
acpi sys-power/acpid에 의존하기 때문에 시스템에서 이 플래그의 상태를 바꾸면 전원 관리 기능을 자동으로 활성/비활성화합니다. 그리 오래되지 않은 랩톱(2003년도 이후 무렵 생산한 모델).
apm sys-apps/apmd에 의존하기 때문에 시스템에서 이 플래그의 상태를 바꾸면 전원 관리 기능을 자동으로 활성/비활성화합니다. 상당히 오래된 랩톱.
bluetooth laptop-mode-tools에서 블루투스 설정을 관리하는 net-wireless/bluez에 의존합니다(배터리 가용성에 따라 서비스를 활성/비활성화합니다). 블루투스를 지원하는 랩톱(과 커널)
scsi laptop-mode-tools가 SCSI(SATA 아님) 디스크 매개변수를 관리하도록 하는 sys-apps/sdparm에 의존합니다. SCSI 디스크를 사용하는 랩톱
acpiapm, 두 개의 USE 플래그가 중복되는 것 같이 보입니다. 어떻게 할까요? 
  • apm USE 플래그는 시스템에 (2000년도 이전의) 오래된 표준 전원 관리 기능인 Advanced Power Management을 활성화합니다.
  • acpi USE 플래그는 APM의 후속 기능인 Advanced Configuration and Power Interface를 활성화합니다. 모든 최신 랩톱에서 ACPI 기능을 지원합니다.

시스템에 따라 acpi 또는 apm를 설정해야 합니다. 이 안내서의 나머지 부분에서는, 독자 여러분의 랩톱이 최근 널리 사용하는 ACPI를 사용한다고 가정하겠습니다.

자, 이 USE 플래그를 설정하고 나면, app-laptop/laptop-mode-tools를 설치하십시오:

root #emerge --ask app-laptop/laptop-mode-tools

설정

app-laptop/laptop-mode-tools를 시스템에 설치하고 나면 필요할 지도 모르는 전원 관리 기능이 자동으로 활성화되지 않습니다. 이 꾸러미를 설정하려면 우선 /etc/laptop-mode/laptop-mode.conf 를 살펴보십시오. 이 파일은 꾸러미의 주 설정 파일이며, 설명이 (주석으로) 상당히 잘 달려있습니다.

이 파일만 설정 파일이 아닙니다. laptop-mode-tools 꾸러미에는 자체 설정 파일을 보유한 여러 플러그인(또는 모듈)을 지원합니다. 이 파일은 /etc/laptop-mode/conf.d 디렉터리에 있으며, 플러그인(또는 모듈)으로 나타나는 이름(예: intel-sata-powermgmt.conf)이 붙어있습니다.

이제, 각각의 설정 파일에서 중요한 설정 부분은 laptop-mode-tools 꾸러미가 각 설정을 관리할 지 말 지 여부입니다. laptop-mode-tools 를 cpufreqd 같은 다른 서비스와 함께 운영할 경우 중요한데 이 경우 CONTROL_CPU_FREQUENCY=0와(과) 같이 설정해야 합니다:

파일 /etc/laptop-mode/conf.d/cpufreq.conf
CONTROL_CPU_FREQUENCY=0

다음 일부 장에서 laptop-mode-tools를 요구사항에 맞춰나가는 과정을 도와드리겠습니다. 과정이 끝나면 laptop_mode 서비스를 시작하고 시스템을 부팅했을 때 서비스를 시작했는지 확인하겠습니다.

OpenRC 에서는:

root #rc-service laptop_mode start
root #rc-update add laptop_mode default

systemd 에서는:

root #systemctl laptop-mode.service enable --now

laptop-mode-tools 동작 방식

laptop_mode 서비스를 실행할 때, 프로그램에서는 시스템이 어떤 상태인지 점검합니다. 이 상태는 다음과 같이 정의합니다:

  • Battery, 시스템이 배터리 전원 기반으로 동작 중일 경우 활성화됩니다. 이 상태와 관련된 설정 파일의 설정은 BATT_로 시작하는 변수를 지닙니다.
  • AC, 시스템이 어댑터 전원 기반으로 동작 중일 경우 활성화됩니다. 이 상태와 관련된 설정 파일의 설정은 AC_로 시작하는 변수를 지닙니다.
  • Laptop Mode, laptop mode를 활성화했을 때 활성화됩니다. 이 상태와 관련된 설정 파일의 설정은 LM_로 시작하는 변수를 지닙니다.
  • No Laptop Mode, laptop mode를 비활성화했을 때 활성화됩니다. 이 상태와 관련된 설정 파일의 설정언 NOLM_로 시작하는 변수를 지닙니다.
AC/BATT_LM/NOLM_ 접두부는 함께 사용할 수 있습니다(따라서 AC_LM_ 접두부처럼 사용할 수 있습니다). 

laptop_mode 서비스를 시작하면, 시스템 이벤트를 기반으로 상태를 전환합니다(그리고 물론 설정을 기반으로 전환하기도 합니다). 예를 들어, ENABLE_LAPTOP_MODE_ON_BATTERY=1 설정은 배터리 전원을 사용하는 경우 랩톱 모드 도구에서는 laptop mode로 전환했는지 확인합니다. 이 경우 LM_, LM_BATT_, BATT_LM_, BATT_로 시작하는 변수를 활용합니다.

설정에 문제가 없는지 확인하려는 목적으로, 설정을 중복 우선 적용할 수 없습니다. 다음 예제에서 첫번째 설정 (CPU_MAXFREQ)은 유효하지만, 두번째 설정은(CPU_GOVERNOR) 그렇지 않습니다.

코드 설정 중복
## Valid set
BATT_CPU_MAXFREQ=fastest
LM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MAXFREQ=fastest
  
## Invalid set
BATT_CPU_MINFREQ=fastest
LM_AC_CPU_MINFREQ=fastest
# The following includes AC and BATT, but BATT is already defined
NOLM_CPU_MINFREQ=fastest

CPU 주파수 관리 설정

랩톱 모드 도구의 CPU 주파수 관리 지원 기능은 주파수 전환이 가능합니다. 최소 주파수 부터 최대 주파수까지 다루는 CPU 주파수 정책을 설정 기능을 지원합니다. 여기서 활용하는 설정 파일은 /etc/laptop-mode/conf.d/cpufreq.conf입니다.

CPU frequency governor는 커널에서 CPU 주파수를 선택하는 방법을 정의하는 커널 수준 정책입니다. 이미 커널 설정에서 우리가 사용하고자 하는 정책을 선택했습니다. 다시 살펴봅시다:

  • performance는 항상 최상의 주파수를 유지합니다
  • powersave는 항상 최하의 주파수를 유지합니다.
  • userspace는 어떤 주파수든 허용하되 사용자의 결정에 맏깁니다(또는 사용자의 결정에 따라 실행하는 프로세스가 결정합니다)
  • ondemand는 CPU에 부하가 걸린 경우 CPU 주파수를 최상의 주파수로 끌어올립니다.
  • conservative는 CPU에 부하가 걸린 경우 점진적으로 CPU 주파수를 끌어올립니다.

AC 또는 배터리 전원간 상호 전환할때, 또는 랩톱 모드 이(거나 아니)ㄹ때, 적당한 정책(최소 및 최대 주파수와 같이)을 선택합니다.

화면 밝기 설정

/etc/laptop-mode/conf.d/lcd-brightness.conf 설정 파일로 랩톱 모드 도구에서 LCD 화면 밝기를 관리할 수 있습니다.

현재 밝기 조절에 사용하는 파일은 /proc/acpi/video/VID/LCD/brightness 파일(bug 499544)입니다. 최근 커널에서는 더이상 이 파일에서의 조절 기능을 지원하지 않습니다. 대신 /sys/class/backlight/acpi_video0/brightness 파일에서 밝기 조절을 해야합니다.

설정 가능한 값은 0부터 /sys/class/backlight/acpi_video0/max_brightness 파일에 있는 값입니다. 0은 밝기 값 중 제일 낮은 값입니다.

기타 서비스 설정

laptop-mode-tools의 흥미로운 기능 중 하나는 설정 파일을 바꾸고 나면 (시스템 로거 같은) 각 서비스에 대해 다시 불러오기를 지원한다는 점입니다. 이 기능은 /etc/laptop-mode/conf.d/configuration-file-control.conf에서 처리할 수 있습니다.

활성화했다면, laptop_mode 프로그램에서 언급한 서비스의 설정 파일을 동일 파일로 대체합니다만 해당 파일에는 -nolm-ac, -lm-ac, -batt 이름이 뒤에 붙습니다. 그 다음 데이터나 신호 따위를 보내거나 적당한 서비스를 다시 불러와서 해당 서비스가 새 설정 파일을 사용할 수 있게 합니다.

cpugreqd 사용하기

경고
sys-power/cpufreqd 꾸러미는 오래되어 포티지 트리에서 삭제했습니다. sys-power/ncpufreqd 꾸러미는 지금도 2.6.x 커널용으로 활용할 수 있습니다.

설치

cpufreqd 프로그램에서는 laptop-mode-tools 에서 지원하는 기능보다 더욱 점진적인 방식으로 CPU 주파수를 관리할 수 있습니다. 하지만 cpufreqd를 설치하기 전에 cpufreqd가 지원하는 USE 플래그를 확인해보겠습니다.

USE 플래그 설명 제안 이유
acpi ACPI 인터페이스를 통해 전원 정책과 같은 특정 이벤트를 cpufreqd에서 받아볼 수 있도록 ACPI 지원 기능을 활성화합니다 랩톱이 그리 오래되지 않았을 경우(2003년 이후 모델)
apm APM 인터페이스를 통해 전원 정책과 같은 특정 이벤트를 cpufreqd에서 받아볼 수 있도록 APM 지원 기능을 활성화합니다 오래된 랩톱
lm_sensors 하드웨어 센서 데이터를 기반으로 프로파일을 전환할 수 있도록 (sys-apps/lm_sensors를 통한) 리눅스 하드웨어 센서 지원기능을 활성화합니다 lm_sensors를 통해 고급 이벤트를 활용하는 경우
nforce2 NForce의 FSB 클록과 비디오 카드 주파수를 조절할 수 있도록 NForce 전원 관리 기능을 활성화합니다 NForce 칩셋을 장착한 NVidia 그래픽 카드가 있는 경우
nvidia cpufreqd 에서 NVidia 그래픽 카드의 비디오 카드 주파수를 조절할 수 있도록 (nvclock 인터페이스로) NVidia 그래픽 카드 설정을 활성화합니다 NVidia 그래픽 카드가 있는 경우
pmu cpufreqd의 전원 관리 유닛을 활성화합니다. 리눅스 커널 전원부 인터페이스를 프로그램에서 폴링하여 배터리 충전히 자세한 정보를 가져옵니다. ACPI또는 APM 둘 중 그 어느 기능도 지원하지 않는 랩톱

acpi, apm, pmu USE 플래그가 겹치므로 이 중 하나만 활성화해야 합니다. 랩톱이 충분히 최근 모델이라면 acpi 가 가장 좋습니다. 그렇지 않다면 apm가 필요한 모든 기능을 제공합니다. APM을 지원하지 않으면 pmu를 사용해보십시오.

USE 플래그를 설정했으면 cpufreqd를 설치할 시간입니다.

root #emerge --ask sys-power/ncpufreqd

설정

cpufreqd 프로그램은 다양한 플러그인을 통해 시스템의 상태를 감시하는 프로그램입니다. 피드백 기반으로 이들 플러그인의 데이터를 받아 CPU 주파수 정책을 조절합니다.

cpufreqd에서는 /etc/cpufreqd.conf 설정을 편집할 수 있습니다. 다음 세가지 각각의 섹션이 들어있습니다:

  1. [General]...[/General] 섹션은 일반 설정 정보가 들어있습니다
  2. [Profile]...[/Profile] 섹션은 cpufreqd 데몬이 전환할 수 있는 정책을 정의합니다. 이 섹션에서 다루는 설정은 cpufreq-set을 활용하여 CPU 주파수 정책을 직접 설정할 때 사용하는 정보와 매우 유사합니다.
  3. [Rule]...[/Rule] 섹션은 cpufreqd 데몬에서 다른 프로파일로 전환하기로 결정했을때 도움을 주는 충실한 보조 요소입니다.

예제 규칙을 간단하게 살펴보겠습니다.

파일 /etc/cpufreqd.confcpufreqd 규칙 예제
[...]
  
[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]
  
[Rule]
name=AC Off - High Power
ac=off
battery_interval=70-100
profile=On Demand High
[/Rule]
  
[...]

위 예제에서 cpufreqOn Demand High 프로파일(그리고 상단 인용에서 보인 바와 같이)로 시스템 상태를 전환합니다. 이 프로파일은 자체적으로 요청에 따라 최소한 40%의 주파수로 프로세서를 구동하는 전원 관리 정책을 활용합니다(2 GHz CPU라면 최소 주파수가 800MHz가 됩니다).

cpufreqd 프로그램에서 CPU 주파수 조절에 대해 좀 더 세밀한 접근 방식을 제공할 수 있습니다. 다만, 이 말고도 다양한 기준을 기반으로 CPU 주파수 스케일링 설정을 조절할 수 있습니다. 기본 설정은 (CPU 온도가 상당히 높아지지 않기까지) 영화를 볼 때 최대 성능이 필요한 정도의 설정 입니다.

cpufreqd를 설정했다면 이제 시작하십시오(그리고 서비스를 자동으로 불러왔는지 확인하십시오). 다른 도구(예, laptop-mode-tools)에서의 CPU 주파수 조절 처리를 비활성화했는지 확인하십시오!

root #rc-update add cpufreqd default
root #/etc/init.d/cpufreqd start

추가 참조

외부 자료

  • Laptop Mode Tools Homepage, includes About laptop mode.
  • PowerTOP, an interactive application helping users to find out which processes are forcing wakeups on the CPU most often.
  • A ThinkWiki article on How to reduce power consumption (on Linux). This article offers an exhaustive list of measures one can take. However, it should be noted that the laptop mode tools implements the majority of these (if properly configured).

참고 자료

  1. Dominik Brodowski. Intel P-State driver, CPU frequency and voltage scaling code in the Linux(TM) kernel. Retrieved 12 June 2016.
  2. Dominik Brodowski. Intel P-State driver, [https://www.kernel.org /doc/Documentation/cpu-freq/index.txt CPU frequency and voltage scaling code in the Linux(TM) kernel]. Retrieved 12 June 2016.