Varsayılan vali nasıl değiştirilir?


12

Pi'mdeki varsayılan düzenleyiciyi ondemand'dan performansa değiştirmek istiyorum. Bunu yapmanın bir yolu var mı?

Yanıtlar:


21

Çekirdeği yeniden derlemeden varsayılanı değiştirebileceğinizi sanmıyorum . Demek istediğim, çekirdeğin açıldığında seçtiği çekirdek.

Bununla birlikte, çalışırken farklı bir vali kullanmasını söyleyebilirsiniz, bu nedenle varsayılanı yeniden derlemeden etkili bir şekilde ayarlamak istiyorsanız, bir /etc/rc.localbaşlangıç ​​komut dosyasına bir şey veya başka bir başlangıç ​​komut dosyası ekleyebilirsiniz .

/sysDizin diskte değildir; aslında çekirdekten bilgi almak ve komutlar göndermek için bir arayüz olan bir RAM sahte dosya sistemidir. Bunların hepsi göreceli /sys/devices/system/cpu, yani:

> cd /sys/devices/system/cpu

Ayrıca writes ( echo blahblah >) yapmak için root olmanız gerekir . Her neyse, yukarıdaki dizine göre, mevcut düzenleyicileri görmek için:

> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance

Görünüşe göre seninki ondemand(ama bu konuda aşağıda "Gotcha" okuyun ); kontrol etmek:

> cat cpu0/cpufreq/scaling_governor
ondemand

Değiştirmek için:

echo performance > cpu0/cpufreq/scaling_governor

Bunun ya kök yapılması ya da bunun gibi olması gerektiğini unutmayın

sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"

Sadece düz sudoçalışmaz çünkü bir yönlendirme var >.

Artık ondemand valisini yapılandırmak için daha önce dosya tanıtıcıları içeren /sys/devices/system/cpu/cpufreqdizinin /sys/devices/system/cpu/cpu0/cpufreqboş olduğunu fark edeceksiniz ( ! İle aynı DEĞİL !).


Anladım...

Raspbian'da, kafa karıştırıcı olarak adlandırılan raspi-config(hayır, kafa karıştırıcı olarak adlandırılan tarafından ilk önyüklemede çalıştırılan diğeriyle ilgisi yok) bir init komut dosyası var, apply_noobs_os_config.shbu da valiyi ondemandshift tuşu olmadığı sürece ayarlamak için kullanıyor basılı tutulur (stok Raspbian çekirdeği powersavederlenmiştir). Başka bir şey yapmaz, bu yüzden bunu devre dışı bırakmak güvenlidir ( systemctl disable raspi-config) veya Gorkamorka'nın cevabına göre düzenleyebilirsiniz , ancak daha sonra bir sistem güncellemesi vb. Tarafından düzenlenmemiş olma riskini taşırsınız . bununla ne yapmayı planladığını bilir.

Yukarıdaki sudo olmayan sürümü eklemeyi deneyebilirsiniz /etc/rc.local. Bu raspi-configkomut dosyası çıktıktan sonra olabilir .


Yorumlar uzun tartışmalar için değildir; bu görüşme sohbete taşındı .
goldilocks

2
Aksine o zaman sadece kullanmak, köküne geçiş gerektirir tee: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor.
Sahte İsim

2
Diğer yol: sudo sh -c "yankı performans> cpu0 / cpufreq / scaling_governor"
Moonchild

Raspbian Debian tabanlı olduğundan, paketleri bulmak mümkün olmalıdır cpufrequtilsve sysfsutils. Bunları kurduktan sonra, valiyi ve diğer parametreleri /etc/default/cpufrequtilsve arasında ayarlayabilirsiniz/etc/sysfs.conf
mbirth

4

Bunu değiştirmek ve otomatik olarak bir init.d komut dosyası oluşturarak her önyüklemenin değiştirilmesine izin vermek için küçük bir program yaptım.

Projeme bağlantı


3

RPi yığın değişimi burada benzer bir soru .

başka bir deyişle, CPU% 95 meşgul olduğunda talep üzerine hız maks. Meşgul süresi miktarını daha düşük bir yüzdeye düşürebilirsiniz (yani meşgul olmadığında daha yüksek saat hızı elde edilir):

"bir dosyaya bir tamsayı değeri yazma (örneğin /etc/rc.local başlangıç ​​dosyasına şunları koyabilirsiniz): echo 60> / sys / Devices / system / cpu / cpufreq / ondemand / up_threshold"

yani, teorik olarak ... bu yüzdeyi 10 veya 5 gibi inanılmaz derecede düşük bir şeye koyabilirsiniz, bu da her zaman maksimumda çalışacağı anlamına gelir.

Bu yardımcı olur umarım. Bağlantılı makalede bunu gönderen kişi puan emin olun!


3
Aslında bu soruya bir cevap değil, "valiyi ondemand'dan performansa nasıl değiştirebilirim (iki farklı vali).
goldilocks

1
@goldilocks Ben bu cevabı hala quesiton için yararlı bir şey eklediğini düşünüyorum çünkü bir diğeri gibi davranmasını açıklar.
Dmitry Grigoryev

2

Alternatif bir çözüm (Raspbian çalıştırıyorsanız), ölçeklendirme düzenleyicisini her zaman devre dışı bırakmak için /etc/init.d/raspi-config dosyasındaki init.d komut dosyasını değiştirmek olabilir. Varsayılan davranışı, başlangıçta yalnızca üst karakter tuşlarından birine basıldığında etkinleştirmektir:

#!/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 "performans" | sudo tee / sys / cihazlar / sistem / cpu / cpu0 / cpufreq / scaling_governor


Bu soruya cevap verebilirken, iyi yanıtlar burada sağladığınızdan daha fazla bilgi gerektirir. Ayrıca, cevabınız yukarıdaki cevapların henüz vermediği hiçbir şey değildir.
Steve Robillard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.