ฉันต้องการเปลี่ยนผู้ว่าการเริ่มต้นใน pi ของฉันจาก ondemand เป็นประสิทธิภาพ มีวิธีทำเช่นนี้หรือไม่?
ฉันต้องการเปลี่ยนผู้ว่าการเริ่มต้นใน pi ของฉันจาก ondemand เป็นประสิทธิภาพ มีวิธีทำเช่นนี้หรือไม่?
คำตอบ:
ฉันไม่คิดว่าคุณสามารถเปลี่ยนค่าเริ่มต้นได้หากไม่มีการคอมไพล์เคอร์เนลใหม่ โดยที่ฉันหมายถึงเคอร์เนลเลือกเมื่อบูตขึ้น
อย่างไรก็ตามคุณสามารถบอกให้ใช้ผู้ว่าราชการคนอื่นในขณะที่ใช้งานได้ดังนั้นหากคุณต้องการตั้งค่าเริ่มต้นอย่างมีประสิทธิภาพโดยไม่ต้องทำการคอมไพล์ใหม่คุณสามารถเพิ่มบางอย่างลงไป/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
ไดเรกทอรี (ไม่เหมือนกับ/sys/devices/system/cpu/cpu0/cpufreq
!) ซึ่งก่อนหน้านี้มี filehandles สำหรับกำหนดค่าผู้ว่าการ ondemand ว่างเปล่า
บน Raspbian มีสคริปต์ init ชื่อที่สับสนraspi-config
(ไม่มันไม่มีส่วนเกี่ยวข้องกับอีกอันหนึ่งซึ่งถูกเรียกใช้ในการบู๊ตครั้งแรกโดยชื่อที่สับสนapply_noobs_os_config.sh
) ซึ่งใช้เทคนิคนี้เพื่อตั้งค่าผู้ว่าการondemand
ยกเว้นปุ่ม Shift ถูกระงับ (เคอร์เนล Raspbian สต็อคได้powersave
รวบรวมไว้) มันไม่ทำอะไรเลยดังนั้นจึงปลอดภัยที่จะปิดการใช้งานนี้ ( systemctl disable raspi-config
) หรือคุณสามารถแก้ไขได้ตามคำตอบของ Gorkamorkaแต่คุณเสี่ยงต่อการถูกยกเลิกการแก้ไขโดยการอัพเดทระบบ ฯลฯ - ใคร รู้ว่าทุกคนวางแผนจะทำอะไรกับสิ่งนั้น
คุณสามารถลองเพิ่มรุ่นที่ไม่ใช่ sudo ด้านบน/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
ฉันสร้าง programm เล็ก ๆ เพื่อเปลี่ยนมันและปล่อยให้มันเปลี่ยนทุกการบู๊ตโดยการสร้างสคริปต์ init.d โดยอัตโนมัติ
คำถามที่คล้ายกันในการแลกเปลี่ยนกอง RPI ที่นี่
เพื่อถอดความมันความเร็วตามความต้องการเพิ่มขึ้นสูงสุดเมื่อ cpu ไม่ว่าง 95% คุณสามารถลดจำนวนเวลาที่ไม่ว่างลงให้เป็นเปอร์เซ็นต์ที่ต่ำลง (ซึ่งหมายความว่าจะมีการโอเวอร์คล็อกที่สูงขึ้นเมื่อไม่ยุ่ง) โดย:
"การเขียนค่าจำนวนเต็มไปยังไฟล์ (คุณสามารถใส่ตัวอย่างต่อไปนี้ในไฟล์เริ่มต้น /etc/rc.local): echo 60> / sys / อุปกรณ์ / ระบบ / cpu / cpufreq / ondemand / up_threshold"
ตามหลักวิชา ... คุณสามารถใส่เปอร์เซ็นต์นี้ในบางสิ่งบางอย่างที่ต่ำอย่างไม่น่าเชื่อเช่น 10 หรือ 5 ซึ่งหมายความว่ามันจะทำงานได้สูงสุด
หวังว่านี่จะช่วยได้ อย่าลืมให้คะแนนผู้ที่โพสต์สิ่งนี้ในบทความที่เชื่อมโยง!
ทางเลือกอื่น (ถ้าคุณใช้ Raspbian) อาจเป็นการแก้ไขสคริปต์ init.d ใน /etc/init.d/raspi-config เพื่อปิดการใช้งานมาตราส่วนการปรับขนาด มันเป็นพฤติกรรมเริ่มต้นคือการเปิดใช้งานเฉพาะเมื่อเริ่มต้นหากหนึ่งในปุ่ม 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
echo "performance" | sudo tee / sys / อุปกรณ์ / ระบบ / cpu / cpu0 / cpufreq / scaling_governor