วิธีการเปลี่ยนผู้ว่าการเริ่มต้น?


12

ฉันต้องการเปลี่ยนผู้ว่าการเริ่มต้นใน pi ของฉันจาก ondemand เป็นประสิทธิภาพ มีวิธีทำเช่นนี้หรือไม่?

คำตอบ:


21

ฉันไม่คิดว่าคุณสามารถเปลี่ยนค่าเริ่มต้นได้หากไม่มีการคอมไพล์เคอร์เนลใหม่ โดยที่ฉันหมายถึงเคอร์เนลเลือกเมื่อบูตขึ้น

อย่างไรก็ตามคุณสามารถบอกให้ใช้ผู้ว่าราชการคนอื่นในขณะที่ใช้งานได้ดังนั้นหากคุณต้องการตั้งค่าเริ่มต้นอย่างมีประสิทธิภาพโดยไม่ต้องทำการคอมไพล์ใหม่คุณสามารถเพิ่มบางอย่างลงไป/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 ว่างเปล่า


Gotcha ...

บน Raspbian มีสคริปต์ init ชื่อที่สับสนraspi-config(ไม่มันไม่มีส่วนเกี่ยวข้องกับอีกอันหนึ่งซึ่งถูกเรียกใช้ในการบู๊ตครั้งแรกโดยชื่อที่สับสนapply_noobs_os_config.sh) ซึ่งใช้เทคนิคนี้เพื่อตั้งค่าผู้ว่าการondemandยกเว้นปุ่ม Shift ถูกระงับ (เคอร์เนล Raspbian สต็อคได้powersaveรวบรวมไว้) มันไม่ทำอะไรเลยดังนั้นจึงปลอดภัยที่จะปิดการใช้งานนี้ ( systemctl disable raspi-config) หรือคุณสามารถแก้ไขได้ตามคำตอบของ Gorkamorkaแต่คุณเสี่ยงต่อการถูกยกเลิกการแก้ไขโดยการอัพเดทระบบ ฯลฯ - ใคร รู้ว่าทุกคนวางแผนจะทำอะไรกับสิ่งนั้น

คุณสามารถลองเพิ่มรุ่นที่ไม่ใช่ sudo ด้านบน/etc/rc.localได้ สิ่งนี้อาจเกิดขึ้นหลังจากraspi-configสคริปต์ออก


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
goldilocks

2
แต่แล้วต้องเปลี่ยนไปใช้รากเพียงใช้:tee echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
ชื่อปลอม

2
วิธีอื่น ๆ : sudo sh -c "echo performance> cpu0 / cpufreq / scaling_governor"
Moonchild

ตั้งแต่ Raspbian จะขึ้นอยู่กับ Debian คุณควรจะสามารถที่จะหาแพคเกจและcpufrequtils sysfsutilsหลังจากติดตั้งพวกเขาคุณสามารถตั้งค่าผู้ว่าราชการจังหวัดและพารามิเตอร์อื่น ๆ จาก/etc/default/cpufrequtilsและ/etc/sysfs.conf- ดูที่นี่: wiki.debian.org/HowTo/CpuFrequencyScaling
mbirth


3

คำถามที่คล้ายกันในการแลกเปลี่ยนกอง RPI ที่นี่

เพื่อถอดความมันความเร็วตามความต้องการเพิ่มขึ้นสูงสุดเมื่อ cpu ไม่ว่าง 95% คุณสามารถลดจำนวนเวลาที่ไม่ว่างลงให้เป็นเปอร์เซ็นต์ที่ต่ำลง (ซึ่งหมายความว่าจะมีการโอเวอร์คล็อกที่สูงขึ้นเมื่อไม่ยุ่ง) โดย:

"การเขียนค่าจำนวนเต็มไปยังไฟล์ (คุณสามารถใส่ตัวอย่างต่อไปนี้ในไฟล์เริ่มต้น /etc/rc.local): echo 60> / sys / อุปกรณ์ / ระบบ / cpu / cpufreq / ondemand / up_threshold"

ตามหลักวิชา ... คุณสามารถใส่เปอร์เซ็นต์นี้ในบางสิ่งบางอย่างที่ต่ำอย่างไม่น่าเชื่อเช่น 10 หรือ 5 ซึ่งหมายความว่ามันจะทำงานได้สูงสุด

หวังว่านี่จะช่วยได้ อย่าลืมให้คะแนนผู้ที่โพสต์สิ่งนี้ในบทความที่เชื่อมโยง!


3
นั่นไม่ใช่คำตอบสำหรับคำถาม "ฉันจะเปลี่ยนผู้ว่าราชการจาก ondemand เป็นการแสดงได้อย่างไร (พวกเขาเป็นผู้ว่าราชการสองคนที่แตกต่างกัน )
goldilocks

1
@ goldilocks ฉันคิดว่าคำตอบนี้ยังคงเพิ่มสิ่งที่มีประโยชน์กับ quesiton เพราะมันอธิบายถึงวิธีการทำให้คนประพฤติเหมือนกัน
Dmitry Grigoryev

2

ทางเลือกอื่น (ถ้าคุณใช้ 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

-3

echo "performance" | sudo tee / sys / อุปกรณ์ / ระบบ / cpu / cpu0 / cpufreq / scaling_governor


แม้ว่าสิ่งนี้อาจตอบคำถามได้ แต่คำตอบที่ดีนั้นต้องการข้อมูลมากกว่าที่คุณให้ไว้ที่นี่ นอกจากนี้คำตอบของคุณไม่ใช่สิ่งที่คำตอบข้างต้นยังไม่ได้ให้มา
Steve Robillard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.