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.