init.d Scripte für Governor Einstellungen, I/O schedulers, UV und OC u.s.w
Da es zu diesem Thema noch keinen eigenen Thread gibt, hier im SGS2 Forum, habe ich mir mal erlaubt einen zu erstellen!
Zu Anfang erst mal ein DANKE an Noir. und Spline, die mit den Anstoß hierfür gegeben haben!!!;)
Wofür sind Scripte und was bewirken sie:
Scripte werden verwendet um dort Einstellparameter mit deren Werten festzulegen (für z.B. bessern Akkuverbrauch oder Performance), die entweder nicht über eine App einzustellen sind, oder wo man sich die App sparren möchte!
Es gibt einiges an Scripten hier im Forum, die aber in verschiedenen Threads verteilt sind. Ich werde versuchen so viel wie möglich davon zusammen zu suchen und dann hier zu sammeln!
Zu beachten ist, das gewisse Einstellungen, wie UV und OC nur mit bestimmten Kernel funktionieren, wie z.B. SiyahKernel, N.E.A.K. Kernel, Tegrak und Void.echo Kernel!
Hier zwei Links zur Erklärung der einzelnen Governors und Schedulers:
http://www.pocketpc.ch/galaxy-note-r...ml#post1259503
http://www.pocketpc.ch/samsung-galax...ml#post1318783
Und noch einer mit Tweaks dafür, weiter unten:
http://forum.xda-developers.com/show...php?p=19846297
Nachtrag vom 18.03.12, weitere Tweak Scripte bei XDA!!!
http://forum.xda-developers.com/show...postcount=5021
Nützliche links die beim einstellen der UV Werte behilflich sein können:
http://forum.xda-developers.com/show....php?t=1466017
Lulzactive Governor Einstellungen:
http://forum.xda-developers.com/show....php?t=1525048
Ein Post von Noir. mit Erläuterungen, was und wofür solche Scripte sind und wie man damit umgeht!!!:D
Achtung: Wenn mehrer Scripte verwendet werden, sollte man immer darauf achten, dass wenn die gleichen Parameter darin vorhanden sind, nicht unterschiedliche Werte eingetragen sind! Da das System dann nichts mit den angaben anfangen kann.;)
1. Das Script, für die von Noir. genanten Werte:
S95lulzactiveset
2. Hier ein Script, wonach schon oft im SiyahKernel Thread gefragt wurde, und zwar eins für 25Mhz CPU Frequenz!!! Kann nicht genau sagen welche Kernel ausser der SiyahKernel noch diese Option bieten!Code:# !/system/bin/sh
sleep 25
echo "70" > /sys/devices/system/cpu/cpufreq/lulzactive/inc_cpu_load
echo "2" > /sys/devices/system/cpu/cpufreq/lulzactive/pump_up_step
echo "1" > /sys/devices/system/cpu/cpufreq/lulzactive/pump_down_step
echo "10000" > /sys/devices/system/cpu/cpufreq/lulzactive/up_sample_time
echo "40000" > /sys/devices/system/cpu/cpufreq/lulzactive/down_sample_time
echo "5" > /sys/devices/system/cpu/cpufreq/lulzactive/screen_off_min_step
S94cpu_freq
3. Ein akkusparrendes Script, danke an Noir. für die Erklärungen:Code:# !/system/bin/sh
echo "Set Frequency Table"
echo "1600 1400 1200 1000 800 500 200 25" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table
echo "Setting scaling_max_freq to 1200mhz"
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo "Setting scaling_min_freq to 25mhz"
echo 25000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
01siyah
Hier das gleiche Script, nur mit Werten für eine bessere Performance:Zitat:
Grenzen bzw CPU-Auslastungen, bei denen der zweite Kern ein/ausgeschaltet wird, wie lang er anbleibt und wie oft die Auslastung abgefragt wird. Höhere Werte sind akkuschonend, bis auf die CPU_freqs, da niedrigere.Code:#!/sbin/busybox sh
#hotplug parameters
echo 35 > /sys/module/pm_hotplug/parameters/loadl
echo 80 > /sys/module/pm_hotplug/parameters/loadh
echo 90 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 100 > /sys/module/pm_hotplug/parameters/loadh_scroff
echo 400 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon
echo 1000 > /sys/module/pm_hotplug/parameters/rate_scroff
echo 524288 > /sys/module/pm_hotplug/parameters/freq_cpu1on
Sollte klar sein, CPU-Takt min / max ( hier 100 / 1200 )Code:#cpu freq
echo 100000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Max Takt im Deepsleep sowie Deepsleep Buslevel. in dem Fall sollten das 500 Mhz auf dem niedrigsten FSB sein. Das echo 4 gibt den max Takt als Stufe an, also 4 Stufen ab der niedrigsten.Code:#deepsleep levels
echo 4 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel
Nicht 100%ig sicher, sollten aber die Taktsprünge bei Belastung sein. sprich, wenn die CPU zu x % ausgelastet ist, wird in die nächsthöhere / niedrigere Taktstufe gewechselt. echo <zahl> gibt an, ob Stufe für Stufe gesprungen wird oder direkt auch mehrere Stufen übersprungen werden können.Code:#smooth scaling parameters
echo 3 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step
Legt Governor fest, in dem fall ondemandx.Code:#cpu governor
echo ondemandx > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
GPU-Taktstufen ( die 300 Mhz können nicht genutzt werden ) sowie die Auslastungsgrenzen, bei welchen der Takt nach oben / unten korrigiert wird. Anschliessend die Spannungen der einzelnen Taktstufen.Code:#gpu clock, threshold and voltage
echo "100 267 300" > /sys/class/misc/gpu_clock_control/gpu_control
echo "65% 30% 95% 60%" > /sys/class/misc/gpu_clock_control/gpu_control
echo "900000 950000 1000000" >
Legt I/O Scheduler fest, in dem Fall sioCode:#io scheduler
echo sio > /sys/block/mmcblk0/queue/scheduler
Starten der Module für Busfrequenzänderung, Sched_mc und bei AFTR bin ich überfragt.Code:#static bus frequency
#echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
#enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
#enable AFTR
echo 3 > /sys/module/cpuidle/parameters/enable_mask
Zu guter letzt, der Teil für die Bildschirmhelligkeit. Es gibt da keine Werte und Stufen wie beim CPU-Takt. min_bl legt die niedrigste Helligkeit der Hintergrundbeleuchtung fest, min_gamma und max_gamma bestimmen die Gammakurve. DIE mag ich aber nicht erklären, wer was drüber wissen mag, schaue bitte bei WikipediaCode:#brightness settings
echo 70 > /sys/class/misc/brightness_curve/min_bl
echo 0 > /sys/class/misc/brightness_curve/min_gamma
echo 19 > /sys/class/misc/brightness_curve/max_gamma
Dieser letzte Teil deaktiviert den Android Logger, der eigentlich meist für Entwickler und Anwendungen wie Logcat interessant ist. Einzelne Apps sind die Ausnahme Lief das Script einmal und man will den Logger wiederhaben, muss man diese Zeilen einfach rausnehmen oder auskommentieren (# vor jede einzelne setzen) sowie den .siyah-Ordner in /data löschen.Code:#disable logger (will take effect after a reboot)
mkdir /data/.siyah
chmod 777 /data/.siyah
touch /data/.siyah/disable-logger
01siyah
4. S93busfreqsCode:#!/sbin/busybox sh
#hotplug parameters
echo 20 > /sys/module/pm_hotplug/parameters/loadl
echo 50 > /sys/module/pm_hotplug/parameters/loadh
echo 30 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 70 > /sys/module/pm_hotplug/parameters/loadh_scroff
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 1200 > /sys/module/pm_hotplug/parameters/rate_cpuon
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff
echo 131072 > /sys/module/pm_hotplug/parameters/freq_cpu1on
#cpu freq
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#deepsleep levels
echo 3 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel
#smooth scaling parameters
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step
#cpu governor
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 60 > /sys/devices/system/cpu/cpufreq/conservative/up_threshold
echo 30 > /sys/devices/system/cpu/cpufreq/conservative/down_threshold
echo 5 > /sys/devices/system/cpu/cpufreq/conservative/freq_step
echo 10000 > /sys/devices/system/cpu/cpufreq/conservative/sampling_rate
#gpu clock, threshold and voltage
echo "160 267" > /sys/class/misc/gpu_clock_control/gpu_control
echo "55% 25%" > /sys/class/misc/gpu_clock_control/gpu_control
echo "950000 1000000" > /sys/class/misc/gpu_voltage_control/gpu_control
#io scheduler
echo bfq > /sys/block/mmcblk0/queue/scheduler
#static bus frequency
echo "0 0 0 0 0 1 1 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
#enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
#enable AFTR
echo 2 > /sys/module/cpuidle/parameters/enable_mask
#brightness settings
echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma
Die Busfrequenz ist die Geschwindigkeit der Daten zwischen CPU und RAM!Code:#!/system/bin/sh
echo "enabled" >/sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo "0 0 0 0 1 2 2 2" >/sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
5. Eins, was einen anderen Governor im Sleep zustand setzt, wie im Awake (Aufwachszustand) und die CPU Frequenzen anpasst!!!
Das Script sieht Komplizierter aus wie es ist, man kann die rot dargestellten Werte nach Wunsch anpassen, wie z.B. 100Mhz in 25Mhz (z.b. FREQ_STEP_8=25, SLEEP_MIN=25000 und AWAKE_MIN=25000), oder den Governor ändern! Der untere Teil des Scripts verweißt nur die gewünschten Werte auf die zu ändernden Dateien, da muss nichts geändert werden!
S92CpuManage
6. Das "90ram-tweaks" Script sorgt dafür das der RAM-Speicher sich in regelmäßigen abständen selbstständig leert!Code:#!/system/bin/sh
#CPU Frequencies
AWAKE_MIN="100000"
AWAKE_MAX="1200000"
AWAKE_GOV="lulzactive"
SLEEP_MIN="100000"
SLEEP_MAX="500000"
SLEEP_GOV="conservative"
#CPU Frequency
FREQ_MANUAL="true"
FREQ_STEP_1="1600"
FREQ_STEP_2="1400"
FREQ_STEP_3="1200"
FREQ_STEP_4="1000"
FREQ_STEP_5="800"
FREQ_STEP_6="500"
FREQ_STEP_7="200"
FREQ_STEP_8="100"
#Misc
PROFILE="true"
LOGFILE="/sdcard/external_sd/sysvalues.log"
LOGMODE="1" # Logmode 0=Console only | 1=Startup | 2=Every Change #
#================================================= ===============================================#
if [ -f $LOGFILE ] ; then
rm -f $LOGFILE
fi
if [ "$LOGMODE" = "1" ] || [ "$LOGMODE" = "2" ] ; then
touch $LOGFILE
fi
# Setting CPU Frequencies
if [ "$FREQ_MANUAL" = "true" ] ; then
if [ "$LOGMODE" = "1" ] || [ "$LOGMODE" = "2" ] ; then
echo "Set Frequency Table" | tee -a $LOG_FILE;
fi
echo "Set Frequency Table"
echo $FREQ_STEP_1" "$FREQ_STEP_2" "$FREQ_STEP_3" "$FREQ_STEP_4" "$FREQ_STEP_5" "$FREQ_STEP_6" "$FREQ_STEP_7" "$FREQ_STEP_8 > /sys/devices/system/cpu/cpu0/cpufreq/freq_table
fi
echo "Setting CPU to "$AWAKE_MIN"-"$AWAKE_MAX
echo $AWAKE_MIN > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $AWAKE_MAX > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# Setting Governor
echo $AWAKE_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Starting Profile
if [ "$PROFILE" = "true" ]; then
if [ "$LOGMODE" = "1" ] || [ "$LOGMODE" = "2" ] ; then
echo `date +%X`" - Profile activated" | tee -a $LOGFILE
fi
echo "Profile activated"
(while [ 1 ] ; do
AWAKE=`cat /sys/power/wait_for_fb_wake`
if [ "$AWAKE" = "awake" ]; then
chmod 644 /sys/devices/system/cpu/cpu1/online
echo "1" > /sys/devices/system/cpu/cpu1/online
chmod 444 /sys/devices/system/cpu/cpu1/online
echo $AWAKE_MIN > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $AWAKE_MAX > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo $AWAKE_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
SLEEPING=`cat /sys/power/wait_for_fb_sleep`
if [ "$SLEEPING" = "sleeping" ]; then
chmod 644 /sys/devices/system/cpu/cpu1/online
echo "0" > /sys/devices/system/cpu/cpu1/online
chmod 444 /sys/devices/system/cpu/cpu1/online
echo $SLEEP_MIN > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $SLEEP_MAX > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo $SLEEP_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
done &)
fi
90ram-tweaks
Bei den angehängten Scripten, immer die .TXT Endung entfernen und in den Ordner etc/init.d kopieren, Gerät neu Starten und fertig:p!!!!Code:#!/system/bin/sh
# Copyright© 2011 Juwe11
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo "2560,4096,6144,12288,14336,18432" > /sys/module/lowmemorykiller/parameters/minfree
fi
if [ -e /proc/sys/vm/swappiness ]; then
echo "50" > /proc/sys/vm/swappiness
fi
if [ -e /proc/sys/vm/vfs_cache_pressure ]; then
echo "10" > /proc/sys/vm/vfs_cache_pressure
fi
if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then
echo "500" > /proc/sys/vm/dirty_expire_centisecs
fi
if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
fi
if [ -e /proc/sys/vm/dirty_ratio ]; then
echo "90" > /proc/sys/vm/dirty_ratio
fi
if [ -e /proc/sys/vm/dirty_background_ratio ]; then
echo "5" > /proc/sys/vm/dirty_background_ratio
fi
Zum löschen des etc/init.d Ordner gibt es dieses Script: http://www.pocketpc.ch/samsung-galax...sung-aosp.html
MfG aljee77