답변:
커널을 다시 컴파일하지 않고 기본값 을 변경할 수 있다고 생각하지 않습니다 . 즉, 부팅 할 때 커널이 선택하는 것을 의미합니다.
그러나 실행 중에 다른 관리자를 사용하도록 지시 할 수 있으므로 재 컴파일하지 않고 기본값을 효과적으로 설정하려면 무언가 /etc/rc.local
또는 다른 시작 스크립트 에 무언가를 추가 할 수 있습니다 .
/sys
디렉토리는 디스크에없는; 실제로 RAM 가짜 파일 시스템이며 실제로 커널에서 정보를 얻고 명령을 보내기위한 인터페이스입니다. 이것은 모두에 상대적 /sys/devices/system/cpu
이므로 다음과 같습니다.
> cd /sys/devices/system/cpu
또한 쓰기 ( echo blahblah >
) 를 수행하려면 루트 여야합니다 . 어쨌든 위의 디렉토리와 관련하여 사용 가능한 총재를 확인하십시오.
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
분명히 당신은 ondemand
(그러나 이것에 대해 아래의 "Gotcha"를 읽으십시오 ); 확인하다:
> cat cpu0/cpufreq/scaling_governor
ondemand
그것을 바꾸려면 :
echo performance > cpu0/cpufreq/scaling_governor
이것은 루트 또는 이와 같이 수행되어야합니다.
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
sudo
리디렉션이 있으므로 일반 기능 이 작동하지 않습니다 >
.
이제 알 수 있습니다 /sys/devices/system/cpu/cpufreq
디렉토리, (같은 NOT /sys/devices/system/cpu/cpu0/cpufreq
이전 디맨드 주지사를 구성하는 파일 핸들을 포함!), 비어 있습니다.
Raspbian에는 혼란스러운 이름을 가진 init 스크립트가 있습니다 raspi-config
(아니오, 다른 스크립트와 는 아무런 관련이 없습니다 (첫 번째 부팅시 혼란스럽게도 이름이 지정됨 apply_noobs_os_config.sh
)).이 기술을 사용 ondemand
하여 Shift 키 가 없으면 주지사를 설정합니다 (라즈 비안 커널이 powersave
컴파일 한 스톡 ) 다른 작업을 수행하지 않으므로이 ( systemctl disable raspi-config
) 를 비활성화하는 것이 안전 하거나 Gorkamorka의 답변에 따라 편집 할 수는 있지만 시스템 업데이트 등으로 편집하지 않을 위험이 있습니다. 누군가가 그걸로 무엇을하려고하는지 알고 있습니다.
위의 비 스도 버전을에 추가해 볼 수 /etc/rc.local
있습니다. raspi-config
스크립트가 종료 된 후에 발생할 수 있습니다 .
tee
: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.
cpufrequtils
하고 sysfsutils
. 을 설치 한 후, 당신은에서 주지사 및 기타 매개 변수를 설정할 수 있습니다 /etc/default/cpufrequtils
와 /etc/sysfs.conf
- 여기 참조 : wiki.debian.org/HowTo/CpuFrequencyScaling을
init.d 스크립트를 자동으로 작성하여 변경하기 위해 작은 프로그램을 만들었으며 매 부팅마다 변경되도록했습니다.
RPi 스택 교환에 대한 비슷한 질문이 있습니다.
다시 말하면 CPU가 95 % 사용 중일 때 온 디맨드 속도가 최대치까지 올라갑니다. 다음과 같은 방법으로 통화 중 시간을 더 낮은 백분율로 낮출 수 있습니다 (즉, 통화 중이 아닐 때 더 높은 시간이 걸리는 것을 의미).
"파일에 정수 값 쓰기 (예 : /etc/rc.local 시작 파일에 다음을 입력 할 수 있음) : echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold"
이론적으로 ...이 백분율을 10 또는 5와 같이 매우 낮은 값으로 설정할 수 있습니다. 즉, 항상 최대로 실행됩니다.
도움이 되었기를 바랍니다. 링크 된 기사에 이것을 올린 사람의 점수를 올리십시오!
대체 솔루션 (Raspbian을 실행중인 경우)은 스케일링 조정기를 항상 비활성화하도록 /etc/init.d/raspi-config에서 init.d 스크립트를 수정하는 것입니다. 기본 동작은 Shift 키 중 하나를 눌렀을 때 시작시에만 활성화하는 것입니다.
#!/bin/sh
### BEGIN INIT INFO
# Provides: raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Checking if shift key is held down"
timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"
if [ $? -eq 0 ]; then
printf " Yes. Not enabling ondemand scaling governor"
log_end_msg 0
else
printf " No. Switching to ondemand scaling governor"
SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor if [ -e $SYS_CPUFREQ_GOVERNOR ]; t
hen
echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 1 | sudo tee /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
fi
log_end_msg 0
fi
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
에코 "성능"| 스 도이 티 / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor