Câu trả lời:
Tôi không nghĩ bạn có thể thay đổi mặc định mà không cần biên dịch lại kernel. Ý tôi là, hạt nhân chọn khi khởi động.
Tuy nhiên, bạn có thể yêu cầu nó sử dụng một thống đốc khác trong khi chạy, vì vậy nếu bạn muốn đặt mặc định một cách hiệu quả mà không cần biên dịch lại, bạn có thể thêm một cái gì đó vào /etc/rc.local
hoặc một số tập lệnh khởi động khác.
Thư mục /sys
không có trên đĩa; đó là một hệ thống tập tin giả mạo trong RAM thực sự là một giao diện để lấy thông tin từ và gửi lệnh đến kernel. Tất cả đều liên quan đến /sys/devices/system/cpu
, vì vậy:
> cd /sys/devices/system/cpu
Bạn cũng cần phải root để thực hiện write ( echo blahblah >
). Dù sao, liên quan đến thư mục trên, để xem các thống đốc có sẵn:
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
Rõ ràng là của bạn ondemand
(nhưng đọc "Gotcha" bên dưới về điều này); để kiểm tra:
> cat cpu0/cpufreq/scaling_governor
ondemand
Để thay đổi nó:
echo performance > cpu0/cpufreq/scaling_governor
Lưu ý điều này hoặc phải được thực hiện root, hoặc như thế này
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
Chỉ đơn giản là sudo
sẽ không hoạt động vì có một chuyển hướng , >
.
Bây giờ bạn sẽ nhận thấy /sys/devices/system/cpu/cpufreq
thư mục, (KHÔNG giống như /sys/devices/system/cpu/cpu0/cpufreq
!), Trước đây có chứa các tệp tài liệu để định cấu hình thống đốc ondemand, trống.
Trên Raspbian có một đoạn script init, cái tên khó hiểu raspi-config
(không, nó không liên quan gì đến tập lệnh khác, được chạy trên lần khởi động đầu tiên bởi tên cũng khó hiểu apply_noobs_os_config.sh
), sử dụng kỹ thuật này để đặt bộ điều chỉnh ondemand
trừ khi phím shift được giữ (hạt nhân Raspbian đã powersave
được biên dịch). Nó không làm gì khác, vì vậy, an toàn để vô hiệu hóa ( systemctl disable raspi-config
) này hoặc bạn có thể chỉnh sửa nó theo câu trả lời của Gorkamorka , nhưng sau đó bạn có nguy cơ bị chỉnh sửa bởi bản cập nhật hệ thống, v.v. - ai biết những gì bất cứ ai có kế hoạch để làm với điều đó.
Bạn có thể thử thêm phiên bản không sudo ở trên vào /etc/rc.local
. Điều này có thể xảy ra sauraspi-config
kịch bản đã thoát.
tee
: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.
cpufrequtils
và sysfsutils
. Sau khi cài đặt chúng, bạn có thể đặt thống đốc và các tham số khác từ /etc/default/cpufrequtils
và /etc/sysfs.conf
- xem tại đây: wiki.debian.org/HowTo/CpuFrequencyScaling
Tôi đã tạo một chương trình nhỏ để thay đổi nó và để nó được thay đổi mỗi lần khởi động bằng cách tự động tạo tập lệnh init.d.
câu hỏi tương tự về trao đổi ngăn xếp RPi ở đây.
để diễn giải nó, tốc độ theo yêu cầu tăng lên tối đa khi cpu đang bận rộn 95%. Bạn có thể giảm lượng thời gian bận rộn xuống phần trăm thấp hơn (có nghĩa là thời gian bận sẽ cao hơn khi không bận rộn) bằng cách:
"ghi một giá trị số nguyên vào một tệp (bạn có thể đặt ví dụ sau vào tệp khởi động /etc/rc.local): echo 60> / sys / thiết bị / system / cpu / cpufreq / ondemand / up_thrưỡng"
vì vậy, về mặt lý thuyết ... bạn có thể đặt tỷ lệ phần trăm này ở mức cực kỳ thấp như 10 hoặc 5, điều đó có nghĩa là nó sẽ luôn chạy ở mức tối đa.
Hi vọng điêu nay co ich. Hãy chắc chắn để ghi điểm người đã đăng bài này trong bài viết được liên kết!
Một giải pháp thay thế (nếu bạn đang chạy Raspbian) có thể là sửa đổi tập lệnh init.d trong /etc/init.d/raspi-config để luôn vô hiệu hóa bộ điều chỉnh tỷ lệ. Hành vi mặc định của nó là chỉ kích hoạt nó khi khởi động nếu một trong các phím shift được nhấn xuống:
#!/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
echo "hiệu suất" | sudo tee / sys / thiết bị / hệ thống / cpu / cpu0 / cpufreq / scaling_gocateor