ฉันต้องการเปลี่ยนผู้ว่าการเริ่มต้นใน 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