저전력 시스템 설정은 임베디드 시스템에서 매우 중요한 주제이다. Yocto 프로젝트에는 저전력 시스템을 효과적으로 설정하고 관리할 수 있는 다양한 도구와 기법이 포함되어 있다. 이 섹션에서는 저전력 시스템을 설정하는 방법에 대해 다루겠다.

전원 관리 기본 설정

저전력 시스템 설정의 첫 번째 단계는 전원 관리를 위한 기본 설정을 확인하고 조정하는 것이다. CONFIG_PM은 전원 관리를 위한 커널 설정이다.

커널 구성
bitbake -c menuconfig virtual/kernel

메뉴 구성에서 다음 설정을 활성화해야한다.

디바이스 트리 설정

전원 관리와 관련된 일부 설정은 디바이스 트리에서 처리해야 한다. 이를 위해 디바이스 트리 파일을 수정하여 필요한 전원 관리 속성을 추가한다.

예제 코드:

&cpu0 {
    operating-points = <
        /* kHz    uV */
        1000000 1100000
        800000  1000000
    >;
    clock-latency = <300000>; /* unit: nanoseconds */
};

전력 효율적인 소프트웨어 구성

전력 효율성을 극대화하기 위해 소프트웨어 구성도 중요하다. 다음은 소프트웨어 측면에서 고려해야 할 사항들이다.

사용자 공간 전원 관리 도구

전원 관리 도구들은 런타임 동안 전력 소비를 제어하는 데 도움이 된다.

자동화된 전력 관리 스크립트

사용자 공간에서 자동화된 스크립트를 사용하여 전력 관리 작업을 자동화할 수 있다. 예를 들어, 특정 시간이 지나면 시스템을 대기 모드로 전환하는 스크립트를 작성할 수 있다.

예제 스크립트:

#!/bin/sh

sleep 300
echo mem > /sys/power/state

이 스크립트를 crontab을 통해 주기적으로 실행하도록 설정할 수 있다.

전력 관리 최적화 기법

저전력 시스템 설정을 위해 최적화할 수 있는 몇 가지 기법이 있다.

CPU 제어

cpu idle state를 적극 활용하여 전력 소비를 줄일 수 있다. 이를 위해 cpufreqcpuidle 드라이버를 활용한다.

echo powersave > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
디바이스 전원 관리

불필요한 디바이스를 비활성화하여 전력 소비를 줄일 수 있다.

echo 1 > /sys/class/net/eth0/device/power/wakeup
echo auto > /sys/class/net/eth0/device/power/control