Related
I've adapted the original performance tweaks by 'hardcore' @ XDA for my overclocked/undervolted Galaxy Tab. The tweaked values are pretty much the same as the ones recommended by the original poster, but my simple init.d/ script allows me to log default system values when pushing new values, which is useful for debugging. The script also contains comments to describe the role of each setting. Note that if you don't have init.d/ support in your kernel / initramfs, you can still run the script manually at each system start (use an app like GScript).
Code:
#!/system/bin/sh
#
# Original tweaks by 'hardcore' @ XDA
# http://forum.xda-developers.com/showthread.php?t=813309
# This is a startup script designed for /system/etc/init.d/.
# Note that "run-parts" support (for init.d/ scripts) is normally provided by custom a initramfs,
# which should bundle busybox in /sbin/. The /sbin/run-parts.sh script should take care of
# running init scripts (by calling /sbin/runparts), and it should subsequently trigger
# the device startup (using "setprop filesystem.ready 1", or similar).
# Note that the recovery mode typically doesn't run /system/etc/init.d/ startup scripts.
# Ensure /sbin/busybox takes precedence.
# Normally this is redundant, because the /init.rc startup script already sets the correct path.
export PATH=/sbin:$PATH
# Logging of old/new sysfs values, useful for double-checking.
logFile=/data/local/tmp/S_perf_tweaks.log
if [ -f $logFile ]
then
rm $logFile
fi
touch $logFile
# This function logs the old value and writes the new value.
echo_()
{
echo '' >> $logFile
echo -n "${2}${3} (${1}): " >> $logFile
#head -1 ${2}${3} >> $logFile
#read $firstLine < ${2}${3}
#echo -n $firstLine >> $logFile
contents=`echo -n $(cat ${2}${3})`
echo -n $contents >> $logFile
echo -n " ---> " >> $logFile
echo $1 > ${2}${3}
contents=`echo -n $(cat ${2}${3})`
echo -n $contents >> $logFile
}
# Note that the settings pushed by VoltageControl.apk
# could also be managed here (this only applies to kernels with clock/frequency tables and undervolt sysfs support):
#echo_ "50 50 50 25 25 25 25 " "/sys/devices/system/cpu/cpu0/cpufreq" "/UV_mV_table"
#echo_ 1400000 "/sys/devices/system/cpu/cpu0/cpufreq" "/scaling_max_freq"
echo "---------" >> $logFile
# Remount all partitions that use relatime with noatime and nodiratime instead.
# Note: atime generates a write-after-every-read, relatime is an optimized version of atime.
for k in $(mount | grep relatime | cut -d " " -f3)
do
echo "mount -o remount,noatime,nodiratime $k" >> $logFile
sync
mount -o remount,noatime $k
done
# Here is a sample test to measure read/write performance on rfs partitions:
### test for write: dd if=/dev/zero of=/data/test count=30000
### test for read: dd if=/data/test of=/dev/zero
echo "---------" >> $logFile
# Log the mount table
mount >> $logFile
echo "---------" >> $logFile
# Optimize the cfq/bfq I/O scheduler for flash memory (defaults are designed for spinning harddisks).
# Lower the idle wait, re-enable the low latency mode, remove the penalty for back-seeks,
# and explicitly tell the kernel that the storage is not a spinning disk.
for i in $(ls -1 /sys/block/stl*) $(ls -1 /sys/block/mmc*) $(ls -1 /sys/block/bml*) $(ls -1 -d /sys/block/tfsr*)
#for i in `ls /sys/block/stl* /sys/block/mmc* /sys/block/bml* /sys/block/tfsr*`;
do
# DEF noop anticipatory deadline cfq [bfq]
echo_ "bfq" $i "/queue/scheduler"
# DEF 1 ?
echo_ "0" $i "/queue/rotational"
# DEF 1 ?
echo_ "1" $i "/queue/iosched/low_latency"
# DEF 2 ?
echo_ "1" $i "/queue/iosched/back_seek_penalty"
# DEF 16384 ?
echo_ "1000000000" $i "/queue/iosched/back_seek_max"
# DEF 6 ?
echo_ "3" $i "/queue/iosched/slice_idle"
sync
done
# Set tendency of kernel to swap to minimum, since swap isn't used anyway.
# (swap = move portions of RAM data to disk partition or file, to free-up RAM)
# (a value of 0 means "do not swap unless out of free RAM", a value of 100 means "swap whenever possible")
# (the default is 60 which is okay for normal Linux installations)
# DEF 60
echo_ "0" "/proc/sys/vm" "/swappiness"
# Lower the amount of unwritten write cache to reduce lags when a huge write is required.
# DEF 20
echo_ "10" "/proc/sys/vm" "/dirty_ratio"
# Increase minimum free memory, in theory this should make the kernel less likely to suddenly run out of memory.
# DEF 3102
echo_ "4096" "/proc/sys/vm" "/min_free_kbytes"
# Increase tendency of kernel to keep block-cache to help with slower RFS filesystem.
# DEF 100
echo_ "1000" "/proc/sys/vm" "/vfs_cache_pressure"
# Increase the write flush timeouts to save some battery life.
# DEF 250
echo_ "2000" "/proc/sys/vm" "/dirty_writeback_centisecs"
# DEF 200
echo_ "1000" "/proc/sys/vm" "/dirty_expire_centisecs"
# Make the task scheduler more 'fair' when multiple tasks are running,
# which improves user-interface and application responsiveness.
# DEF 10000000
echo_ "20000000" "/proc/sys/kernel" "/sched_latency_ns"
# DEF 2000000
echo_ "2000000" "/proc/sys/kernel" "/sched_wakeup_granularity_ns"
# DEF 1000000
echo_ "1000000" "/proc/sys/kernel" "/sched_min_granularity_ns"
sync
# Miscellaneous tweaks
setprop dalvik.vm.startheapsize 8m
#setprop wifi.supplicant_scan_interval 90
echo '' >> $logFile
echo "---------" >> $logFile
#This apply a tweaked deadline scheduler to all RFS (and ext2/3/4, if existent) partitions.
#for i in /sys/block/*
#do
# DEF noop anticipatory deadline cfq [bfq]
#echo deadline > $i/queue/scheduler
#echo 4 > $i/queue/iosched/writes_starved
#echo 1 > $i/queue/iosched/fifo_batch
#echo 256 > $i/queue/nr_requests
#done
Thanks for this Daniel - since I know absolutely nothing about anything Android, all I can say is that I have 2 questions
1 - Would this script be any benefit to someone running a custom ROM (Overcome 1.1.3 in my case) and a custom kernel (Richard Trip's 1.4gHz EXT4)? I ask because I don't know if these guys have already including these tweaks or not... but maybe I should ask them instead...
2 - Is there any way you could put that script - in its most efficient, non-debugging form - in to a script file that us speed-freaks can just toss in to init.d and reboot?
Please do forgive me for any newbishness I have displayed here.
So should I put this script in /system/etc/init.d/ ?
UPDATE: Ok, I've done the script(without extension at the back of the file name) and put it in ~/init.d/, it runs well. I comment out the remount and logging function tho Tested it on some games that required load time like gangstar which lags alot previously, now just dnt have any lag time in it! Thanks!
Anyway, im running Overcome rom with richard's kernel, other than voltage script, i saw 2 more script that does the following:
10fixsh does:
"#!/system/bin/sh
busybox mount -o remount,rw /
find /sbin -maxdepth 1 -type l -exec rm {} \;
busybox mount -o remount,ro /
"
99done does:
"#!/system/bin/sh
sync;
setprop mcr.filesystem.ready 1;
"
So I just add your script as userinit since they do not have conflicting calls
Personally thinks that similar tweaks should be included in custom kernels so that those who wish to do more extreme settings can go with it while those who just wants increased performance as it is can still have the boost provided by such init script.
fastcx said:
Personally thinks that similar tweaks should be included in custom kernels so that those who wish to do more extreme settings can go with it while those who just wants increased performance as it is can still have the boost provided by such init script.
Click to expand...
Click to collapse
so basically just copy and paste the whole "code" in the first post, and create it as userinit.sh and put the userinit.sh file in /system/etc/init.d ?
am i right?
kay_kiat88 said:
so basically just copy and paste the whole "code" in the first post, and create it as userinit.sh and put the userinit.sh file in /system/etc/init.d ?
am i right?
Click to expand...
Click to collapse
still need more time to test, after some verification, none of the "/proc/sys/kernel" setting works with any of the kernel i'm using. thats y i need more time to rectify..
used richard's kernel and overcome kernel, both dont do anything now..perhaps wrong command in the script? Cause run-parts.sh does specify where to run script, and init.d does have 2 script in there that runs. So i'll need more time to make sure it works now..
Dont need to have .sh as extension, just a name for your script like the other 2 script that i posted in previous reply. And I did not copy the whole script to run, as the script seems questionable in some part..
fastcx said:
still need more time to test, after some verification, none of the "/proc/sys/kernel" setting works with any of the kernel i'm using. thats y i need more time to rectify..
used richard's kernel and overcome kernel, both dont do anything now..perhaps wrong command in the script? Cause run-parts.sh does specify where to run script, and init.d does have 2 script in there that runs. So i'll need more time to make sure it works now..
Dont need to have .sh as extension, just a name for your script like the other 2 script that i posted in previous reply. And I did not copy the whole script to run, as the script seems questionable in some part..
Click to expand...
Click to collapse
okay.. so basically just copy everything under the "code" and create it as userinit?
edit: hmmm okay thanks for you help. i don't think it's of any use for me now as my tab is quite fast and i don't do any intensive stuff on it. thanks anyway!
kay_kiat88 said:
okay.. so basically just copy everything under the "code" and create it as userinit?
edit: hmmm okay thanks for you help. i don't think it's of any use for me now as my tab is quite fast and i don't do any intensive stuff on it. thanks anyway!
Click to expand...
Click to collapse
Now i'm editing init.rc file instead, but it's not the safest thing to do
Wow all the best.. lol.
Sent from my GT-P1000 using Tapatalk
fastcx said:
Now i'm editing init.rc file instead, but it's not the safest thing to do
Click to expand...
Click to collapse
The init.rc file gets extracted from the initramfs ramdisc (packaged inside the zImage kernel) at each device startup. Changing this file's content is not a good idea. Regards, Dan
fastcx said:
So should I put this script in /system/etc/init.d/ ?
UPDATE: Ok, I've done the script(without extension at the back of the file name) and put it in ~/init.d/, it runs well.
Click to expand...
Click to collapse
Yes, the filename of the startup script must start with "S_" and must not end with ".sh". This is standard Linux stuff.
fastcx said:
find /sbin -maxdepth 1 -type l -exec rm {}
Click to expand...
Click to collapse
Removing the symlinks from "/sbin/" ... why ?
Normally Busybox should be installed properly in "/sbin/" by your kernel provider, you shouldn't have to touch this folder.
fastcx said:
99done does:
"#!/system/bin/sh
sync;
setprop mcr.filesystem.ready 1;
"
Click to expand...
Click to collapse
The "mcr.filesystem.ready" is only relevant if the "init.rc" file in the kernel zImage's initramfs ramdisc responds to a change to the "mcr.filesystem.ready" property (for example, when its value changes from 0 to 1). This is typically used to start the device normally, after *all* of the "/system/etc/init.d/" startup scripts have been executed.
The line of code "setprop mcr.filesystem.ready 1" is therefore typically included in "/sbin/runparts.sh", not in one of the "S_startup_scripts" (as this may trigger the device normal startup prematurely).
It really depends on your kernel, so it should be documented by your kernel provider.
daniel.weck said:
Yes, the filename of the startup script must start with "S_" and must not end with ".sh". This is standard Linux stuff.
It really depends on your kernel, so it should be documented by your kernel provider.
Click to expand...
Click to collapse
Great! thanks for clarifying! Sadly none of the kernel provider states any info on such matter. Will try your script again, as previously running thru gscript not all command works..
Copied your script 100%, put it in init.d with chmod 755, named it S_userinit, doesnt run..i double checked by cat value that I stated to change in the script.
Help? It obviously runs the UV script in init.d tho.
EDIT: Got it to work by editing the UV script, now settings are in! Great! Time to test anyway, nodiratime is not needed, noatime already has it
So how can I use this script - I want to
Hi, Just connected to my galaxy tab running froyo, and went looking in my filesystem for the init.d folder and yeah there isn't one
do i create one? where? and what permissions?
I try to keep this brief and not waste too much of your time.
many thanks for the script
Ttime & effort ++
andytof46 said:
Hi, Just connected to my galaxy tab running froyo, and went looking in my filesystem for the init.d folder and yeah there isn't one
do i create one? where? and what permissions?
I try to keep this brief and not waste too much of your time.
many thanks for the script
Ttime & effort ++
Click to expand...
Click to collapse
you will need a kernel that support init script, after that, /etc/init.d(or /system/etc/init.d) will be created
fastcx said:
Copied your script 100%, put it in init.d with chmod 755, named it S_userinit, doesnt run..i double checked by cat value that I stated to change in the script.
Help? It obviously runs the UV script in init.d tho.
EDIT: Got it to work by editing the UV script, now settings are in! Great! Time to test anyway, nodiratime is not needed, noatime already has it
Click to expand...
Click to collapse
Don't suppose you could post a copy of your trimmed & tweaked version of Daniel's script for us to use?
Cuz I, for example, have no idea what's useful in the original script, and what's not useful. But I at least know how to edit the UV script, heh.
jeebspawnshop said:
Don't suppose you could post a copy of your trimmed & tweaked version of Daniel's script for us to use?
Cuz I, for example, have no idea what's useful in the original script, and what's not useful. But I at least know how to edit the UV script, heh.
Click to expand...
Click to collapse
LOL here it goes
Code:
#!/system/bin/sh
#set UV
echo "0 0 0 0 0 0 0 0 " > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#select enabled states
echo "0 0 0 0 0 0 0 0 " > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
#set scheduler for stl, bml and mmc
for i in `ls /sys/block/stl*` /sys/block/bml* /sys/block/mmcblk*
do
echo "bfq" > $i/queue/scheduler
echo "0" > $i/queue/rotational
echo "1" > $i/queue/iosched/low_latency
echo "1" > $i/queue/iosched/back_seek_penalty
echo "1000000000" > $i/queue/iosched/back_seek_max
echo "3" > $i/queue/iosched/slice_idle
done
# Remount all partitions with noatime
for k in $(busybox mount | grep relatime | cut -d " " -f3)
do
sync
busybox mount -o remount,noatime $k
done
# Tweak kernel VM management
echo "0" > /proc/sys/vm/swappiness
echo "10" > /proc/sys/vm/dirty_ratio
echo "4096" > /proc/sys/vm/min_free_kbytes
# Tweak kernel scheduler, less aggressive settings
echo "18000000" > /proc/sys/kernel/sched_latency_ns
echo "3000000" > /proc/sys/kernel/sched_wakeup_granularity_ns
echo "1500000" > /proc/sys/kernel/sched_min_granularity_ns
# Misc tweaks for battery life
echo "2000" > /proc/sys/vm/dirty_writeback_centisecs
echo "1000" > /proc/sys/vm/dirty_expire_centisecs
# Miscellaneous tweaks
setprop dalvik.vm.startheapsize 8m
done
NOTE: If you change any settings in uv app, u'll revert S_volt_scheduler to ONLY UV settings, so It's recommended to edit your UV setting on this file instead of using uv app from now on if you wants to keep your other settings
Thanks dude!
I hit your Thanks Button too.
jeebspawnshop said:
Thanks dude!
I hit your Thanks Button too.
Click to expand...
Click to collapse
Thanks U should thanks the thread starter too U should just take it as reference, modify any that you feels ok, and perhaps post here as feedback on which makes things better, especially disc scheduler and task scheduler settings.
UPDATE: Made some changes to suggested value by daniel for "fairness", these setting really deals with multitasking better
echo "20000000" > /proc/sys/kernel/sched_latency_ns
echo "2000000" > /proc/sys/kernel/sched_wakeup_granularity_ns
echo "1000000" > /proc/sys/kernel/sched_min_granularity_ns
hey fastcx, i copied and pasted your script in the UV scheduler file in init.d but it seems that it's not working as the values don't apply. any ideas why?
anyone know how to edit tcp buffer size on galaxy s III?
i found this are default settings
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi 4096,221184,3461120,4096,221184,3461120
setprop net.tcp.buffersize.lte 4094,87380,2560000,4096,16384,1220608
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4092,87380,704512,4096,16384,262144
setprop net.tcp.buffersize.hsupa 4092,87380,704512,4096,16384,262144
setprop net.tcp.buffersize.hsdpa 4092,87380,704512,4096,16384,110208
setprop net.tcp.buffersize.hspap 4092,87380,704512,4096,16384,262144
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
setprop net.tcp.buffersize.evdo_b 4094,87380,262144,4096,16384,262144
I edit build.prop but those settings didnt change ..are we using a placebo tweak?
Enviado desde mi SAMSUNG-SGH-I747 usando Tapatalk 2
init.rc overrides build.prop
this answer might come late, but better late than never.
Seems for some of these devices, the buffersize is set in the init.rc within the boot ramdisk...
Code:
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,704512,4096,16384,110208
setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hsupa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hsdpa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144
setprop net.tcp.buffersize.evdo_b 4096,87380,704512,4096,16384,262144
This means changing these settings in build.prop has indeed no effect, you'll have to override them using an initscript..
Update: We have images, all images obtained for the partitions are uploaded here:
http://jellybean.dccontests.com/optimusg/
Partion 27 is recovery, and bootloader is partition 5.
I see from the AT&T thread that many people are getting their phones this weekend. If someone who gets the phone can send me an image of the bootloader I'd like to start getting a look at it.
If you need directions on how to do this, let me know. Currently I'm trying to figure out what the block devices are on the phone. If anyone knows this let me know, so I can direct someone (dbgeek) to get a dd of it.
Shelnutt2 said:
I see from the AT&T thread that many people are getting their phones this weekend. If someone who gets the phone can send me an image of the bootloader I'd like to start getting a look at it.
Click to expand...
Click to collapse
Bought mine 15 min ago at the AT&T store. How do I take an image?
dbgeek said:
Bought mine 15 min ago at the AT&T store. How do I take an image?
Click to expand...
Click to collapse
Nice.....have to wait...
Thank you for looking at this...hopefully it will be unlocked soon
Sent from my SGH-I897 using xda premium
I can walk you through it, but how much experience do you have with Linux/adb?
Sent from my cm_tenderloin using xda app-developers app
Shelnutt2 said:
I can walk you through it, but how much experience do you have with Linux/adb?
Sent from my cm_tenderloin using xda app-developers app
Click to expand...
Click to collapse
Sorry, but zero sums it up pretty well. I'm capable of navigating via DOS or UNIX commands if that helps in any way.
dbgeek said:
Sorry, but zero sums it up pretty well. I'm capable of navigating via DOS or UNIX commands if that helps in any way.
Click to expand...
Click to collapse
Go ahead and install the android sdk and adb, http://wiki.cyanogenmod.com/wiki/Howto:_Install_the_Android_SDK#Windows . Then root your phone, and install busybox.
Plug your phone into the computer, run adb devices in a command prompt. It should show your phone. Then run
Code:
adb shell
su
ls /dev
df
And post the output of the last two commands. I need to know a bit more about the phone so I can give you detailed steps and that will give me the info I need.
Sorry if anything is confusing, just let me know, I'm at work typing this
Does the ATT E970 have root? Answer my own question...Yes - method seems to work from Korean thread.
Code:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>adb devices
List of devices attached
LG-E970-604d4e7f device
C:\>adb shell
[email protected]:/ $ su
su
ls /dev
ls /dev
d1|[email protected]:/ $ ls /dev
alarm
android_adb
android_mbim
apr_apps2
ashmem
binder
block
bus
ccid_bulk
ccid_ctrl
console
cpu_dma_latency
cpuctl
device-mapper
diag
dsp_debug
full
fuse
gemini0
genlock
graphics
hsicctl0
hsicctl1
hsicctl2
hsicctl3
hw_random
i2c-0
i2c-3
i2c-4
input
ion
keychord
kgsl-3d0
kmem
kmsg
lge_dm_tty0
log
mdm
media0
media1
media2
mem
msm_aac
msm_aac_in
msm_acdb
msm_amrnb
msm_amrnb_in
msm_amrwb
msm_amrwb_in
msm_camera
msm_dsps
msm_evrc
msm_evrc_in
msm_idle_stats0
msm_idle_stats1
msm_idle_stats2
msm_idle_stats3
msm_mp3
msm_multi_aac
msm_qcelp
msm_qcelp_in
msm_rotator
msm_rtac
msm_sps
msm_vidc_dec
msm_vidc_dec_sec
msm_vidc_enc
msm_vidc_reg
msm_wma
msm_wmapro
mtp_usb
network_latency
network_throughput
nmea
null
pipes
pn544
ppp
psaux
ptmx
pts
qmi0
qmi1
qmi2
qseecom
ramdump_dsps
ramdump_lpass
ramdump_riva
ramdump_smem-dsps
random
rfkill
rmnet_mux_ctrl
rtc0
siI-8334
smd1
smd11
smd2
smd21
smd22
smd27
smd3
smd36
smd4
smd5
smd6
smd7
smd_cxm_qmi
smd_pkt_loopback
smd_sns_adsp
smd_sns_dsps
smdcntl0
smdcntl1
smdcntl2
smdcntl3
smdcntl4
smdcntl5
smdcntl6
smdcntl7
smdcntl8
smem_log
snd
socket
tgt
tpa_amp
tspdrv
tty
tty0
tty1
tty10
tty11
tty12
tty13
tty14
tty15
tty16
tty17
tty18
tty19
tty2
tty20
tty21
tty22
tty23
tty24
tty25
tty26
tty27
tty28
tty29
tty3
tty30
tty31
tty32
tty33
tty34
tty35
tty36
tty37
tty38
tty39
tty4
tty40
tty41
tty42
tty43
tty44
tty45
tty46
tty47
tty48
tty49
tty5
tty50
tty51
tty52
tty53
tty54
tty55
tty56
tty57
tty58
tty59
tty6
tty60
tty61
tty62
tty63
tty7
tty8
tty9
ttyGS0
ttyUSB0
tun
uinput
urandom
usbf
usb_accessory
usb_autorun
usf1
v4l-subdev0
v4l-subdev1
v4l-subdev2
v4l-subdev3
v4l-subdev4
v4l-subdev5
v4l-subdev6
v4l-subdev7
v4l-subdev8
vcs
vcs1
vcs63
vcsa
vcsa1
vcsa63
video0
video1
video100
video2
video3
video38
video39
wcnss_wlan
xt_qtaguid
zero
[email protected]:/ $ df
dfdf
/system/bin/sh: dfdf: not found
127|[email protected]:/ $ df
df
Filesystem Size Used Free Blksize
/dev 911.16M 64.00K 911.10M 4096
/mnt/asec 911.16M 0.00K 911.16M 4096
/mnt/obb 911.16M 0.00K 911.16M 4096
/system 1.46G 1.06G 411.00M 4096
/data 11.30G 1.64G 9.65G 4096
/persist 7.86M 4.09M 3.77M 4096
/cache 787.39M 13.39M 774.00M 4096
/persist-lg 7.86M 4.11M 3.75M 4096
/mpt 31.48M 4.04M 27.45M 4096
/factory 15.73M 4.04M 11.69M 4096
/sns 7.86M 4.05M 3.81M 4096
/tombstones 251.97M 4.15M 247.82M 4096
/firmware 63.95M 52.84M 11.11M 16384
/mnt/sdcard 11.30G 1.64G 9.65G 4096
/mnt/sdcard/external_sd 14.70G 128.00K 14.70G 32768
[email protected]:/ $
mbonus, thank you for the output, unfortunatly it doesn't show me what the storage memory block devices are. I'm looking for something along the lines of "mmcblk" or others, try the following as root (su) in adb and post the output:
Code:
cat /etc/vold.fstab
The thing here is I just have to figure out which block device/partition holds the bootloader, so you can dump it to the sdcard (or internal storage) and then send it my way. The vold.fstab file should contain what the block devices are. They might be in a subfolder of /dev .
Also when you are roor you should have a '#' instead of a '$' at the beginning of the line in the shell.
ok I'll give it another shot when I get home
Sent from my LG-E970 using xda app-developers app
Thanks for the preliminary work, guys. I really want LTE, so I can't do the new Nexus. The Optimus has mediocre software and the One X+ still apparently has mediocre battery life, so getting this thing opened up to new ROMs might tip me over to the "G".
I thought I had root, but I still get the $ in adb shell
Idk I like the lg rom so far it is very smooth just gonna root and delete some bloatware
Sent from my LG Optimus G
Glad to hear you like the ROM. I'm just going from reviews, so hopefully I'll also like it when I see it in person. I was really hoping the One X+ would be my next phone, but the battery life and heat generation may be a deal breaker.
Edit: Plus, I'm hoping we can open the G up and maybe use some of the development for the Nexus ... except with LTE!
Ilkinansr92 said:
Idk I like the lg rom so far it is very smooth just gonna root and delete some bloatware
Sent from my LG Optimus G
Click to expand...
Click to collapse
let us know how bloat removal goes and what method
mbonus said:
I thought I had root, but I still get the $ in adb shell
Click to expand...
Click to collapse
Well does the `cat /etc/vold.fstab` yielf anything? You *might* not need root access to read it. If it doesn't work, or says file not find, run
Code:
ls /etc/
I appreciate you being the guinipig here, just trying find some way to figure out what the block devices are, as I don't see them listed under /dev.
Ilkinansr92 said:
Idk I like the lg rom so far it is very smooth just gonna root and delete some bloatware
Sent from my LG Optimus G
Click to expand...
Click to collapse
mbonus said:
let us know how bloat removal goes and what method
Click to expand...
Click to collapse
^^this, and additionally what you decided to remove as well, if you don't mind, sir.
Code:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Mike>adb shell
[email protected]:/ $ su
su
[email protected]:/ # ls /dev
ls /dev
alarm
android_adb
android_mbim
apr_apps2
ashmem
binder
block
bus
ccid_bulk
ccid_ctrl
console
cpu_dma_latency
cpuctl
device-mapper
diag
dsp_debug
full
fuse
gemini0
genlock
graphics
hsicctl0
hsicctl1
hsicctl2
hsicctl3
hw_random
i2c-0
i2c-3
i2c-4
input
ion
keychord
kgsl-3d0
kmem
kmsg
lge_dm_tty0
log
mdm
media0
media1
media2
mem
msm_aac
msm_aac_in
msm_acdb
msm_amrnb
msm_amrnb_in
msm_amrwb
msm_amrwb_in
msm_camera
msm_dsps
msm_evrc
msm_evrc_in
msm_idle_stats0
msm_idle_stats1
msm_idle_stats2
msm_idle_stats3
msm_mp3
msm_multi_aac
msm_qcelp
msm_qcelp_in
msm_rotator
msm_rtac
msm_sps
msm_vidc_dec
msm_vidc_dec_sec
msm_vidc_enc
msm_vidc_reg
msm_wma
msm_wmapro
mtp_usb
network_latency
network_throughput
nmea
null
pipes
pn544
ppp
psaux
ptmx
pts
qmi0
qmi1
qmi2
qseecom
ramdump_dsps
ramdump_lpass
ramdump_riva
ramdump_smem-dsps
random
rfkill
rmnet_mux_ctrl
rtc0
siI-8334
smd1
smd11
smd2
smd21
smd22
smd27
smd3
smd36
smd4
smd5
smd6
smd7
smd_cxm_qmi
smd_pkt_loopback
smd_sns_adsp
smd_sns_dsps
smdcntl0
smdcntl1
smdcntl2
smdcntl3
smdcntl4
smdcntl5
smdcntl6
smdcntl7
smdcntl8
smem_log
snd
socket
tgt
tpa_amp
tspdrv
tty
tty0
tty1
tty10
tty11
tty12
tty13
tty14
tty15
tty16
tty17
tty18
tty19
tty2
tty20
tty21
tty22
tty23
tty24
tty25
tty26
tty27
tty28
tty29
tty3
tty30
tty31
tty32
tty33
tty34
tty35
tty36
tty37
tty38
tty39
tty4
tty40
tty41
tty42
tty43
tty44
tty45
tty46
tty47
tty48
tty49
tty5
tty50
tty51
tty52
tty53
tty54
tty55
tty56
tty57
tty58
tty59
tty6
tty60
tty61
tty62
tty63
tty7
tty8
tty9
ttyGS0
ttyUSB0
tun
uinput
urandom
usb
usb_accessory
usb_autorun
usf1
v4l-subdev0
v4l-subdev1
v4l-subdev2
v4l-subdev3
v4l-subdev4
v4l-subdev5
v4l-subdev6
v4l-subdev7
v4l-subdev8
vcs
vcs1
vcs63
vcsa
vcsa1
vcsa63
video0
video1
video100
video2
video3
video38
video39
wcnss_wlan
xt_qtaguid
zero
[email protected]:/ # df
df
Filesystem Size Used Free Blksize
/dev 911.16M 64.00K 911.10M 4096
/mnt/asec 911.16M 0.00K 911.16M 4096
/mnt/obb 911.16M 0.00K 911.16M 4096
/system 1.46G 1.06G 411.95M 4096
/data 11.30G 1.74G 9.55G 4096
/persist 7.86M 4.09M 3.77M 4096
/cache 787.39M 17.28M 770.11M 4096
/persist-lg 7.86M 4.11M 3.75M 4096
/mpt 31.48M 4.04M 27.45M 4096
/factory 15.73M 4.04M 11.69M 4096
/sns 7.86M 4.05M 3.81M 4096
/tombstones 251.97M 4.15M 247.82M 4096
/firmware 63.95M 52.84M 11.11M 16384
/mnt/sdcard 11.30G 1.74G 9.55G 4096
/mnt/sdcard/external_sd 14.70G 9.28M 14.69G 32768
[email protected]:/ # cat /etc/vold.fstab
cat /etc/vold.fstab
# Copyright (c) 2011, Code Aurora Forum. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Code Aurora Forum, Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# LGE_CHANGE For MTP
dev_mount sdcard2 /mnt/sdcard/external_sd auto /devices/platform/msm_sdcc.3/mmc_
host
[email protected]:/ #[COLOR="Silver"]
[SIZE=1]---------- Post added at 08:14 PM ---------- Previous post was at 08:13 PM ----------[/SIZE]
[/COLOR]Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Mike>adb shell
[email protected]:/ $ su
su
[email protected]:/ # ls /etc/
ls /etc/
DxHDCP.cfg
NOTICE.html.gz
OperatorPolicy.xml
UserPolicy.xml
amazon-kindle.properties
apns-conf.xml
apns_kr_mpdn.xml
apns_lgu_mpdn.xml
audio_effects.conf
bluetooth
capability.xml
dbus.conf
dcm_settings.xml
dhcpcd
efs.txt
es310.bin
event-log-tags
factory_reset_magic
fallback_fonts.xml
featureset.xml
firmware
format_first.sh
fota
gps.conf
hosts
init.goldfish.sh
init.lge_dut.bt.sh
init.qcom.bt.sh
init.qcom.coex.sh
init.qcom.efs.sync.sh
init.qcom.fm.sh
init.qcom.ftm_module.sh
init.qcom.ftm_module_out.sh
init.qcom.mdm_links.sh
init.qcom.modem_links.sh
init.qcom.post_boot.sh
init.qcom.sdio.sh
init.qcom.thermald_conf.sh
init.qcom.wifi.sh
init.wlan-on-off.sh
last_kmsg_backup.sh
logger_events.sh
logger_kernel.sh
logger_main.sh
logger_packet.sh
logger_radio.sh
logger_system.sh
logging_android.sh
logging_android_apart.sh
logging_kernel.sh
logging_kernel_apart.sh
logging_prepare.sh
mQ128-v44se.dls
media_profiles.xml
mkshrc
mts_mask
nfcee_access.xml
null_page
omadm
permissions
ppp
qosmgr_rules.xml
readahead_list.txt
save_kernel_log.sh
security
settings.xml
snd_soc_msm
system_fonts.xml
telephony.xml
thermald.conf
updatecmds
usf_post_boot.sh
vold.fstab
wfdconfig.xml
wifi
wiperconfig.xml
[email protected]:/ #
---------- Post added at 08:17 PM ---------- Previous post was at 08:14 PM ----------
mbonus said:
I thought I had root, but I still get the $ in adb shell
Click to expand...
Click to collapse
i'm such a newb, I didn't notice the phone had a superuser dialog box open requesting approval.
Okay the vold.fstab gave me a bit more info that I needed. Post the output of 'ls /devices/platform/' please. Again I do apologise for all the commands but this is set up a bit different than my heroc or touchpad, so just having to work through things through you, I do appreciate it though!
Also you can use the
Code:
[/code ] tags to post things in code boxes.
Sent from my cm_tenderloin using xda app-developers app
Shelnutt2 said:
Okay the vold.fstab gave me a bit more info that I needed. Post the output of 'ls /devices/platform/' please. Again I do apologise for all the commands but this is set up a bit different than my heroc or touchpad, so just having to work through things through you, I do appreciate it though!
Also you can use the
Code:
[/code ] tags to post things in code boxes.
Sent from my cm_tenderloin using xda app-developers app[/QUOTE]
Hey Shelnutt, thanks for jumping on this so early. Really thinkin about making this my next device and getting the bootloader unlocked will seal the deal.
Based on what you've seen so far, do you think any progress can be made?
I'd be willing to get the device and be a guinea pig as well....
Click to expand...
Click to collapse
hello,I am using tigra rom android 4.3...I can't change my dns with the usual method,both apps and manual in advanced setting ,,anyone can help me with this?
rulsfabre said:
hello,I am using tigra rom android 4.3...I can't change my dns with the usual method,both apps and manual in advanced setting ,,anyone can help me with this?
Click to expand...
Click to collapse
An article say, The Dns part of the 4.3 OS has been changed significantly, so the usual methode not working anynore
change Dns without root
ayahmayra said:
An article say, The Dns part of the 4.3 OS has been changed significantly, so the usual methode not working anynore
Click to expand...
Click to collapse
There is this app that without root change dns:
set google's dns
play.google.com/store/apps/details?id=com.dnset
pro user set dns:
play.google.com/store/apps/details?id=com.dnsetpro
adfadf89 said:
There is this app that without root change dns:
set google's dns
play.google.com/store/apps/details?id=com.dnset
pro user set dns:
play.google.com/store/apps/details?id=com.dnsetpro
Click to expand...
Click to collapse
thank bro!!!! it's working for me
Change your DNS servers in Android.
You can change the same thing on your rooted Android Device.
[email protected]:/ # ndc resolver flushif -- flushes old DNS servers
[email protected]:/ # ndc resolver flushdefaultif -- flush resolver
[email protected]:/ # ndc resolver setifdns <iface> <domains> <dns1> <dns2> ... -- Add the new servers
[email protected]:/ # ndc resolver setdefaultif -- Set as the default device
rulsfabre said:
hello,I am using tigra rom android 4.3...I can't change my dns with the usual method,both apps and manual in advanced setting ,,anyone can help me with this?
Click to expand...
Click to collapse
Change your DNS servers in Android.
You can change the same thing on your rooted Android Device.
With root privileges and a terminal app or (adb shell):
[email protected]:/ # ndc resolver flushif -- flushes old DNS servers
[email protected]:/ # ndc resolver flushdefaultif -- flush resolver
[email protected]:/ # ndc resolver setifdns <iface> <domains> <dns1> <dns2> ... -- Add the new servers
[email protected]:/ # ndc resolver setdefaultif -- Set as the default device
---
If you liked my post, then don't hesitate to hit the thanks button
I've been struggling with this issue in these days.
As you said, something is significantly changed in Android 4.3+
None of programs I tried so far worked.
This is my solution, not noob friendly!
adb shell
su
mount -o remount,rw /system
vi /etc/dhcpcd/dhcpcd-hooks/20-dns.conf
in vi editor you'll see set_dns_props() funtion which sets up dns servers when a wifi connection is established.
Code:
set_dns_props()
{
case "${new_domain_name_servers}" in
"") return 0;;
esac
count=1
for i in 1 2 3 4; do
setprop dhcp.${intf}.dns${i} ""
done
count=1
for dnsaddr in ${new_domain_name_servers}; do
setprop dhcp.${intf}.dns${count} ${dnsaddr}
count=$(($count + 1))
done
separator=" "
if [ -z "$new_domain_name" ]; then
separator=""
else
if [ -z "$new_domain_search" ]; then
separator=""
fi
fi
setprop dhcp.${interface}.domain "${new_domain_name}$separator${new_domain_search}"
}
as you see new_domain_name_servers contains dns servers array
add this line
Code:
new_domain_name_servers="8.8.4.4 8.8.8.8 $new_domain_name_servers"
function will be like below
Code:
set_dns_props()
{
new_domain_name_servers="8.8.4.4 8.8.8.8 $new_domain_name_servers"
case "${new_domain_name_servers}" in
"") return 0;;
esac
count=1
for i in 1 2 3 4; do
setprop dhcp.${intf}.dns${i} ""
done
count=1
for dnsaddr in ${new_domain_name_servers}; do
setprop dhcp.${intf}.dns${count} ${dnsaddr}
count=$(($count + 1))
done
separator=" "
if [ -z "$new_domain_name" ]; then
separator=""
else
if [ -z "$new_domain_search" ]; then
separator=""
fi
fi
setprop dhcp.${interface}.domain "${new_domain_name}$separator${new_domain_search}"
}
Edit: in vi editor
press i to edit mode. Make your changes then press esc. type :wq to write/exit
@ [email protected]:
Thank you very much, works in 4.4.2 on a LG G2, too.
(And if you use Root-Explorer, you don't need adb and vi, the File-Editor of Root-Explorer is easier IMHO.)
Needed that to use a home dnsmasq Server to access an internal owncloud Server with a router without NAT-Loopback.
PS:
A reboot is needed to make that work.
Override DNS for KitKat
bazon said:
@ [email protected]:
Thank you very much, works in 4.4.2 on a LG G2, too.
(And if you use Root-Explorer, you don't need adb and vi, the File-Editor of Root-Explorer is easier IMHO.)
Needed that to use a home dnsmasq Server to access an internal owncloud Server with a router without NAT-Loopback.
PS:
A reboot is needed to make that work.
Click to expand...
Click to collapse
Does it reliably work on 4.4.2? I'm surprised because I wrote an application which use the "ndc" command to override the DNS values.
I thought it was the only way...
P.S. My application is called "Override DNS for KitKat" and it's on the Play Store.
bazon said:
@ [email protected]:
Thank you very much, works in 4.4.2 on a LG G2, too.
(And if you use Root-Explorer, you don't need adb and vi, the File-Editor of Root-Explorer is easier IMHO.)
Needed that to use a home dnsmasq Server to access an internal owncloud Server with a router without NAT-Loopback.
PS:
A reboot is needed to make that work.
Click to expand...
Click to collapse
I am a terminal guy
Reboot is not required, just restart your wifi.
m.chinni said:
Does it reliably work on 4.4.2? I'm surprised because I wrote an application which use the "ndc" command to override the DNS values.
I thought it was the only way...
P.S. My application is called "Override DNS for KitKat" and it's on the Play Store.
Click to expand...
Click to collapse
Yes it does work on 4.4.2
Two additions:
1. IMPORTANT!
If you - as I proposed before - use Root Explorer to edit the 20-dns.conf file, Root Explorer will create a backup file called 20-dns.conf-bak. This file is parsed as well! So you have to delete that backup file if you don't want to have double definitions..
(I notices this, as my own DNSMASQ Server 192.168.2.222 was dns1 and dns2 as well...)
2. In order to avoid waiting for a timeout in another WLAN than my home WLAN, I wanted this custom DNS settings only to be applied in my own WLAN. So I wanted to include an if-condition that is only applied in my home-WLAN. As 20-dns.conf is some sort of bash file, I used the getprop function to find out how I could identify my own network. Unfortunately, there is no way to get the SSID, but something nearly as good: the Domain!
Type in a terminal on your android device:
Code:
$ getprop | grep domain
[dhcp.wlan0.domain]: [Speedport_W_921V_1_35_000]
(in my case.)
So I changed my /etc/dhcpcd/dhcpcd-hooks/20-dns.conf to only apply a custom DNS for that domain:
Code:
# Set net.<iface>.dnsN properties that contain the
# DNS server addresses given by the DHCP server.
if [[ $interface == p2p* ]]
then
intf=p2p
else
intf=$interface
fi
set_dns_props()
{
if [ "$new_domain_name" == "Speedport_W_921V_1_35_000" ]
then new_domain_name_servers="192.168.2.222 ${new_domain_name_servers}"
fi
case "${new_domain_name_servers}" in
"") return 0;;
esac
count=1
for i in 1 2 3 4; do
setprop dhcp.${intf}.dns${i} ""
done
count=1
for dnsaddr in ${new_domain_name_servers}; do
setprop dhcp.${intf}.dns${count} ${dnsaddr}
count=$(($count + 1))
done
separator=" "
if [ -z "$new_domain_name" ]; then
separator=""
else
if [ -z "$new_domain_search" ]; then
separator=""
fi
fi
setprop dhcp.${interface}.domain "${new_domain_name}$separator${new_domain_search}"
}
unset_dns_props()
{
for i in 1 2 3 4; do
setprop dhcp.${intf}.dns${i} ""
done
setprop dhcp.${interface}.domain ""
}
case "${reason}" in
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT) set_dns_props;;
EXPIRE|FAIL|IPV4LL|RELEASE|STOP) unset_dns_props;;
esac
(you see the if-condition with the domain added...)
You can watch the settings with
Code:
$ getprop | grep dns
The settings are applied after a connection change, as [email protected] stated right.
PS: I don't use a Galaxy Note, but a LG G2, and not Android 4.3, but 4.4.
This seems to work in general, maybe the thread is better located in a general section than in a device-specific section?
Change DNS on kk 4.4.2 on 3G or 4G
Hello guys
i have been searching for a way to change my dns on kk 4.4.2 while on mobile date network but no luck is that anyone can help me to do that plz.
Thanks
Any methods that work for lollipop?
The script worked for my Samsung GS2 but my Moto XT1644 doesn't have a system/etc/dhcpcd directory. Is it OK to create the directory tree and copy a downloaded 20-dns.conf script into it? If so, would I need to set permissions for the modified script?
Dear owners,
After buying the J510FN I was frustrated with the way Samsung setup the CPU control for this phone. All 4 cores were on and the minimal freq was 800 Mhz.
This meant worse battery life than possible.
I dig into the kernel to look what was possible. The post boot script /etc/init.qcom.post_boot.sh revealed it all. Our msm8914 soc (Snapdragon 410) could do much better.
I changed the init.qcom.post_boot.sh script to maximize battery life and still get the full performance the Snapdragon 410 offers.
Content of cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies:
Code:
200000 400000 533333 800000 998400 1094400 1190400
Our soc id is 206. In the script I changed these lines to let the cpu use all frequencies and let it switch off CPU cores with Qualcomm core_ctl (like hotplug).
For enable lower cpu freq:
Code:
echo 0 > /sys/module/msm_thermal/core_control/enabled
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1 > /sys/module/msm_thermal/core_control/enabled
echo "1 200000:25 400000:50 800000:85 998400:90 1094400:95 1190400:98" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
List of /sys/devices/system/cpu/cpufreq/interactive/:
Code:
above_hispeed_delay:25000 1094400:50000
align_windows:0
boost:0
grep: boostpulse: Permission denied
boostpulse_duration:80000
go_hispeed_load:90
hispeed_freq:998400
io_is_busy:1
max_freq_hysteresis:0
min_sample_time:50000
target_loads:1 200000:25 400000:50 800000:85 998400:90 1094400:95 1190400:98
timer_rate:50000
timer_slack:80000
use_migration_notif:0
use_sched_load:0
List of /sys/devices/system/cpu/cpu0/cpufreq/:
Code:
affected_cpus:0
cpuinfo_cur_freq:998400
cpuinfo_max_freq:1190400
cpuinfo_min_freq:200000
cpuinfo_transition_latency:0
related_cpus:0 1 2 3
scaling_available_frequencies:200000 400000 533333 800000 998400 1094400 1190400
scaling_available_governors:interactive userspace powersave performance
scaling_cur_freq:998400
scaling_driver:msm
scaling_governor:interactive
scaling_max_freq:1190400
scaling_min_freq:200000
scaling_setspeed:<unsupported>
Content of /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state:
Code:
200000 749380
400000 98359
533333 15319
800000 303392
998400 140371
1094400 29387
1190400 207512
For enabling cpu core switching on/off:
Code:
insmod /system/lib/modules/core_ctl.ko
echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
echo 80 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
Listing of /sys/devices/system/cpu/cpu0/core_ctl:
Code:
additional_cpus:1
busy_down_thres:60 60 60 60
busy_up_thres:80 80 80 80
cpus:CPU0 (Online)
cpus:CPU3 (Offline)
cpus:CPU1 (Offline)
cpus:CPU2 (Offline)
global_state:CPU0
global_state: CPU: 0
global_state: Online: 1
global_state: Rejected: 0
global_state: First CPU: 0
global_state: Busy%: 16
global_state: Is busy: 0
global_state: Avail CPUs: 4
global_state: Need CPUs: 1
global_state:CPU1
global_state: CPU: 1
global_state: Online: 0
global_state: Rejected: 0
global_state: First CPU: 0
global_state: Busy%: 0
global_state: Is busy: 0
global_state:CPU2
global_state: CPU: 2
global_state: Online: 0
global_state: Rejected: 0
global_state: First CPU: 0
global_state: Busy%: 0
global_state: Is busy: 0
global_state:CPU3
global_state: CPU: 3
global_state: Online: 0
global_state: Rejected: 0
global_state: First CPU: 0
global_state: Busy%: 0
global_state: Is busy: 0
max_cpus:4
min_cpus:1
need_cpus:1
offline_delay_ms:100
online_cpus:1
For this to work you need to change these lines in /system/build.prop too:
Code:
#min/max cpu in core control
#ro.core_ctl_min_cpu=2
ro.core_ctl_min_cpu=1
ro.core_ctl_max_cpu=4
#HR add lower freq (else 800000)
#ro.min_freq_4=200000
ro.min_freq_0=200000
ro.qualcomm.perf.cores_online=1
I am running this two weeks now without any problem. I wonder why Samsung didn't do this out of the box.
Enjoy your very good battery life now. (2 hour/day usage it lasts 5-7 days!!!!)
Cheers
EDIT: I added the modified init.qcom.post_boot.sh attachement. To install use these commands on rooted phone:
Code:
adb push init.qcom.post_boot.sh /sdcard
adb shell
su
mount -o remount,rw /system
cd /etc
cp -p init.qcom.post_boot.sh init.qcom.post_boot.sh.ORG
cp /sdcard/init.qcom.post_boot.sh .
chmod 644 init.qcom.post_boot.sh
exit
exit
adb reboot
EDIT2: I forgot the 533330 freq. Right target_loads should be:
Code:
"1 200000:40 400000:50 533333:70 800000:82 998400:90 1094400:95 1190400:99"
This is not a big deal. You will have to change it in the init script yourself if you want it.
Other little changes to script:
Code:
echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
echo "80 85 90 95" > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
echo 500 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms #100
echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run #3
echo 30 > /proc/sys/kernel/sched_mostly_idle_load # 20
echo 5 > /proc/sys/kernel/sched_spill_nr_run #3/10
echo 0 > /proc/sys/kernel/sched_prefer_idle #0
echo 20 > /proc/sys/kernel/sched_small_task #10
echo 60 > /proc/sys/kernel/sched_heavy_task #0
echo 20 > /proc/sys/kernel/sched_init_task_load #15
echo 5 > /proc/sys/kernel/sched_ravg_hist_size #5 nr sample
echo 500 > /proc/sys/kernel/sched_time_avg_ms #1000
echo 2 > /proc/sys/kernel/sched_window_stats_policy #3
echo 1 > /proc/sys/kernel/sched_tunable_scaling #0 1=log 2=lin
echo 80 > /proc/sys/kernel/sched_upmigrate #80
echo 70 > /proc/sys/kernel/sched_downmigrate #70
echo 500000 > /proc/sys/kernel/sched_freq_inc_notify #10485760 (10Ghz) 500 Mhz
echo 500000 > /proc/sys/kernel/sched_freq_dec_notify #10485760
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif #0
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load #0
echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load #90
#echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/max_freq_hysteresis #0
optional:
echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
#GPU settings, default pwr level 2 ( max 0 1 2 min)
echo 2 > /sys/class/kgsl/kgsl-3d0/default_pwrlevel #1
Check you CPU with floating Perf monitor from Chainfire
EDIT 25-feb-2017: Added final /etc/init.qcom.post_boot.sh which runs smooth on stock 6.0.1 ROM
Is this better than CM13's kernel?
Can't we optain the same things running CM and Kernel Auditor? If so, can we configure KA to the same paramiters as your kernel?
Have not tried CM or any other kernel. This is stock Samsung kernel with some script tweaks to optimize multi core cpu usage.
Hello
how to get this mod
thank you
I will add my /etc/init.qcom.post_boot.sh script to the OP.
Just copy your init.qcom.post_boot.sh to init.qcom.post_boot.sh.ORG and use my one.
Don't forget to set 644 permissions to it!
Cheers
tweakradje said:
I will add my /etc/init.qcom.post_boot.sh script to the OP.
Just copy your init.qcom.post_boot.sh to init.qcom.post_boot.sh.ORG and use my one.
Don't forget to set 644 permissions to it!
Cheers
Click to expand...
Click to collapse
Thanks!
some time ago i suposed about this file are bloking the cpu to use the lower freq.
but i eliminate it not edit it.
i will test the file and i will post the feedback
thanks again!
CM12.1 doesn't seem to have core_ctl.ko module included, but the frequency scaling should work.
#Down: It won't work. Kernel modules are built with specific kernel version & config in mind and they ain't gonna work between kernels.
Maybe you can try using Samsungs core_ctl.ko?
@tweakradje
Nice. By the way, I see in your screenshot that you've turned off 3 cores. Wouldn't that lead to higher battery drain when there is a high CPU load? Also there might be some lag. The CPU will be stressed more when has only 1 core enabled instead 4 and there is higher load.
I wonder if we can turn on/off cores based on CPU usage. E.g.: if CPU usage is over 50%, then enable 1 core more, just an example.
By the way, I think this should be under apps/mods section.
Cores are hot plugged using core_ctl.ko module.
If mods want to move, be my guest. No problem. I remember next time.
So!
i'm on j500F with custom rom(miui v8 5.1.1) and custom kernel
and i get this with your init.qcom.post_boot.sh:
se the first 6 screenshots
-only 2 core are active
-cant read cpu stats
-cpu performance are on half of it's power
without any init.qcom.post_boot.sh:
see the last 6 screenshots
Ps. the result are not very obiective becouse your init.qcom.post_boot.sh is for j510FN with stok rom and stok kernel
cant say nothing about battery draining, just it was the same on testing
Thanks!
Thank for the feedback. Looks ok. If you look at my sh file you can easily see what parameters I changed. Use that in your own script to check results. Use your phone for a day and check battery usage.
Cheers
Any results?
I am curious if there are users have tried this solution and what the results are. Please let me know.
tweakradje said:
what the results are.
Click to expand...
Click to collapse
what the results are I'll tell you tomorrow.today i say :good:
I make your init.qcom.post_boot.sh J510FN_CPU_control .zip for installation through TWRP
Min_800back.zip-Back stock init.qcom.post_boot.sh
Maybe someone will be needed
To install this, what do I need to do? Just flash in TWRP?
If you have stock Samsung J510 rom you can flash it from post above.
Else follow adb instructions from OP. Make a copy of your original sh file first.
I have the note 7 hybrid rom, will it work??
Think so. Check /etc/init.qcom.post_boot.sh with "adb shell cat /etc/init.qcom.post_boot.sh" from your PC.
Code:
adb push init.qcom.post_boot.sh /sdcard
adb shell
su
mount -o remount,rw /system
cd /etc
cp -p init.qcom.post_boot.sh init.qcom.post_boot.sh.ORG
cp /sdcard/init.qcom.post_boot.sh .
chmod 644 init.qcom.post_boot.sh
exit
exit
adb reboot
I flashed the file above..the phone actually seems slower
Rather than so much editing, it is not possible to do the same using some sort of app that adjusts CPU Governor?