Dangerous Performance - Shield Tablet General
So I've never really been happy with the stock shield tablets performance. It's a gaming tablet, so why do I get pwned in Vainglory due to my touches not being registered or stuttering. I understand why Nvidia had to put a cap on performance and I'll tell you how to get the performance that you expected but it's on you if you do decide to utilize my advice. Number 1 is HAVE AN EXTERNAL COOLING SOURCE! A common house fan placed behind the tablet at the very minimum.
Step one, Be rooted. Step two, flash @BitOBSessiOn OC Kernel @laufersteppenwolf really put in some time in effort in making sure its awesome and that the voltages wouldn't **** your device over. I've tested it through and through and he put nvidia to shame with it.
That being said, you won't get anywhere unless your boot.img default prop looks like this.
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
security.perf_harden=0
ro.allow.mock.location=0
ro.debuggable=1
ro.zygote=zygote32
dalvik.vm.image-dex2oat-Xms=64m
dalvik.vm.image-dex2oat-Xmx=64m
dalvik.vm.dex2oat-Xms=64m
dalvik.vm.dex2oat-Xmx=512m
ro.dalvik.vm.native.bridge=0
debug.atrace.tags.enableflags=0
persist.sys.usb.config=mtp,adb
ro.adb.secure=0
#
This is important because ADB SHELL is going to be your best friend, Terminal does work equally as well but with SHELL you can copy and paste so much faster. I've enabled init.d every which way possible in the boot.img init.rc i.e
on property:sys.boot_completed=1
start sysinit
service sysinit /sbin/sysinit.sh
oneshot
class late_start
user root
group root
disabled
mount -o remount,rw -t auto /system
mount -o remount,rw -t auto /data
mount -t rootfs -o remount,rw rootfs
if [ ! -e /system/etc/init.d ]; then
mkdir /system/etc/init.d
chown -R root.root /system/etc/init.d
chmod -R 755 /system/etc/init.d
fi
for FILE in /system/etc/init.d/*; do
sh $FILE >/dev/null
done;
mount -t rootfs -o remount,ro rootfs
mount -o remount,rw -t auto /data
mount -o remount,ro -t auto /system
it works for running #!/bin/sh and #!/system/bin/sh scripts all day but to get true performance scripts wont work. The only true way to maximize is through SU adb shell.
I've probably rambled enough already and if you understand what i've been going on about, this is how to Max your shield to the upmost dangerous overclock. you've been warned.
I know I said scripts don't work but if any one does benefit benchmarking it,s disabling journaling. This is done through TWRP. This is for ext4 partitions. Unmount /system /data /cache though TWRP and then you can ADB shell or TWRP terminal and type "SH, whatever you name this following text.sh
#!/sbin/sh
sync;
/sbin/busybox umount -l /system
/sbin/busybox umount -l /cache
/sbin/busybox umount -l /data
/sbin/busybox umount -l /dev/block/mmcblk0p13
/sbin/busybox umount -l /dev/block/mmcblk0p14
/sbin/busybox umount -l /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/mmcblk0p13
/sbin/e2fsck -p /dev/block/mmcblk0p14
/sbin/e2fsck -p /dev/block/mmcblk0p23
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -Dfy /dev/block/mmcblk0p13
/sbin/e2fsck -Dfy /dev/block/mmcblk0p14
/sbin/e2fsck -Dfy /dev/block/mmcblk0p23
sync;
This is my 50th some odd test combination that outputs the best results. remember, unmount before running.
So now down to the brass tax. This is no way good for your device, you must have cooling and it rapes the battery so plug in.
we can put the device in true performance mode, which means maxing out both gpus, putting all cores online, disabling the 5th cpu core, keeping the high power cluster always activated
ADB SHELL#
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
echo 1 > /sys/devices/system/cpu/cpu0/online
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 480000000 > /sys/kernel/debug/clock/override.c2bus/rate
echo 1 > /sys/kernel/debug/clock/override.c2bus/state
echo 756000000 > /sys/kernel/debug/clock/override.c3bus/rate
echo 1 > /sys/kernel/debug/clock/override.c3bus/state
echo G > /sys/kernel/cluster/active
cat /sys/kernel/debug/clock/override.emc/max > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state
for i in `ls /sys/devices/system/cpu/cpu*/cpuidle/state*/disable`; do echo 1
> $i; done
cat /sys/kernel/debug/clock/gbus/max > /sys/kernel/debug/clock/override.gbus/rate
echo 1 > /sys/kernel/debug/clock/override.gbus/state
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
for file in /sys/devices/system/cpu/cpu*/online; do
if [ `cat $file` -eq 0 ]; then
echo 1 > $file
fi
done
just copy and paste all of it once you're SU in ADB SHell for maximum performance.
To get your touch screen to respond as fast as you use file explorer to navigate to /system/usr/idc
and edit touch.idc by deleting the # from infront of
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.01
This is how I benchmark so high everytime, but remember, with great voltage comes great heat.
Shoutout to @BitOBSessiOn for inspiring me to learn.
I've attached my edited boot.img with init.d support and bit's f2fs kernel already installed.
unzip the image and flash it with
fastboot flash boot boot.img
if you try to flash it through recovery it wont work. I've also attached the journaling script and a virtual memory tweak script that helps with performance.
m0nt3s said:
So I've never really been happy with the stock shield tablets performance. It's a gaming tablet, so why do I get pwned in Vainglory due to my touches not being registered or stuttering. I understand why Nvidia had to put a cap on performance and I'll tell you how to get the performance that you expected but it's on you if you do decide to utilize my advice. Number 1 is HAVE AN EXTERNAL COOLING SOURCE! A common house fan placed behind the tablet at the very minimum.
Step one, Be rooted. Step two, flash @BitOBSessiOn OC Kernel, he really put in some time in effort in making sure its awesome and that the voltages wouldn't **** your device over. I've tested it through and through and he put nvidia to shame with it.
That being said, you won't get anywhere unless your boot.img default prop looks like this.
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
security.perf_harden=0
ro.allow.mock.location=0
ro.debuggable=1
ro.zygote=zygote32
dalvik.vm.image-dex2oat-Xms=64m
dalvik.vm.image-dex2oat-Xmx=64m
dalvik.vm.dex2oat-Xms=64m
dalvik.vm.dex2oat-Xmx=512m
ro.dalvik.vm.native.bridge=0
debug.atrace.tags.enableflags=0
persist.sys.usb.config=mtp,adb
ro.adb.secure=0
#
This is important because ADB SHELL is going to be your best friend, Terminal does work equally as well but with SHELL you can copy and paste so much faster. I've enabled init.d every which way possible in the boot.img init.rc i.e
on property:sys.boot_completed=1
start sysinit
service sysinit /sbin/sysinit.sh
oneshot
class late_start
user root
group root
disabled
mount -o remount,rw -t auto /system
mount -o remount,rw -t auto /data
mount -t rootfs -o remount,rw rootfs
if [ ! -e /system/etc/init.d ]; then
mkdir /system/etc/init.d
chown -R root.root /system/etc/init.d
chmod -R 755 /system/etc/init.d
fi
for FILE in /system/etc/init.d/*; do
sh $FILE >/dev/null
done;
mount -t rootfs -o remount,ro rootfs
mount -o remount,rw -t auto /data
mount -o remount,ro -t auto /system
it works for running #!/bin/sh and #!/system/bin/sh scripts all day but to get true performance scripts wont work. The only true way to maximize is through SU adb shell.
I've probably rambled enough already and if you understand what i've been going on about, this is how to Max your shield to the upmost dangerous overclock. you've been warned.
I know I said scripts don't work but if any one does benefit benchmarking it,s disabling journaling. This is done through TWRP. This is for ext4 partitions. Unmount /system /data /cache though TWRP and then you can ADB shell or TWRP terminal and type "SH, whatever you name this following text.sh
#!/sbin/sh
sync;
/sbin/busybox umount -l /system
/sbin/busybox umount -l /cache
/sbin/busybox umount -l /data
/sbin/busybox umount -l /dev/block/mmcblk0p13
/sbin/busybox umount -l /dev/block/mmcblk0p14
/sbin/busybox umount -l /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/mmcblk0p13
/sbin/e2fsck -p /dev/block/mmcblk0p14
/sbin/e2fsck -p /dev/block/mmcblk0p23
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -Dfy /dev/block/mmcblk0p13
/sbin/e2fsck -Dfy /dev/block/mmcblk0p14
/sbin/e2fsck -Dfy /dev/block/mmcblk0p23
sync;
This is my 50th some odd test combination that outputs the best results. remember, unmount before running.
So now down to the brass tax. This is no way good for your device, you must have cooling and it rapes the battery so plug in.
we can put the device in true performance mode, which means maxing out both gpus, putting all cores online, disabling the 5th cpu core, keeping the high power cluster always activated
ADB SHELL#
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
echo 1 > /sys/devices/system/cpu/cpu0/online
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 480000000 > /sys/kernel/debug/clock/override.c2bus/rate
echo 1 > /sys/kernel/debug/clock/override.c2bus/state
echo 756000000 > /sys/kernel/debug/clock/override.c3bus/rate
echo 1 > /sys/kernel/debug/clock/override.c3bus/state
echo G > /sys/kernel/cluster/active
cat /sys/kernel/debug/clock/override.emc/max > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state
for i in `ls /sys/devices/system/cpu/cpu*/cpuidle/state*/disable`; do echo 1
> $i; done
cat /sys/kernel/debug/clock/gbus/max > /sys/kernel/debug/clock/override.gbus/rate
echo 1 > /sys/kernel/debug/clock/override.gbus/state
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
for file in /sys/devices/system/cpu/cpu*/online; do
if [ `cat $file` -eq 0 ]; then
echo 1 > $file
fi
done
I know it's alot to copy and paste but this is the truest way to get the maximum performance.
To get your touch screen to respond as fast as you set your tablet navigate to
/system/usr/idc
and edit touch.idc which is deleting the # from infront of
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.01
This is how I benchmark so high everytime, but remember, with great voltage comes great heat.
Shoutout to @BitOBSessiOn for inspiring me to learn.
Click to expand...
Click to collapse
The touchscreen improvement is that adb shell or what not good with scripts sorry
skooter32 said:
The touchscreen improvement is that adb shell or what not good with scripts sorry
Click to expand...
Click to collapse
Learn to quote.
edisso10018 said:
Learn to quote.
Click to expand...
Click to collapse
Eh? I ask a simple question and get stupidityin return cheers oh u do realise that this is xda ?
@skooter32 For the toucscreen I use fx file explorer, it has a built in text editor and it has easy root navigation
I attached some files to the original post, the boot img is userdebug with true SU, although I would reflash supersu-sr-1 after installing the new boot.img
m0nt3s said:
@skooter32 For the toucscreen I use fx file explorer, it has a built in text editor and it has easy root navigation
Click to expand...
Click to collapse
So am adding this to build.prop? Because a cant find it on build.prop
---------- Post added at 11:22 PM ---------- Previous post was at 11:20 PM ----------
skooter32 said:
So am adding this to build.prop? Because a cant find it on build.prop
Click to expand...
Click to collapse
Edit found it
skooter32 said:
So am adding this to build.prop? Because a cant find it on build.prop
---------- Post added at 11:22 PM ---------- Previous post was at 11:20 PM ----------
Edit found it
Click to expand...
Click to collapse
Sadly editing the build prop doesn't change touchscreen sensitivity. Install the apk I've attached, grant it root permission, then from in the apk, go to system(root) system, then usr, then idc, once your in the idc folder you'll see touch.idc which you need to open with fx text editor and delete the # infront of
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.01
save your changes and then back out to the same idc folder and editsensor00fn11.idc the same by deleting the the #
you only have to do this once, since I've already changed it i might be mistaken but the stock sensitivty is #0.0125, change it to 0.001 and save in both
proof of concept
@boswelja, @BitOBSessiOn, @Steel01,[/MENTION], @Bogdacutu,
So I need some help and you guys are the best of the best. The problem I'm having is that I've gutted the OTA 4.3 rom so much that when I try to build the replicate of my rom it errors out after booting with "setup wizard has failed" and just loops after booting. If I were to give you a TWRP backup of my current rom with settings do you think you could get it to work? I'm currently full f2fs, with a probably more than i should of gutted OTA 4.3. This is my lowest benchmark that I'm confident with your help we could make it universal. any input is apprciated.
m0nt3s said:
Sadly editing the build prop doesn't change touchscreen sensitivity. Install the apk I've attached, grant it root permission, then from in the apk, go to system(root) system, then usr, then idc, once your in the idc folder you'll see touch.idc which you need to open with fx text editor and delete the # infront of
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.01
save your changes and then back out to the same idc folder and editsensor00fn11.idc the same by deleting the the #
you only have to do this once, since I've already changed it i might be mistaken but the stock sensitivty is #0.0125, change it to 0.001 and save in both
Click to expand...
Click to collapse
Sorted????
m0nt3s said:
@boswelja, @BitOBSessiOn, @Steel01,[/MENTION], @Bogdacutu,
So I need some help and you guys are the best of the best. The problem I'm having is that I've gutted the OTA 4.3 rom so much that when I try to build the replicate of my rom it errors out after booting with "setup wizard has failed" and just loops after booting. If I were to give you a TWRP backup of my current rom with settings do you think you could get it to work? I'm currently full f2fs, with a probably more than i should of gutted OTA 4.3. This is my lowest benchmark that I'm confident with your help we could make it universal. any input is apprciated.
Click to expand...
Click to collapse
Err.. the best I could do is get a logcat and tell u what's causing the problem
m0nt3s said:
So I've never really been happy with the stock shield tablets performance. It's a gaming tablet, so why do I get pwned in Vainglory due to my touches not being registered or stuttering. I understand why Nvidia had to put a cap on performance and I'll tell you how to get the performance that you expected but it's on you if you do decide to utilize my advice. Number 1 is HAVE AN EXTERNAL COOLING SOURCE! A common house fan placed behind the tablet at the very minimum.
Step one, Be rooted. Step two, flash @BitOBSessiOn OC Kernel, he really put in some time in effort in making sure its awesome and that the voltages wouldn't **** your device over. I've tested it through and through and he put nvidia to shame with it.
That being said, you won't get anywhere unless your boot.img default prop looks like this.
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
security.perf_harden=0
ro.allow.mock.location=0
ro.debuggable=1
ro.zygote=zygote32
dalvik.vm.image-dex2oat-Xms=64m
dalvik.vm.image-dex2oat-Xmx=64m
dalvik.vm.dex2oat-Xms=64m
dalvik.vm.dex2oat-Xmx=512m
ro.dalvik.vm.native.bridge=0
debug.atrace.tags.enableflags=0
persist.sys.usb.config=mtp,adb
ro.adb.secure=0
#
This is important because ADB SHELL is going to be your best friend, Terminal does work equally as well but with SHELL you can copy and paste so much faster. I've enabled init.d every which way possible in the boot.img init.rc i.e
on property:sys.boot_completed=1
start sysinit
service sysinit /sbin/sysinit.sh
oneshot
class late_start
user root
group root
disabled
mount -o remount,rw -t auto /system
mount -o remount,rw -t auto /data
mount -t rootfs -o remount,rw rootfs
if [ ! -e /system/etc/init.d ]; then
mkdir /system/etc/init.d
chown -R root.root /system/etc/init.d
chmod -R 755 /system/etc/init.d
fi
for FILE in /system/etc/init.d/*; do
sh $FILE >/dev/null
done;
mount -t rootfs -o remount,ro rootfs
mount -o remount,rw -t auto /data
mount -o remount,ro -t auto /system
it works for running #!/bin/sh and #!/system/bin/sh scripts all day but to get true performance scripts wont work. The only true way to maximize is through SU adb shell.
I've probably rambled enough already and if you understand what i've been going on about, this is how to Max your shield to the upmost dangerous overclock. you've been warned.
I know I said scripts don't work but if any one does benefit benchmarking it,s disabling journaling. This is done through TWRP. This is for ext4 partitions. Unmount /system /data /cache though TWRP and then you can ADB shell or TWRP terminal and type "SH, whatever you name this following text.sh
#!/sbin/sh
sync;
/sbin/busybox umount -l /system
/sbin/busybox umount -l /cache
/sbin/busybox umount -l /data
/sbin/busybox umount -l /dev/block/mmcblk0p13
/sbin/busybox umount -l /dev/block/mmcblk0p14
/sbin/busybox umount -l /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -yf /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -p /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -p /dev/block/mmcblk0p13
/sbin/e2fsck -p /dev/block/mmcblk0p14
/sbin/e2fsck -p /dev/block/mmcblk0p23
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -o journal_data_writeback -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p13
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p14
/sbin/tune2fs -O ^has_journal -c 1 -i 1d -m 0 /dev/block/mmcblk0p23
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/APP
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/CAC
/sbin/e2fsck -Dfy /dev/block/platform/sdhci-tegra.3/by-name/UDA
/sbin/e2fsck -Dfy /dev/block/mmcblk0p13
/sbin/e2fsck -Dfy /dev/block/mmcblk0p14
/sbin/e2fsck -Dfy /dev/block/mmcblk0p23
sync;
This is my 50th some odd test combination that outputs the best results. remember, unmount before running.
So now down to the brass tax. This is no way good for your device, you must have cooling and it rapes the battery so plug in.
we can put the device in true performance mode, which means maxing out both gpus, putting all cores online, disabling the 5th cpu core, keeping the high power cluster always activated
ADB SHELL#
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
echo 1 > /sys/devices/system/cpu/cpu0/online
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 480000000 > /sys/kernel/debug/clock/override.c2bus/rate
echo 1 > /sys/kernel/debug/clock/override.c2bus/state
echo 756000000 > /sys/kernel/debug/clock/override.c3bus/rate
echo 1 > /sys/kernel/debug/clock/override.c3bus/state
echo G > /sys/kernel/cluster/active
cat /sys/kernel/debug/clock/override.emc/max > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state
for i in `ls /sys/devices/system/cpu/cpu*/cpuidle/state*/disable`; do echo 1
> $i; done
cat /sys/kernel/debug/clock/gbus/max > /sys/kernel/debug/clock/override.gbus/rate
echo 1 > /sys/kernel/debug/clock/override.gbus/state
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
for file in /sys/devices/system/cpu/cpu*/online; do
if [ `cat $file` -eq 0 ]; then
echo 1 > $file
fi
done
just copy and paste all of it once you're SU in ADB SHell for maximum performance.
To get your touch screen to respond as fast as you use file explorer to navigate to /system/usr/idc
and edit touch.idc by deleting the # from infront of
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.01
This is how I benchmark so high everytime, but remember, with great voltage comes great heat.
Shoutout to @BitOBSessiOn for inspiring me to learn.
I've attached my edited boot.img with init.d support and bit's f2fs kernel already installed.
unzip the image and flash it with
fastboot flash boot boot.img
if you try to flash it through recovery it wont work. I've also attached the journaling script and a virtual memory tweak script that helps with performance.
Click to expand...
Click to collapse
Although I was working at the beginning in a OC kernel, all latest OC work must be thanked to @laufersteppenwolf . Basically I've only merged his work in latest BitO-KX series.
Correct merits should be put in OP, please.
Thx!
Touch tweaks; latency or sensitivity?
Thanks for these details. I understand the objective of these tweaks are for hardware performance, but I'd like to ask if these modifications to the touch IDC improve touch latency on the Shield? I recently purchased one when stock became available and find that it's touch response is significantly slower than my Nexus 9 (same K1, but dual core 64-bit) when not plugged into any power source (so far my power sources introduce MORE latency...). I'd like to identify any measures I can take to reduce touch latency if possible.
This is apparent in any scrolling app, using debug 'show touches', or testing apps such as Yet Another Multi Touch Tester, where any visual indication lags behind the finger significantly when dragging and swiping. It also results in diminished response in rhythm games which already have enough trouble with the state of Android audio latency.
This tweak looks like it adjusts touch sensitivity (finger distance from screen before registering a touch), which I don't have any problem with. Can anyone using these tweaks confirm or deny if they improve latency as well?
@Crayphish
Try using my modified sysctl, it sounds like you're using the stock one which limits so many different factors that I wouldn't really know where to start troubleshooting, I would start in ADB SHELL change these parameters start by replacing your sysctl,the easiest way to change all the new parameters would be with 3C toolbox .
eglSwapInterval — specifies the minimum number of video frame periods per buffer swap for the window associated with the current context.
The interval takes effect when eglSwapBuffers is first called subsequent to the eglSwapInterval call.
The interval specified by the function applies to the draw surface bound to the context that is current on the calling thread.
If interval is set to a value of 0, buffer swaps are not synchronized to a video frame, and the swap happens as soon as the render is complete. interval is silently clamped to minimum and maximum implementation dependent valuesbefore being stored; these values are defined by EGLConfig attributes EGL_MIN_SWAP_INTERVAL and EGL_MAX_SWAP_INTERVAL respectively.
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 256
EGL_MIN_SWAP_INTERVAL = 0
EGL_MAX_SWAP_INTERVAL = 10
add these lines to your build prop
ENFORCE_PROCESS_LIMIT=false
MAX_SERVICE_INACTIVITY=false
MIN_HIDDEN_APPS=false
MAX_HIDDEN_APPS=false
CONTENT_APP_IDLE_OFFSET=false
EMPTY_APP_IDLE_OFFSET=false
MAX_ACTIVITIES=false
ACTIVITY_INACTIVITY_RESET_TIME=false
MAX_RECENT_TASKS=false
MIN_RECENT_TASKS=false
APP_SWITCH_DELAY_TIME=false
MAX_PROCESSES=false
PROC_START_TIMEOUT=false
CPU_MIN_CHECK_DURATION=false
GC_TIMEOUT=false
SERVICE_TIMEOUT=false
MIN_CRASH_INTERVAL=false
persist.service.adb.enable=1
persist.service.debuggable=1
persist.sys.usb.config=mtp,adb
ro.zygote.disable_gl_preload=false
windowsmgr.max_events_per_sec=180
debug.sf.hw=1
debug.composition.type=gpu
persist.sys.ui.hw=1
persist.sys.composition.type=gpu
debug.performance.tuning=1
touch.pressure.scale=0.001
view.touch_slop=4
ro.min_pointer_dur=0.001
touch.size.calibration=geometric
touch.size.scale=100
touch.size.bias=70
touch.pressure.calibration=amplitude
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.ril.disable.power.collapse=0
dalvik.vm.heaptargetutilization=0.75
sys.usb.config=mtp,adb
dalvik.vm.dexopt-flags=m=y,v=n
ro.debuggable=1
ro.kernel.android.checkjni=0
ro.secure=0
profiler.force_disable_ulog=1
profiler.force_disable_err_rpt=1
debug.egl.hw=1
ro.config.disable.hw_accel=false
video.accelerate.hw=1
ADB SHELL This and see is you notice a difference.
I noticed a huge difference after maxing out the emc memory and the 3d.emc
cat /sys/kernel/debug/clock/emc/possible_rates
cat /sys/kernel/debug/clock/3d.emc/possible_rates
cat /sys/kernel/debug/clock/emc/max > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state
echo "EMC: `cat /sys/kernel/debug/clock/emc/rate`"
cat /sys/kernel/debug/clock/3d.emc/max > /sys/kernel/debug/clock/3d.emc/rate
echo 1 > /sys/kernel/debug/clock/override.3d.emc/state
echo "3d.EMC: `cat /sys/kernel/debug/clock/3d.emc/rate`"
it's going to be a bit of a troubleshooting process but try these tweaks and let me know if anything changes for better or worse. Also I would make a Full TWRP Backup before.
@m0nt3s
Thanks for the help. I've just put TWRP on the device and setup @BitOBSessiOn 's experimental F2FS kernel with good success so far. I will try your sysctl and build.prop changes as well and see if I can get any improvements. :good:
Kernel auditor is also a very useful app that I think is a must have
Crayphish said:
@m0nt3s
Thanks for the help. I've just put TWRP on the device and setup @BitOBSessiOn 's experimental F2FS kernel with good success so far. I will try your sysctl and build.prop changes as well and see if I can get any improvements. :good:
Click to expand...
Click to collapse
Can you or anyone else point me in a direction for everything to make the sensitivity consistent?
I literally bought the Shield K1 tablet to play a rhythm game (Love Live, specifically) and whenever I'm playing a very difficult song, I easily drop my combo due to touches not being input. I'm certain there's some way of fixing this...
What rom should I use, should I change the kernel, what else should I try? I don't have any external cooling sources and I'm pretty new/bad at this stuff overall.
Not even sure what to do with a sysctl.
I've tried a bunch of things, and so far my tablet feels worse than when I started from the stock rom with just root.
@KariArisu
Go to settings, about tablet, and tap on Model number six times to open the built in touch calibrator.
The biggest performance impactor would be Google. Go to settings accounts, google, and uncheck Sync and every other google feature. if you do need to use a feature you can always do it manually or turn the feature back on when you need it, googles background sync eats %23 - %29 memory when activated. if you're not using cloudprint turn that off under settings printing, you can also go to about tablet, tap on build number 7 times, enabled developer options go down to the drawing section, change Window, Transition, and Animatorr scale to .5 or .25 if you have gravity box installed. also in about tablet uncheck help nvidia improve shield, ot's another background sync app but Nvidia is sneaky in that in the build prop they still have this enabled stock
ro.nvidia.collect_data_enabled=true, use FX editor, navigate to system(root) system, click the little lock to unlock or remount as r/w and then edit your build prop lines
ro.nvidia.collect_data_enabled=false
ro.input.noresample=0
you can also go back to settings, developer options, hardware accelerated rendering, check force use of GPU for 2d drawing, disable HW overlays, and then go maximize system memory scroll down to the bottom of developer options, apps, background process limit and change it to either 1 or none.
Did all of this now, and it's better but still not great. Whenever I have to rapidly tap for long periods of time, it will eventually cause taps to lag behind or just not happen at all. It's really weird.
KariArisu said:
Did all of this now, and it's better but still not great. Whenever I have to rapidly tap for long periods of time, it will eventually cause taps to lag behind or just not happen at all. It's really weird.
Click to expand...
Click to collapse
Sounds like it's time to flash Bit's OC kernel, after you flash go on the playstore and get Kernel Adiutor (ROOT)
https://play.google.com/store/apps/details?id=com.grarak.kerneladiutor&hl=en
once you do, let me know and we can start tweaking some things
Related
About data2loop to increase stability
My English is poor, so I only give the code, without more explanation. code modiy from ownhere's data2ext create 3rd ext4 partion for loopback device. Please note '-o sync,commit=5',This will enhance the stability. Code: $BUSYBOX mknod /dev/loop0 b 7 0 $BUSYBOX losetup /dev/loop0 /dev/block/mmcblk3p3 $BUSYBOX mount -t ext4 -o sync,commit=5,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/loop0 /mnt/asec/extdata you can turn off journal for speed: Code: /system/bin/tune2fs -O ^has_journal /dev/block/mmcblk3p3 Code: busybox ls -lL /dev/loop* brw------- 1 0 0 7, 0 Jan 9 19:17 /dev/loop0 brw------- 1 0 0 7, 1 Jan 9 19:17 /dev/loop1 brw------- 1 0 0 7, 2 Jan 9 19:17 /dev/loop2 brw------- 1 0 0 7, 3 Jan 9 19:17 /dev/loop3 brw------- 1 0 0 7, 4 Jan 9 19:17 /dev/loop4 brw------- 1 0 0 7, 5 Jan 9 19:17 /dev/loop5 brw------- 1 0 0 7, 6 Jan 9 19:17 /dev/loop6 brw------- 1 0 0 7, 7 Jan 9 19:17 /dev/loop7
Scoring won't be so high, but stability will increase a lot
Hi Chenglu, I've actually already tried to modify your original data2loop script to use ext4 and run it with a kernel with ext4 built in. It actually benchmarks great on first boot, somewhat better than the original ext2 data2loop version, but the tablet won't boot again, it crashes sometime during boot and I have to wipe data and restart. Not sure if the sync,commit=5 options will make a difference - maybe I'll give that a try and see if it helps... EDIT: No, it still pukes out on reboot, those options don't make a difference. I've attached my inandop.sh file here. If you diff this with yours, there are only a few changes, and I'm just not sure why it doesn't work. Any ideas?
Chenglu... Thanks... this should help... but I am still very concerned with this approach.. Even though you are performing a sync you still can not guarantee that the data has been flushed out.. Flushing will depend on what other operations are in queue within the I/O sub system. In addition, right now you have a commit of every 5 seconds which honestly again leaves room for possible corruption. Again should help as this setting is meant for removable storage... Lastly DO NOT turn off the Journal. yes it will speed up the file system BUT at a HUUGE risk of data loss in the event of unclean shutdown. This is your only fail safe that ensures filesystem consistency even across unclean shutdown. Generally I agree with this approach for many situations but NOT your entire system partition or critical data partitions... These devices are too portable with unreliable power sources (not the battery but the ability for it to reboot on its own and the ability for you to accidentally power it off).. I for one am against this performance boost... Chenglu said: My English is poor, so I only give the code, without more explanation. code modiy from ownhere's data2ext create 3rd ext4 partion for loopback device. Please note '-o sync,commit=5',This will enhance the stability. Code: $BUSYBOX mknod /dev/loop0 b 7 0 $BUSYBOX losetup /dev/loop0 /dev/block/mmcblk3p3 $BUSYBOX mount -t ext4 -o sync,commit=5,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/loop0 /mnt/asec/extdata you can turn off journal for speed: Code: /system/bin/tune2fs -O ^has_journal /dev/block/mmcblk3p3 Code: busybox ls -lL /dev/loop* brw------- 1 0 0 7, 0 Jan 9 19:17 /dev/loop0 brw------- 1 0 0 7, 1 Jan 9 19:17 /dev/loop1 brw------- 1 0 0 7, 2 Jan 9 19:17 /dev/loop2 brw------- 1 0 0 7, 3 Jan 9 19:17 /dev/loop3 brw------- 1 0 0 7, 4 Jan 9 19:17 /dev/loop4 brw------- 1 0 0 7, 5 Jan 9 19:17 /dev/loop5 brw------- 1 0 0 7, 6 Jan 9 19:17 /dev/loop6 brw------- 1 0 0 7, 7 Jan 9 19:17 /dev/loop7 Click to expand... Click to collapse
Fast internal storage and ext4 partion is the fundamental solution. loopback device In some respects have an advantage.
I dont dispute the performance gain... but at a risk. Everyone should be aware of this and accept the risk... If you do then thats fine... I guess I'm more conservative when it comes to my data. Chenglu said: Fast internal storage and ext4 partion is the fundamental solution. loopback device In some respects have an advantage. Click to expand... Click to collapse
rcgabriel said: Hi Chenglu, I've actually already tried to modify your original data2loop script to use ext4 and run it with a kernel with ext4 built in. It actually benchmarks great on first boot, somewhat better than the original ext2 data2loop version, but the tablet won't boot again, it crashes sometime during boot and I have to wipe data and restart. Not sure if the sync,commit=5 options will make a difference - maybe I'll give that a try and see if it helps... EDIT: No, it still pukes out on reboot, those options don't make a difference. I've attached my inandop.sh file here. If you diff this with yours, there are only a few changes, and I'm just not sure why it doesn't work. Any ideas? Click to expand... Click to collapse your busybox support ext4?
Chenglu said: your busybox support ext4? Click to expand... Click to collapse good point, that was a mistake. I am now using a statically compiled version of mkfs.ext4 that seems to work. Mount doesn't need explicit ext4 support in busybox, should just work. And I think I'm using a version of fsck that supports ext4. EDIT: Okay, I'm using mkfs.ext4 which I've tested from the command line and it is clearly making a real ext4 filesystem. Also using a version of es2fsck that ought to work with ext4. These are both from the Desire forums, but seem to be generic ARM binaries so they seem to run on our G Tablet. Still same result - works on first boot, not thereafter. Maybe I need to use a version of busybox that explicitly supports ext4? Trying that next. BTW, I got the binaries I'm using from the data2ext.zip file here: http://forum.xda-developers.com/showthread.php?t=859419 Also - ownhere's script looks pretty badass. We should consider using something based on that. EDIT2: I am using busybox, mkfs.ext4 and e2fsck from the Desire forums, so it should support ext4 fully. Nonetheless, the exact same screen flicker followed by screen shutting off occurs with this. Attached is my updated inandop.sh. This is just baffling.
rcgabriel said: good point, that was a mistake. I am now using a statically compiled version of mkfs.ext4 that seems to work. Mount doesn't need explicit ext4 support in busybox, should just work. And I think I'm using a version of fsck that supports ext4. EDIT: Okay, I'm using mkfs.ext4 which I've tested from the command line and it is clearly making a real ext4 filesystem. Also using a version of es2fsck that ought to work with ext4. These are both from the Desire forums, but seem to be generic ARM binaries so they seem to run on our G Tablet. Still same result - works on first boot, not thereafter. Maybe I need to use a version of busybox that explicitly supports ext4? Trying that next. BTW, I got the binaries I'm using from the data2ext.zip file here: http://forum.xda-developers.com/showthread.php?t=859419 Also - ownhere's script looks pretty badass. We should consider using something based on that. EDIT2: I am using busybox, mkfs.ext4 and e2fsck from the Desire forums, so it should support ext4 fully. Nonetheless, the exact same screen flicker followed by screen shutting off occurs with this. Attached is my updated inandop.sh. This is just baffling. Click to expand... Click to collapse I'm working on this as well... Took a look at your script. It looks like you've put everything (including busybox) into /system/bin instead of /system/xbin? Your environment variable for busybox shows /system/bin... Just wanted to confirm...
rcgabriel said: EDIT2: I am using busybox, mkfs.ext4 and e2fsck from the Desire forums, so it should support ext4 fully. Nonetheless, the exact same screen flicker followed by screen shutting off occurs with this. Attached is my updated inandop.sh. This is just baffling. Click to expand... Click to collapse I'm unable to get the loop file to mount as ext4 with ADB after it fails... I'm not sure if/why it actually mounted in the first place, but I'm thinking this is a kernel issue. Are you positive that your kernel supports ext4? Also, I'm thinking ext4 might need to be compiled into the kernel instead of a module. I could be wrong, though....
Also check which mount binary you are using. Busybox has one, but there is also a "mount" sometimes linked to the "toolbox" binary in /system/bin.
Ok so I (sort of) got it working. After getting a kernel that is known working with ext4, the system was able to mount the partition again. I was getting the vegan "loop", so I went in with ADB and saw that the partition was mounted but all of the files were gone. I then booted into CW and mounted USB, and at the same time on my PC I extracted my /data/data folder from a recent clockwork backup and copied it to /sdcard. I then unmounted USB and mounted /system and /sdcard from CW. Then from ADB I copied the data folder over to /mnt/asec/extdata and fixed the perms. I created empty folders for app-private and anr because they were empty on my backup (other than a traces.txt file in anr). After bouncing the tab it booted up, but some of my settings were blown away. No big deal. Quadrant crashes at the I/O test part, but it might be because I don't have an Internet connection. The wifi is broken with the kernel I'm using. Let me know if you still can't get things mounted. I'll test this more tomorrow when I get a fixed kernel. I'm going to start working on the alternate approach of adding a 3rd partition...
anlog said: Ok so I (sort of) got it working. After getting a kernel that is known working with ext4, the system was able to mount the partition again. I was getting the vegan "loop", so I went in with ADB and saw that the partition was mounted but all of the files were gone. I then booted into CW and mounted USB, and at the same time on my PC I extracted my /data/data folder from a recent clockwork backup and copied it to /sdcard. I then unmounted USB and mounted /system and /sdcard from CW. Then from ADB I copied the data folder over to /mnt/asec/extdata and fixed the perms. I created empty folders for app-private and anr because they were empty on my backup (other than a traces.txt file in anr). After bouncing the tab it booted up, but some of my settings were blown away. No big deal. Quadrant crashes at the I/O test part, but it might be because I don't have an Internet connection. The wifi is broken with the kernel I'm using. Let me know if you still can't get things mounted. I'll test this more tomorrow when I get a fixed kernel. I'm going to start working on the alternate approach of adding a 3rd partition... Click to expand... Click to collapse The kernel should support ext4, I built it myself with ext4 enabled in the config file. And yeah, I put the busybox executable in /system/bin so it wouldn't conflict with the one in /system/xbin that Vegan already has. I also dumped mkfs.ext4 in /system/bin. What I realized is that busybox has a nasty habit of failing partially at doing things - I keep assuming that it's exactly like the stock Linux command line tools, and it's not always identical. I ended up tearing out the important stuff and running it as a standalone test script from the command line to see what was happening. Mkfs.ext4 runs with no obvious issues (I see it creates a journal at the end, so I know it's creating an ext4 filesystem now). But then I got an error: Code: mount: mounting /dev/loop0 on /mnt/asec/extdata failed: Invalid argument followed by: Code: umount: can't umount /mnt/asec/extdata: Invalid argument e2fsck 1.41.6 (30-May-2009) ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /data/ext4 is mounted. /system/bin/e2fsck: Superblock invalid, trying backup blocks... /system/bin/e2fsck: Bad magic number in super-block while trying to open /data/ext4 The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device> mount: mounting /dev/loop0 on /mnt/asec/extdata failed: Invalid argument So mount failed to mount the file device that was created - that would seem to be a big issue. And then e2fsck failed to fsck it that one I'm baffled by. I don't really understand how this "partially works" when it runs from inandop.sh but seems to fail entirely when I run it from the command line, but I sense that it "works once" because something it's getting sometimes written as ext4 sometimes as ext2/3 and that's leading obviously to corruption. Will figure more out later when I have time. I may just try adapting ownhere's script directly, he's obviously put a ton of thought into filesystem stuff and I'm not an expert in that area at all.
rcgabriel said: The kernel should support ext4, I built it myself with ext4 enabled in the config file. And yeah, I put the busybox executable in /system/bin so it wouldn't conflict with the one in /system/xbin that Vegan already has. I also dumped mkfs.ext4 in /system/bin. What I realized is that busybox has a nasty habit of failing partially at doing things - I keep assuming that it's exactly like the stock Linux command line tools, and it's not always identical. I ended up tearing out the important stuff and running it as a standalone test script from the command line to see what was happening. Mkfs.ext4 runs with no obvious issues (I see it creates a journal at the end, so I know it's creating an ext4 filesystem now). But then I got an error: Code: mount: mounting /dev/loop0 on /mnt/asec/extdata failed: Invalid argument followed by: Code: umount: can't umount /mnt/asec/extdata: Invalid argument e2fsck 1.41.6 (30-May-2009) ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /data/ext4 is mounted. /system/bin/e2fsck: Superblock invalid, trying backup blocks... /system/bin/e2fsck: Bad magic number in super-block while trying to open /data/ext4 The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device> mount: mounting /dev/loop0 on /mnt/asec/extdata failed: Invalid argument So mount failed to mount the file device that was created - that would seem to be a big issue. And then e2fsck failed to fsck it that one I'm baffled by. I don't really understand how this "partially works" when it runs from inandop.sh but seems to fail entirely when I run it from the command line, but I sense that it "works once" because something it's getting sometimes written as ext4 sometimes as ext2/3 and that's leading obviously to corruption. Will figure more out later when I have time. I may just try adapting ownhere's script directly, he's obviously put a ton of thought into filesystem stuff and I'm not an expert in that area at all. Click to expand... Click to collapse I was able to reboot 5 times and it kept the settings for me. I just couldnt test all apps because wifi was broken with the kernel I was using. I can test more today. Are you sure that your ext4 format is completing? I got an mtab error when first trying to create the journal, so I just changed the script to format it with the -O ^has_journal option and it competed. Vegan runs fine for me with latest busybox...
modify init.rc for mount ext4 /data you must have tune2fs mkfs.ext4 e2fsck binary file. Code: #!/system/bin/sh ##get highest priority /system/bin/renice -20 -r -g $$ ECHO_TARGET=/misc/inandop.log BUSYBOX="/system/bin/busybox" #data2loop by xiaolu echo "try data2loop" >> $ECHO_TARGET if [ "`$BUSYBOX df /dev/loop0 | grep loop`" != "" } ; then exit 0 fi $BUSYBOX ln -s /dev/block/loop0 /dev/loop0 $BUSYBOX ln -s /dev/block/loop1 /dev/loop1 $BUSYBOX ln -s /dev/block/loop2 /dev/loop2 $BUSYBOX ln -s /dev/block/loop3 /dev/loop3 $BUSYBOX ln -s /dev/block/loop4 /dev/loop4 $BUSYBOX ln -s /dev/block/loop5 /dev/loop5 $BUSYBOX ln -s /dev/block/loop6 /dev/loop6 $BUSYBOX ln -s /dev/block/loop7 /dev/loop7 if [ ! -e /data/system.firstrun.finish ]; then # first run data not create do nothing, data2loop after reboot #/system/bin/mkfs.ext4 -b 4096 -m 0 -F -L userdata /dev/block/mmcblk3p2 #/system/bin/tune2fs -o journal_data_writeback /dev/block/mmcblk3p2 #/system/bin/e2fsck /dev/block/mmcblk3p2 #/system/bin/tune2fs -O ^has_journal /dev/block/mmcblk3p2 $BUSYBOX mkdir /data/anr $BUSYBOX touch /data/system.firstrun.finish exit 0; fi $BUSYBOX umount /cache echo "0" > /data/misc/screen_lock_status $BUSYBOX chown 1000.1000 /data/misc/screen_lock_status $BUSYBOX chmod 644 /data/misc/screen_lock_status $BUSYBOX mkdir /mnt/asec/extdata /system/bin/tune2fs -o journal_data_writeback /dev/block/mmcblk3p2 $BUSYBOX mount -t ext4 -o remount,barrier=0,nobh,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/mmcblk3p2 /data result=$? echo "mount mmcblk3p2:$result" >> $ECHO_TARGET $BUSYBOX chown 1000.1000 /data $BUSYBOX chmod 771 /data echo "+++Need create loopback device for data, please wait... " >> $ECHO_TARGET if [ ! -e /data/data2loop.finish ]; then if [ -e /dev/block/mmcblk3p3 ]; then echo "+++Found mmcblk3p3, will use it for /data/data, create ext4 fs on it now..." >> $ECHO_TARGET /system/bin/mkfs.ext4 -b 4096 -m 0 -F -L extdata /dev/block/mmcblk3p3 /system/bin/tune2fs -o journal_data_ordered /dev/block/mmcblk3p3 /system/bin/e2fsck -y -v -f /dev/block/mmcblk3p3 #/system/bin/tune2fs -O has_journal /dev/block/mmcblk3p3 /system/bin/tune2fs -O ^has_journal /dev/block/mmcblk3p3 $BUSYBOX mount -t ext4 -o loop,commit=5,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/mmcblk3p3 /mnt/asec/extdata result=$? echo "mount /dev/block/mmcblk3p3:$result" >> $ECHO_TARGET else echo "+++Need create 512M ext2 loopback device for data, please wait... " >> $ECHO_TARGET $BUSYBOX dd if=/dev/zero of=/data/ext2 bs=1048576 count=512 $BUSYBOX mke2fs -m 0 -F -L datadata /data/ext2 echo "+++Loopback device create done... " >> $ECHO_TARGET $BUSYBOX mount -o loop,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext2 /mnt/asec/extdata fi $BUSYBOX chown 1000.1000 /mnt/asec/extdata $BUSYBOX chmod 771 /mnt/asec/extdata for i in data app-private anr ; do if [ ! -d /mnt/asec/extdata/$i ] ; then $BUSYBOX mkdir /mnt/asec/extdata/$i; fi $BUSYBOX chown 1000.1000 /mnt/asec/extdata/$i; $BUSYBOX chmod 771 /mnt/asec/extdata/$i; #if [ ! -h /data/$i ] ; then $BUSYBOX cp -a /data/$i /mnt/asec/extdata/; $BUSYBOX rm -rf /data/$i; $BUSYBOX ln -s /mnt/asec/extdata/$i /data/$i; result=$? echo "ln -s:$result" >> $ECHO_TARGET #fi done $BUSYBOX umount /mnt/asec/extdata $BUSYBOX touch /data/data2loop.finish fi if [ -e /dev/block/mmcblk3p3 ]; then /system/bin/e2fsck -y -v -f /dev/block/mmcblk3p3 #/system/bin/tune2fs -O ^has_journal /dev/block/mmcblk3p3 /system/bin/tune2fs -o journal_data_writeback /dev/block/mmcblk3p3 $BUSYBOX mknod /dev/loop0 b 7 0 $BUSYBOX losetup /dev/loop0 /dev/block/mmcblk3p3 #$BUSYBOX mount -t ext4 -o sync,commit=5,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/loop0 /mnt/asec/extdata $BUSYBOX mount -t ext4 -o barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/loop0 /mnt/asec/extdata result=$? echo "mount /dev/loop1:$result" >> $ECHO_TARGET else /system/bin/e2fsck -y -v -f /data/ext2 $BUSYBOX mount -o loop,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext2 /mnt/asec/extdata fi $BUSYBOX chown 1000.1000 /mnt/asec/extdata $BUSYBOX chmod 771 /mnt/asec/extdata $BUSYBOX mkdir /data/cache $BUSYBOX mount -o bind /data/cache /cache $BUSYBOX chmod 777 /cache sync; exit 0;
Code: rootfs / rootfs rw,relatime 0 0 tmpfs /dev tmpfs rw,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 none /acct cgroup rw,relatime,cpuacct 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 none /dev/cpuctl cgroup rw,relatime,cpu 0 0 /dev/block/mtdblock3 /system yaffs2 ro,relatime 0 0 /dev/block/mtdblock6 /logodata yaffs2 rw,nosuid,nodev,relatime 0 0 /dev/block/mmcblk3p2 /data ext4 rw,nosuid,nodev,noatime,nodiratime,barrier=0,nobh,data=writeback 0 0 /dev/block/mtdblock0 /misc yaffs2 rw,nosuid,nodev,relatime 0 0 /dev/loop0 /mnt/asec/extdata ext4 rw,nosuid,nodev,noatime,nodiratime,barrier=0,data=writeback 0 0 /dev/block/mmcblk3p2 /cache ext4 rw,nosuid,nodev,noatime,nodiratime,barrier=0,nobh,data=writeback 0 0 /dev/block/vold/179:17 /mnt/sdcard2 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=07 02,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/vold/179:17 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmas k=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 tmpfs /mnt/sdcard2/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0 /dev/block/vold/179:25 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=070 2,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/vold/179:25 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmas k=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
chenglu can you post the instructions on how to create a third partition and mount that instead of creating a loop file? I want to test that today. Thanks,
anlog said: chenglu can you post the instructions on how to create a third partition and mount that instead of creating a loop file? I want to test that today. Thanks, Click to expand... Click to collapse Code: busybox fdisk /dev/block/mmcblk3 -l Disk /dev/block/mmcblk3: 16.0 GB, 16097738752 bytes 4 heads, 16 sectors/track, 491264 cylinders Units = cylinders of 64 * 512 = 32768 bytes Device Boot Start End Blocks Id System /dev/block/mmcblk3p1 1 397087 12706776 83 Linux /dev/block/mmcblk3p2 397088 458497 1965120 83 Linux /dev/block/mmcblk3p3 458498 491264 1048544 83 Linux reboot into recovery mode Code: busybox fdisk /dev/block/mmcblk3 The number of cylinders for this disk is set to 491264. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): m m Command Action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) "d" delete a partition 1 and 2 "n" create primary partition 1 2 3 busybox mkdosfs /dev/block/mmcblk3p1 mkfs.ext4 -b 4096 -m 0 -F -L userdata /dev/block/mmcblk3p2
In your instructions it looks like partition 3 isn't referenced, but instead you're formatting /data as ext4 instead of ext3? Or am I missing something???
Add the -O ^huge_file file option to your mkfs.ext4 when formating the partition. (it won't work with this feature since it requires special kernel option that brakes compatibility with existing modules) mkfs.ext4 -O ^huge_file ........ Report back... anlog said: I was able to reboot 5 times and it kept the settings for me. I just couldnt test all apps because wifi was broken with the kernel I was using. I can test more today. Are you sure that your ext4 format is completing? I got an mtab error when first trying to create the journal, so I just changed the script to format it with the -O ^has_journal option and it competed. Vegan runs fine for me with latest busybox... Click to expand... Click to collapse
Ubuntu
Currently trying to get this to work on my S2 and having issues. My phone is running official KH3, CF-Rooted. Using ubuntu.zip from here: http://nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-android/ This guide: http://androlinux.com/android-ubuntu-development/how-to-install-ubuntu-on-android/ bootubuntu script: Code: #modprobe ext2 mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system export kit=/sdcard/ubuntu export bin=/system/bin if ! test -d /data/local/ubuntu then mkdir /data/local/ubuntu fi export mnt=/data/local/ubuntu export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH export TERM=linux export HOME=/root #mknod /dev/loop1 b 7 0 losetup /dev/block/loop7 /sdcard/ubuntu/ubuntu.img mount -t ext2 /dev/block/loop7 /data/local/ubuntu #mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt mount -o bind /proc $mnt/proc mount -o bind /dev $mnt/dev mount -t devpts devpts $mnt/dev/pts mount -t proc proc $mnt/proc mount -t sysfs sysfs $mnt/sys sysctl -w net.ipv4.ip_forward=1 echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4" echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf echo "Setting localhost on /etc/hosts " echo "127.0.0.1 localhost" > $mnt/etc/hosts echo "READY TO ROCK AND ROLL BABY! " echo "Brought to you by NexusOneHacks.net and the open source community! " echo " " chroot $mnt /bin/bash #After exit command is executed clear it all up echo " " echo "Shutting down Ubuntu" umount $mnt/dev/pts umount $mnt/proc umount $mnt/sys umount $mnt losetup -d /dev/block/loop7 I get this error (after typing "sh bootubuntu"): Code: >adb shell / $ su su # cd /sdcard cd /sdcard # cd ubuntu cd ubuntu # sh ubuntu.sh sh ubuntu.sh modprobe: chdir(2.6.35.7-I9100XXKH3-CL479037): No such file or directory ←[H←[Jmkdir: can't create directory '/data/local/mnt': File exists ←[H←[Jchmod: bootubuntu: Operation not permitted chmod: fsrw: Operation not permitted chmod: mountonly: Operation not permitted chmod: ubuntu.img: Operation not permitted chmod: ubuntu.sh: Operation not permitted chmod: unionfs: Operation not permitted ←[H←[J Ubuntu Chroot Bootloader v0.1 Ubuntu Bootloader is now installed! This process does NOT damage Android OS! Original Installer by Charan Singh Modified for Ubuntu Chroot by Max Lee at AndroLinux.com ,G2Hacks.com and NexusOn eHacks.net To enter the Ubuntu Linux console just type 'bootubuntu' # sh bootubuntu sh bootubuntu failed: No such file or directoryk3 on /system bootubuntu: line 41: syntax error: unexpected end of file (expecting "then") # Any ideas?
Boot Process research based on 2.2.3 Verizon WebDoctor
WIP research into HP Pre* boot process Theoretical plan: port user-part to compatible droid - Pre3["rib"/"mantaray"]->XperiaRay["ST18i"] Well, upstart scripts are complete... now for tracking dbus/luna services that are needed for the port to run.. Kernel configs: linux-*/arch/arm/configs/rib_defconfig = pre3 linux-*/arch/arm/configs/semc_urushi_defconfig = xperia_ray Device highlights: sony: CONFIG_INPUT_APDS9702 (proximity filter) sony: CONFIG_MDDI_NOVATEK_PANEL_SHARP_LS033T3LX01 (sharp display) sony: CONFIG_MDDI_NOVATEK_PANEL_TMD_LT033MDV1000 (tmds controller) sony: CONFIG_SND_MSM_MVS7x30_SOC (integrated audio) sony: CONFIG_TI1271 (wifi) sony: CONFIG_TOUCHSCREEN_CLEARPAD_I2C (synaptics clearpad) palm: CONFIG_MT9P013 (5MP cmos) palm: CONFIG_PMIC8058_UPL (qualcomm power management) palm: CONFIG_SND_SOC_WM8994 (wolfson micro, 24bit 4-chan dac, 2-chan adc, 100dB SNR, Nice !) palm: CONFIG_TOUCHSCREEN_CY8CTMA300 (cypress) palm pre3 = "rib" or "mantaray" WIFI: Pre3 -> Atheros 6K ar6000 driver = ar6k, non-upstream!, hardcoded in PmWifiService Pre(1) -> Marvell sd8686 sd8xxx driver Seems the biggest problem will be porting the WiFi manager, to make TexasInstruments 1271 look like an Atheros 6k series.. palm devices: castle == Pre pixie == Pixi ? broadway == Pre2? mantaray == Pre3 windsornot topaz == TouchPad opal What do EVT1 EVT2 EVT3 / DVT1 DVT2 DVT3 mean ? What are "opal" and "windsornot" devices ?
actual bootup code Code: /sbin/mkbootfs.sh -- or/and -- /sbin/tcpostflash.sh for initrd... cp /sbin/boot-init /sbin/init /sbin/boot-init echo "Mounting proc filesystem" mount -t proc none /proc echo "Mounting sysfs filesystem" mount -t sysfs none /sys echo "Creating /dev" mount -t tmpfs -o mode=0755 none /dev echo "Creating/Mounting /dev/pts" mkdir /dev/pts mount -t devpts -o gid=5,mode=620 none /dev/pts mknod /dev/null c 1 3 mknod /dev/zero c 1 5 mknod /dev/systty c 4 0 mknod /dev/tty c 5 0 mknod /dev/console c 5 1 mknod /dev/ptmx c 5 2 mknod /dev/fb c 29 0 mknod /dev/tty0 c 4 0 mknod /dev/tty1 c 4 1 mknod /dev/tty2 c 4 2 mknod /dev/tty3 c 4 3 mknod /dev/tty4 c 4 4 mknod /dev/tty5 c 4 5 mknod /dev/tty6 c 4 6 mknod /dev/tty7 c 4 7 mknod /dev/tty8 c 4 8 mknod /dev/tty9 c 4 9 mknod /dev/tty10 c 4 10 mknod /dev/tty11 c 4 11 mknod /dev/tty12 c 4 12 mknod /dev/ttyS0 c 4 64 mknod /dev/ttyS1 c 4 65 mknod /dev/ttyS2 c 4 66 mknod /dev/ttyS3 c 4 67 mknod /dev/urandom c 1 9 mknod /dev/mmcblk0 b 179 0 mknod /dev/mmcblk0p1 b 179 1 mknod /dev/mmcblk0p2 b 179 2 mknod /dev/mmcblk0p3 b 179 3 mknod /dev/mmcblk0p4 b 179 4 mknod /dev/mmcblk0p5 b 179 5 mknod /dev/mmcblk0p6 b 179 6 mknod /dev/mmcblk0p7 b 179 7 mknod /dev/mmcblk0p8 b 179 8 mknod /dev/mmcblk0p9 b 179 9 mknod /dev/mmcblk0p10 b 179 10 mknod /dev/mmcblk0p11 b 179 11 mknod /dev/mmcblk0p12 b 179 12 mknod /dev/mmcblk0p13 b 179 13 mknod /dev/mmcblk0p14 b 179 14 mknod /dev/mmcblk0p15 b 179 15 lvm.static vgscan --ignorelockingfailure lvm.static lvchange -ay --ignorelockingfailure /dev/mapper/store-root mount -o ro /dev/mapper/store-root /realroot /sbin/pivot_root /realroot /realroot/boot umount /boot/dev/pts umount /boot/dev umount /boot/proc umount /boot/sys export EARLY_BOOT_STOP=`date -U` exec /sbin/init /sbin/init /sbin/upstart -s /usr/sbin/setcpushares-upstart (setcpusharesupstart sets up cgroup for every new task, based with /etc/default/cpushareholder) upstart config from dir <- /etc/event.d upstart emits "startup" -> /etc/event.d/rcS is started telinit 2 -> emit "runlevel 2" emit "stopping/stopped rcS" "runlevel 2" -> /etc/event.d/banner /etc/init.d/banner start echo "Please wait: booting..." > $vtmaster emit "stopping/stopped banner" "stopped banner" -> /etc/event.d/sysfs /etc/init.d/sysfs.sh start mount -t proc proc /proc mount sysfs /sys -t sysfs echo 1 > /proc/sys/vm/oom_dump_tasks emit "stopping/stopped sysfs" "stopped sysfs" -> /etc/event.d/udev /etc/init.d/udev start mountpoint -q /dev/ echo "Starting the hotplug events dispatcher" "udevd" ## not loading as no /etc/event.d/udevd # udevd --daemon mkdir -p /dev/.udev/ /dev/.udev/db/ /dev/.udev/queue/ /dev/.udevdb/ make_extra_nodes (based on /etc/udev/links.conf) echo "Synthesizing the initial hotplug events" udevtrigger --subsystem-nomatch=platform --subsystem-nomatch=backlight echo "Waiting for /dev to be fully populated" udevsettle --timeout=$udevd_timeout chmod 1777 /dev/shm emit "stopping/stopped udev" "stopped udev" -> /etc/event.d/alignment echo "3" > /proc/cpu/alignment emit "stopping/stopped alignment" "stopped alignment" -> /etc/event.d/modutils /etc/init.d/modutils.sh start echo "Calculating module dependencies ..." depmod -Ae echo -n "Loading modules: " foreach $module $args in /etc/modules modprobe $module $args emit "stopping/stopped modutils" "stopped modutils" -> /etc/event.d/cgroups . /etc/default/cpushareholder cpushareholder_init mkdir -p /dev/cpuacct mount -t cgroup -o cpu,cpuacct none /dev/cpuacct mkdir -p /dev/cpuacct/UX/APP mkdir -p /dev/cpuacct/REST/BG ... echo 7500 > /dev/cpuacct/UX/cpu.shares echo 2500 > /dev/cpuacct/REST/cpu.shares for $taskid in /dev/cpuacct/tasks echo $taskid > /dev/cpuacct/REST/DAEMONS emit "stopping/stopped cgroups" "stopped cgroups" -> /etc/event.d/mountall /etc/init.d/mountall.sh start . /etc/default/rcS . /etc/default/mount_checks MOUNT_STAMP=/var/umount.stamp WIPE_FLAGS_FILE=/var/.flags/on_mount echo "$0: Mounting local filesystems..." lvm.static vgscan --ignorelockingfailure lvm.static vgchange -ay --ignorelockingfailure echo "$0: vgscan/vgchange done" > /dev/kmsg fsck -y -v /dev/mapper/store-root/var 2>&1 #/var with /dev/store #fsck -y -v /dev/mmcblk0p3 2>&1 #/var without /dev/store echo "$0: fsck of /var done" > /dev/kmsg mount -a -t nonfs,vfat,ext3,tmpfs # means NOnfs,NOvfat,NOext3,NOtmpfs: man mount mount /var if "mount /var" errors, do fixup: /usr/sbin/fixup_partition.sh --mountpoint /var umount -f /dev/mapper/store-var # up to 5 times in a loop fsck -y /dev/mapper/store-var mount /dev/mapper/store-var echo "$0: /var mounted" > /dev/kmsg clock_from_var.sh hwclock -s -u #only do the following updates if hardware time is wrong if (hw_time is wrong) #date -S -s `date -d $(cat /etc/version) "+%s"` date -S -s `cat /var/preferences/com.palm.power/time_saver` echo "$0: set clock from $TIME_SRC: $(date)" > /dev/kmsg hwclock -w -u else echo "$0: using /dev/rtc time: $(date)" > /dev/kmsg lunaprop -n com.palm.system -m -s last_umount_clean [0|1 :/var/umount.stamp exists] check that all /var/* are directories if not_dir($path) rm -f $path;mkdir -p $path if no_clean_mount() fixup_partition.sh --mountpoint /var/log --force-fsck if exists /var/.rootfs_fsck fixup_partition.sh --device=/dev/mapper/store-media --force-fsck rm -f /media/internal/FSCK*.REC # FAT lost blocks rm -f /var/tmp; mkdir -p /var/tmp #reset /var/tmp as a directory and not a symlink mount -a -t vfat,ext3,tmpfs #mount the automounted fs echo "$0: rest mounted" > /dev/kmsg check if everything mounted nicely. if not: fixup_partition.sh them echo "$0: filesystem checking done" > /dev/kmsg setup_cryptofs # based on /etc/cryptofs.conf, http://reboot78.re.funpic.de/cryptofs/ mkdir /media/internal/.palm mountcfs -s /media/internal/.palm/.cryptofs -m /media/cryptofs -k /media/internal/.palm cryptofs -o nonempty -o allow_other -s -r [params].. # based on .cryptofs echo "$0: setup_cryptofs done" > /dev/kmsg lunaprop -n com.palm.system -m -s media_fixed_how 1 # result from fixup_partitions on media partition report reboot reasons: lines that start with "reason" in /var/umount.stamp echo $REASON | rdx_reporter -F -C "rebooter" -c "rebooter" -d "$0" rm -rf /var/lock/* if any errors on "fsck /var" echo "encountered error running fsck on /var: $VARFSCKRES $VARFSCK" \ ## res=error code, varfsck=output | rdx_reporter -F -C "Fsck Error" -c "Fsck Error" -d "$Fsck error" if error=4 (MAJOR ERROR) -> echo $error >/var/log/.fsck_error date > /var/log/var_fsck.log echo $VARFSCK >> /var/log/var_fsck.log ## last fsck output ... skipped developer-only rw rootfs stuff, reboting for rw-check and rm'ing /boot/uImage if error touch /var/log/var_fsck.log /var/log/root_fsck.log cat /var/log/var_fsck.log /var/log/root_fsck.log > /var/log/fsck.log echo "$0: done reporting fsck results" > /dev/kmsg run-parts /etc/init.d/postmountall.d: check_initctl if not_pipe(/dev/initctl) -> rm -f /dev/initctl; mknod -m 600 /dev/initctl p keep_klog cd /var/log mv klog_1.txt.gz klog_2.txt.gz klog last |gzip -c > klog_1.txt.gz # klog buffer from previous boot dmesg -s 100000 | gzip -c > dmesg.txt.gz kernel_lastboot rdx_reporter $args ## nothing to report in clean case lnsasetup . /etc/default/lnsa.sh mkdir -p /var/palm/system-services mkdir -p /var/palm/ls2/roles mkdir -p /var/palm/event.d echo 'exec /bin/true' >/tmp/lnsa_marker cp /tmp/lnsa_marker /var/palm/event.d/;msa_marker # actually, cp to tmp, sync, mv tmp real rm /tmp/lnsa_marker initctl newdir /var/palm/event.d ## add dir other than /etc/init.d to list, could trigger logmods mkdir -p /dev/logdir mmc_protect no "mmc_protect" binary => does nothing report_lostandfound for each path=("lost+found" dir) found on any mounted partition, ls -lA $path | rdx_reporter ... touch $path/_landf_rdxd_reported_marker_ ## so it doesn't report again rm_varlogtmp rm -rf /var/log/temp runlevel touch /var/run/utmp runlevel --set 2 ## might trigger something, but probably doesn't scaling echo ondemandtcl >/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor kill -USR1 1 ## for bootloggerd ? echo "$0 done" > /dev/kmsg mkdir -p /var/preferences chown root /var/preferences chmod 777 /var/preferences mkdir -p /var/home/root mkdir -p /var/tmp emit "stopping/stopped mountall" "stopped mountall" -> swaphack, tokens, timezone, watchdogd -> /etc/event.d/swaphack /etc/init.d/swaphack.sh if /var/swap -> rm /var/swap # using /dev/store/swap now ! if !/dev/store/swap dd if=/dev/zero of=/dev/store/swap bs=100663296 count=1 # 96MB of swap mkswap /dev/store/swap echo cfq > /sys/block/mmcblk0/queue/scheduler echo 6000 > /proc/sys/vm/dirty_expire_centisecs swapon /dev/store/swap emit "stopping/stopped swaphack" -> compcache /etc/event.d/compcache swapoff -a sleep 1 modprobe xvmalloc modprobe ramzswap memlimit_kb=25600 backing_swap=/dev/store/swap sleep 3 swapon /dev/ramzswap0 -p 100 emit "stopping/stopped compcache" -> no listeners -> /etc/event.d/timezone no /usr/bin/tzset -> do nothing emit "stopping/stopped timezone" -> no listeners -> /etc/event.d/watchdogd /sbin/watchdogd #respawn talks to /dev/watchdog, pings every X seconds emit "stopping/stopped watchdogd" -> no listeners -> /etc/event.d/tokens /sbin/tokens --mount #trenchcoat=storage flasher + tokens=fs-tokens supports omap24xx,omap34xx,msm,tegra source: http://subversion.palm.com/main/nova/palm/trenchcoat/submissions/132.4/trenchcoat.c reads /dev/tokens -> OEM Data: ProductName,Modem,RAMSize,FlashSize,HwoRev,BToADDR,WIFIoADDR,ProdSN,ProductSKU emit "stopping/stopped tokens" -> /etc/event.d/populate-volatile /etc/init.d/populate-volatile.sh start /sbin/popvol < /etc/default/popvol.d/* # actually, for file in `ls`... /etc/default/popvol.d/00_core mkdir|/var/backups|0|0|0755 mkdir|/var/cache|0|0|0755 mkdir|/var/lib|0|0|0755 mkdir|/var/lib/ipkg|0|0|0755 mkdir|/var/lib/misc|0|0|0755 mkdir|/var/lib/software|0|0|0755 mkdir|/var/lib/software/ModemFiles|0|0|0755 mkdir|/var/lib/software/SessionFiles|0|0|0755 mkdir|/var/lib/software/tmp|0|0|0755 mkdir|/var/lib/update|0|0|0755 mkdir|/var/local|0|0|02755 mkdir|/var/lock|0|0|01777 mkdir|/var/lock/subsys|0|0|0755 mkdir|/var/log|0|0|0755 mkdir|/var/run|0|0|0755 mkdir|/var/spool|0|0|0755 mkdir|/tmp|0|0|01777 touch|/var/run/utmp|0|0|0644 touch|/var/log/wtmp|0|0|0644 mknod|/dev/heap|0|0|1|5|020644 /etc/default/popvol.d/01_pulse mkdir|/var/run/pulse|31|31|0755 /etc/default/popvol.d/02_jail mkdir|/var/palm|0|0|0755 mkdir|/var/palm/jail|0|0|0755 mkdir|/var/palm/data|0|0|0755 emit "stopping/stopped populate-volatile" -> devpts, minicore2 -> /etc/event.d/minicore2 # everything disabled, so doing nothing much echo "" > /proc/sys/kernel/minicore_pattern echo "" > /proc/sys/kernel/core_pattern emit "stopping/stopped minicore2" -> no listeners -> /etc/init.d/devpts.sh start mknod -m 666 /dev/ptmx c 5 2 mkdir -p /dev/pts mount -t devpts devpts /dev/pts -ogid=5,mode=620 ## 5="tty", 600='mesg n' default emit "stopping/stopped devpts" -> hostname -> /etc/init.d/hostname.sh start hostname -F /etc/hostname # "webos-device" emit "stopping/stopped hostname" -> pmsyslogd, pmklogd, urandom, usbctrl -> /etc/event.d/pmsyslogd #PmLogDaemon, logs to /var/log/messages /usr/bin/pmsyslogd -z -f 6 -m # UTZ/C tstamp, usec resolution, monotonic emit "stopping/stopped pmsyslogd" -> no listeners -> /etc/event.d/pmklogd # logs to /var/log/pmklogd.log /usr/bin/pmklogd -n -d 1 #startup delay=1sec, "-n"=run in foreground?? emit "stopping/stopped pmklogd" -> no listeners -> /etc/event.d/urandom /etc/init.d/urandom start echo "Initializing random number generator..." cat /var/lib/urandom/random-seed >/dev/urandom emit "stopping/stopped urandom" -> no listeners -> /etc/event.d/usbctrl if usbnet enabled /sbin/modprobe -q g_composite product=0x101 #0x103 for armv6l else if novacom enabled /sbin/modprobe -q g_composite product=0x8002 #0x8012 for armv6l else #(normal) /sbin/modprobe -q g_composite product=0x8004 #0x8012 for armv6l emit "stopping/stopped usbctrl" -> networking -> /etc/event.d/networking /etc/init.d/networking start ifup -a -f # /etc/network/interfaces - auto=lo,usb0:1 echo "done." emit "stopping/stopped networking" -> bootmisc =========== AT THIS STAGE, ONLY BOOTMISC THREAD EXECUTION CONTINUES ============ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -> /etc/init.d/bootmisc.sh start if "OMAP3430" matches /proc/cpuinfo echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed ## needs to be set twice, board bug chmod 666 /dev/tty[p-za-e][0-9a-f] chown root:tty /dev/tty[p-za-e][0-9a-f] if /etc/ld.so.cache symlinks to /var/cache/ld.so.cache /sbin/ldconfig -C /var/cache/ld.so.cache else rm -f /var/cache/ld.so.cache emit "stopping/stopped bootmisc" -> novacomd, ls-hubd_private, ttyS2 -> /etc/event.d/ttyS2 /sbin/getty console 115200 vt100 -> /etc/event.d/novacomd #no /var/gadget/novacom_enabled => do nothing #otherwise: mkdir /dev/gadget; mount -tgadgetfs /dev/gadget; /sbin/novacomd emit "stopping/stopped novacomd" -> /etc/event.d/ls-hubd_private #ls=LunaService /usr/bin/ls-hubd --conf /etc/ls2/ls-private.conf --pmloglib # /home/reviewdaemon/projects/nova/oe/BUILD-mantaray/work/luna-service2-2.0.0-131.2/131.2/src/hub/conf.c #/usr/bin/ls-monitor /usr/bin/LunaSysMgr js, using /tmp/com.palm.private_hub # UGLY HACK!!!!: /sbin/initctl emit --no-wait %s-ready /sbin/initctl emit --no-wait ls-hubd_private-ready ..emit "ls-hubd_private-ready" -> /etc/event.d/ls-hubd_public "ls-hubd_private-ready" -> -> /etc/event.d/ls-hubd_public /usr/bin/ls-hubd --public --conf /etc/ls2/ls-public.conf --pmloglib /sbin/initctl emit --no-wait ls-hubd_private-ready ..emit "ls-hubd_public-ready" -> finish, node_fork_server ..at some point.. emit "stopping/stopped ls-hubd_public" -> ls-hubd_public_watchdog -> /etc/event.d/ls-hubd_public_watchdog /usr/sbin/reboot_ls-hubd_if.sh ${EXIT_STATUS} ls-hubd_public ..at some point.. emit "stopping/stopped ls-hubd_private" -> ls-hubd_private_watchdog -> /etc/event.d/ls-hubd_private_watchdog /usr/sbin/reboot_ls-hubd_if.sh ${EXIT_STATUS} ls-hubd_private =========== AT THIS STAGE, PRV/PUB LS ARE RUNNING AND ONLY ONE UPSTART SIGNAL thread REMAINS ============
continuation of upstart scripts after Luna Service hub is started Code: "ls-hubd_public-ready" (emitted using /sbin/initctl from within /usr/bin/ls-hubd) -> finish, node_fork_server -> /etc/event.d/node_fork_server if memtotal from /proc/meminfo >524288 (512M) mkdir -p /var/palm/node touch /var/palm/node/fork /usr/palm/nodejs/node --max_old_space_size=23068672 /usr/palm/nodejs/fork_server.js ## 23068672=22MB /sbin/initctl emit --no-wait node_fork_server-ready else /sbin/initctl emit node_fork_server-ready emit "node_fork_server-ready" -> no listeners ..emit "stopping/stopped node_fork_server" -> no listeners -> /etc/event.d/finish # record upstart timing for boottime tracking. # $EARLY_BOOT_PID is set in /sbin/boot-init, ran from /sbin/tcpostflash.sh, /sbin/mkbootfs.sh, /sbin/upstart mkdir -p /tmp/misc-props echo -n $EARLY_BOOT_PID > /tmp/misc-props/pids.early_start echo -n $EARLY_BOOT_START > /tmp/misc-props/timing.early_start echo -n $EARLY_BOOT_STOP > /tmp/misc-props/timing.early_stop echo -n $UPSTART_STARTTIME > /tmp/misc-props/timing.upstart_begin echo -n $$ > /tmp/misc-props/pids.upstart_finish echo -n `date -U` > /tmp/misc-props/timing.upstart_finish /etc/init.d/bootmark.sh start echo (16_random_bytes_in_hex) > /var/log/bootmark run-parts /etc/event.d/finish-poststart.d /etc/event.d/finish-poststart.d/001-mountcrypt /usr/bin/mountcrypt /dev/mapper/store-mojodb store-cryptodb /dev/mapper/store-filecache store-cryptofilecache mount /var/db mount /var/file-cache /etc/event.d/finish-poststart.d/020-setup_jails rm -f /etc/nojail emit "stopping/stopped finish" -> logctld, configurator, mojodb, powerlog, PmNetConfigManager, pulseaudio, LunaDownloadMgr, eventreporter, powerd, rdxd, lnsawait, Qmuxd, bluetooth, fontconfig_cache, certstoreinit, tempdb, qcomm_rmt_storage, keymanager, filecache, hidd, memchute, passthrud, ossinfo, mediaserver, audiod, PmModemEfsLogger, extractfs, TelephonyInterfaceLayer -> TelephonyInterfaceLayer (no listeners for stop signals) exec /usr/bin/PmWsfDaemon -c /etc/til.d/tilwsf.conf # /usr/lib/libTelephonyInterfaceLayer.so, -c /etc/til.d/til.conf #Src/Core/NativeHost/BladeLoaderDl.cpp:101 dlopen() #Src/Core/NativeHost/BladeLoaderDl.cpp:373 Calling %s to create service blade #Luna Type=LunaTelephony,LunaMessaging ServiceName=com.palm.telephony #LaunchCodeExternalApp=com.palm.app.phonediag #LaunchCodeExternalAppCodesCdma=786;3836;33284;3282;477;673;123;889;8378;3366;\ #..72346;633;8766;87633;2539;7738;66236;2833766;28337633; #LaunchCodeExternalAppCodesGsm=786; #LunaMessaging ServiceName=com.palm.messagingrouter Interface=LunaInterfaceSms #services supported by the GSM phone #THandlersGsm=ServiceStateGsm;ServiceCallGsm;ServiceSmsGsm;ServiceLbsGsm;ServiceAudioGsm; #..ServiceDeviceUsageGsm;ServiceSsGsm;ServiceDeviceCfgGsm;ServiceDataGsm; #PHandlers=ServiceSim;ServicePower;ServiceSpb;ServiceStk; # sprint verizon bellmo chinatel -> extractfs (no listeners for stop signals) mkdir -p /var/luna/data/extractfs /usr/bin/extractfs -f /var/luna/data/extractfs #something to do with image extraction umount -f /var/luna/data/extractfs -> PmModemEfsLogger (no stop listeners) # no modem in /proc/cmdline for normal users => not doing anything, otherwise PmModemEfsLogger would log ramdump etc -> audiod (no stop listeners) /usr/sbin/audiod -n -1 # com.palm.audio version 368.49, uses /etc/audio/{a,b,c}/global.conf #/home/reviewdaemon/projects/nova/oe/BUILD-mantaray/staging/ #..arm-none-linux-gnueabi/include/boost/dynamic_bitset/dynamic_bitset.hpp etc -> mediaserver (no stop listeners) ionice -c1 /usr/bin/mediaserver --gst-debug=1 # version 428.51, should have been --gst-debug-level=1 -> ossinfo (no stop listeners) #copies PDF to media partition cp /usr/lib/ossinfo/Open\ Source\ Information.pdf /media/internal/Open\ Source\ Information.pdf -> passthrud (no stop listeners) #com.palm.usbpassthrough #/usr/bin/start-passthrud # would run if had /var/preferences/com.palm.usbpassthrough/passthrud.conf -> memchute (no stop listeners) echo "0,85,95,114,120" > /sys/module/lowmemnotify/parameters/thresholds_enter echo "0,80,90,108,112" > /sys/module/lowmemnotify/parameters/thresholds_leave /usr/sbin/memchute # kills top 5 memory-using-procs if >THRESHOLD when low on memory -> hidd (no stop listeners) mkdir -p /dev/cgroup/input echo $$ > /dev/cgroup/input/tasks #current process id /usr/bin/hidd -v -f /etc/hidd/HidPlugins.xml --output-syslog #plugins: keypad,touchpanel,accelerometer,compass,proximity,lightg,AVrcp(bluetooth),inputdev -> keymanager (no listeners) /usr/bin/keymanager -c '{"log":{"appender":{"type":"syslog"},"levels":{"default":"warning","keymanager":"info"}}}' #using /var/palm/data/keys.db, /var/palm/data/otakeys.db, 4809febfe1df7d2a108fddc388cdb29e #.. store-cryptodb.key, store-cryptofilecache.key, /var/luna/data/.passcode, "please", "youdidntsaythemagicword" #does sql-style db work: SELECT id,ownerID,keyID,data,keysize,type,scope,hash FROM keytable WHERE id = ? #.. SELECT id FROM keytable WHERE ownerId LIKE ? # "EJGlZxDhLvgXn+p/K9s8gQ==" (base64) -> qcomm_rmt_storage (no listeners) /usr/sbin/qcom_rmt_storage /dev/mmcblk0p7 /dev/mmcblk0p8 #uses /dev/rmt_storage, /boot/modem_fs1, /boot/modem_fs2 -> tempdb (no listeners) #does nothing! -> certstoreinit (no listeners) mkdir -p /var/ssl/crl zcat /etc/ssl/crl/*.gz >/var/ssl/crl/crl-bundle.crl mkdir -p /var/ssl/trustedcerts cd /var/ssl/trustedcerts && tar xzf /etc/ssl/certs/calinks.tgz mkdir -p /var/ssl/public echo '01' > /var/ssl/serial mkdir -p /var/ssl/certs mkdir -p /var/ssl/private touch /var/ssl/index.txt luna-send -n 1 luna://com.palm.certificatemanager/addcrl \ '{"url":"http://crl.palm-contentid.pp.trustcenter.de/crl/v2/palmcontentid-CA-I.crl"}' -> bluetooth (no listeners) /usr/bin/BluetoothMonitor -> Qmuxd (no listeners) /usr/bin/Qmuxd #RMNET qmi connection -> lnsawait (no listeners) # "preventing started event from going out" ? initctl status lnsa_marker if no status -> loop. otherwise return ok # should return nonzero since /var/palm/event.d was added to initctl dirs previously # during mountall->mountall.sh->postmountall.d/lnsasetup -> rdxd (no listeners) /usr/bin/rdxd -s #Remote Diagnostics (incl. Telephony) #uses /etc/rdxd.conf, /usr/lib/rdxd/*.sh scripts -> powerd (no listeners) mkdir -p /var/preferences/com.palm.power cp /usr/var/preferences/com.palm.power /var/preferences/com.palm.power #use cp tmp;sync;mv tmp real #config /sys/ parameters for PM on msm8x60, not applicable to phones #for other devices seems there's nothing extra to do -> eventreporter (no listeners) /usr/bin/eventreporterserver #uses /tmp/evts.sock, /tmp/events.dat, JSON messages -> LunaDownloadMgr (no listeners) mkdir -p /dev/cgroup/web echo $$ >/dev/cgroup/web/tasks # puts current process into web cgroup, later done with setcpushares-task env CHARSET="UTF-8" /usr/bin/LunaDownloadMgr # ionice -c 3 on TouchPad (topaz) # palm://com.palm.connectionmanager/setnovacommode {"isEnabled":true, "bypassFirstUse":false} # palm://com.palm.connectionmanager/getStatus {"subscribe":true} # palm://com.palm.bus/signal/registerServerStatus {"serviceName":"com.palm.connectionmanager", "subscribe":true} # palm://com.palm.lunabus/signal/addmatch {"category":"/storaged", "method":"MSMAvail"} # .. {"category":"/storaged", "method":"MSMProgress"} # .. {"category":"/storaged", "method":"MSMEntry"} # .. {"category":"/storaged", "method":"MSMFscking"} # uses curl for downloads, /etc/palm/downloadManager.conf, /etc/palm/downloadManager-platform.conf # logs into db: "DELETE FROM DownloadHistory WHERE owner = %", "DELETE FROM DownloadHistory WHERE ticket = %lu" -> powerlog (no listeners) /usr/sbin/powerlog -i 60 -c $CPUCOUNT -f $FREQ_COUNT -m # cpucount = cpus, freq_count=number of freqs, -i60=60seconds, -m=topmemusers -> mojodb (no listeners) /usr/bin/mojodb-luna -c /etc/palm/mojodb.conf /var/db #version 1.9-52.16-mantaray, using /tmp/mojodb/tempdb_init -> logctld (no listeners) /usr/bin/logctld -v #GPS: /var/log/gpsfixes, /var/log/gpsfixes_*.csv #calls /sbin/logctld_clear_all.sh, /sbin/logctld_collect_all.sh #palm://com.palm.service.collectlogs/autosend -> pulseaudio mkdir -p /home/root/.pulse ionice -c1 /usr/bin/pulseaudio --log-target=syslog #uses /etc/pulse/system.pa , /etc/pulse/default.pa, /etc/pulse/daemon.conf, /usr/lib/pulse-0.9.22/modules #compiled using: /home/reviewdaemon/projects/nova/oe/BUILD-mantaray/staging/arm-none-linux-gnueabi/include #.. -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -fno-strict-aliasing #.. -fno-inline-functions -g -ffast-math -D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option emit "started pulseaudio" -> systemsoundsloader ->> systemsoundsloader (no listeners) /usr/bin/systemSoundsLoader #loadSystemSounds from /usr/share/systemsounds/* or *-ondemand.pcm -> fontconfig_cache ionice -c 3 nice -n 20 fc-cache #run cache rebuild as nicely as possible touch /var/cache/fontconfig/cached emit "stopped fontconfig_cache" -> browserserver, smartkey ->>smartkey (no listeners) mkdir -p /dev/cgroup/web echo $$ > /dev/cgroup/web/tasks # this process goes into web cgroup /usr/bin/SmartKeyService #SpellChecker - find best candidates based on dictionary, score map, frequency map #uses XT9: /usr/palm/smartkey/XT9, /etc/palm/smartkey.conf ->>browserserver (no listeners) export LD_PRELOAD="/usr/lib/libptmalloc3.so" #use custom malloc for browser mkdir -p /dev/cgroup/web echo $$ > /dev/cgroup/web/tasks # files this process into web control group /usr/bin/BrowserServer #version 2.0.0-237.13, -d 30000 on TouchPad (topaz) +browserservermojo #uses /var/luna/data/browser/icons, /var/palm/data/browser-cookies.db /dev/msm_vidc_dec /dev/pmem_adsp chmod -R g+w /var/ssl chown -R root.luna /var/ssl chown luna:luna -R /var/palm/data/http_* /var/palm/data/https_* chmod -R o+rwx /var/palm/data/http_* /var/palm/data/https_* #conf from /etc/palm/browser-app.conf, /etc/palm/browser-app-platform.conf, /etc/ssl/openssl.cnf -> filecache /usr/bin/filecache -c {\"log\":{\"appender\":{\"type\":\"syslog\"},\"levels\":{\"default\":\"warning\"}}} emit "started filecache" -> LunaSysService, LunaUniversalSearchMgr ->>LunaSysService /usr/bin/LunaSysService #uses /usr/lib/luna/customization/region.json, /etc/palm/region.json, #.. /usr/lib/luna/customization/locale.txt, /etc/palm/locale.txt, #.. /etc/palm/defaultPreferences.txt, /etc/palm/defaultPreferences-platform.txt #.. /usr/lib/luna/customization/cust-preferences.txt, /etc/palm/CustomerCareNumber.txt #.. /var/luna/preferences/systemprefs.db, systemprefs_backup.db # does ntp time update from ntp0.palmws.com (ntpdate -bqu) #.. /etc/palm/palm-customization-info ->>LunaUniversalSearchMgr (no listeners) export LD_PRELOAD=/usr/lib/libmemcpy.so /usr/bin/LunaUniversalSearchMgr # addDBSearchItem/removeDBSearchItem, modifyActionProvider # /usr/lib/luna/customization/resources/*/UniversalSearchList.json # SELECT value FROM SearchPreference WHERE key=%Q # CREATE TABLE IF NOT EXISTS SearchList (id TEXT, category TEXT, displayName TEXT, iconFilePath TEXT, url TEXT, # suggestURL TEXT, launchParam TEXT, type TEXT, enabled INTEGER, version INTEGER, PRIMARY KEY(id, category) ); # CREATE TABLE IF NOT EXISTS DBSearchList (id TEXT PRIMARY KEY, category TEXT, displayName TEXT, # iconFilePath TEXT, url TEXT, launchParam TEXT, launchParamDbField TEXT, dbQuery TEXT, displayFields TEXT, # batchQuery INTEGER, enabled INTEGER, version INTEGER ); # CREATE TABLE IF NOT EXISTS SearchPreference (key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE, # value TEXT); -> PmNetConfigManager /usr/bin/PmNetConfigManager #logs to /tmp/netconfigmanager.log #interfaces with netfilter, iptables, enabling/disabling nat, routes, mtu clamping: # /usr/sbin/iptables -D FORWARD -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # /usr/sbin/iptables -A FORWARD -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # /usr/sbin/iptables -t nat --flush # RTSP: /usr/sbin/iptables -I INPUT -p udp --sport 6970:6999 -j ACCEPT # mDNS: /usr/sbin/iptables -I OUTPUT -p udp -m udp --dport 5353 -o %s -j DROP # NAT: /usr/sbin/iptables -t nat -I POSTROUTING -o %s -j MASQUERADE # /sbin/dhclient -d -cf /etc/pmnetconfig/webOsDhclient.conf -sf /etc/pmnetconfig/webOsDhclient-script -lf -pf .. # /usr/bin/ntpdate -uq %s pool.ntp.org # traceroute,ping,arping, wifi authenticator,tether, /etc/pmnetconfig/staticroutes, novacom # /sbin/sysctl -n -e -q -p /etc/pmnetconfig/netsysctrl.conf # /sbin/ip rule flush; /proc/sys/net/ipv4/route/flush emit "started PmNetConfigManager" -> mdnsd, PmWiFiService ->>mdnsd (no listeners) /usr/sbin/mdnsd -debug # mDNSResponder-258.14, /etc/mdnsd.conf -> /var/log/mdnsd.log # services url: http://www.dns-sd.org/ServiceTypes.html ->>PmWifiService (no listeners) check if /dev/tokens/WIFIoADDR exists /usr/bin/PmWiFiService # hardwired for Atheros AR6000: # insmod /lib/modules/`uname -r`/kernel/net/wifi/ar6000.ko || rmmod ar6000 # /tmp/ath6k/token_bdata.SD32.bin || /var/preferences/com.palm.wifi/skip-token-caldata # ath6k/hw2.1.1/bdata.SD32.bin ath6k/hw2.1.1/3g_bdata.SD32.bin ath6k/hw2.1.1/lte_bdata.SD32.bin # /lib/firmware/ath6k # uses /usr/sbin/wpa_supplicant and hostapd # /sbin/dhclient -cf /etc/PmWiFiDhclient.conf -sf /etc/PmWiFiDhclient-script -lf -pf /var/run/dhclient.eth0.pid -> configurator ! luna-send -n 1 palm://com.palm.configurator/run '{"types":["dbkinds","filecache"]}' # triggers service launch? ! luna-send -n 1 palm://com.palm.configurator/run '{"types":["dbpermissions"]}' # triggers service launch? initctl emit datastore-initialized -> "datastore-initialized" -> /etc/event.d/activitymanager ->>activitymanager # manages activity lists, cgroup priorities /usr/bin/activitymanager -c {\"log\":{\"appender\":{\"type\":\"syslog\"},\"levels\":{\"default\":\"warning\"}}} /sbin/initctl emit activitymanager-ready -> "activitymanager-ready" -> configurator-async, filenotifyd, UpdateDaemon ->>configurator-async (no listeners) ! luna-send -n 1 palm://com.palm.configurator/run '{"types":["activities"]}' #triggers service? ->>filenotifyd (no listeners) ionice -c2 -n7 /usr/bin/filenotifyd # create table if not exists files (path TEXT UNIQUE ON CONFLICT REPLACE, # size INTEGER, modified INTEGER) # create table if not exists actions (revision INTEGER PRIMARY KEY AUTOINCREMENT, # action_type INTEGER, size INTEGER, modified INTEGER, path TEXT, new_path TEXT) # insert into files (path, size, modified) values (?,?,?) // insert # select size, modified from files where path=? // get # delete from files where path=? // remove # update files set path=? where path=? // rename # select path, size, modified from files where path like ? // directory list # insert into actions (action_type, size, modified, path, new_path) values (?,?,?,?,?) # select revision, action_type, size, modified, path, new_path from actions # where revision >= ? order by revision asc limit ? # select count(*) from action # delete from actions where revision < ? ->>UpdateDaemon (no listeners) /usr/bin/UpdateDaemon # mount /var/lib/update # tar xvzf /var/lib/update/data.tar.gz -m --no-same-owner --no-same-permissions # OmaDm [-set_domain|-client|-task|-server|-prepare] # server: https://ps.palmws.com/palmcsext/swupdateserver # curl proxy: 68.28.31.33:80 (sprint), headers # Expect: Cache-Control: no-cache # User-Agent: palm/1.0 // InitHeader ? # User-Agent: HTTP SyncML Client [en] (WinNT; I) # Accept-Language: en # Accept: application/vnd.syncml.dm+xml # Content-Type: application/vnd.syncml.dm+xml # Accept-Charset: utf-8 # x-syncml-hmac: algorithm= , username=" ", mac= # name: omadm.swupdate.palm.com # password: serverguestpassword # name: guest # passwird: guestpassword # extra ips: 68.28.15.12, 68.28.31.12, 63.168.238.41, 68.168.229.130 # /var/lib/update/PmUpdater // /usr/bin/PmUpdater exists #/usr/bin/mmipkg, /sbin/tellbootie ! luna-send -n 1 palm://com.palm.configurator/run '{"types":["activities"]}' # triggers service launch? emit "stopped configurator" -> LunaSysMgr, PmWanDaemon ->>PmWanDaemon (no listeners) /usr/bin/PmWsfDaemon -c /etc/wan.d/wan.conf # load /usr/lib/libPmWsfWanBlade.so # set up wan connection, check TETH-ENTITLEMENT ->>LunaSysMgr emit "started LunaSysMgr" -> CustomizationService, firstuse-createDefaultAccount, mediasyncexporter, pubsubservice, vpnremover-eventd ->> CustomizationService (no listeners) luna-send -n 1 luna://com.palm.lunabus/signal/registerServerStatus '{"serviceName":"com.palm.systemservice","subscribe":true}' # up to 3 times, 10sec retry, until "connected" in output luna-send -n 1 luna://com.palm.service.customization/customize '{}' # up to 4 times, 15sec retry, until "connected" in output ->> firstuse-createDefaultAccount (no listeners) luna-send -n 1 palm://com.palm.accountservices/createNovaAccount '{"createDefaultAccount":true}' ->> mediasyncexporter (no listeners) if exists /media/internal/iPod_Control # means there is media data to export luna-send -i -n 1 palm://com.palm.activitymanager/create \ '{"start":true, \ "type":{"priority":"lowest"}, \ "activity":{"name":"mediasyncexporter", "description": "export media sync data to standard media files", \ "callback": {"method": "palm://com.palm.mediasyncexporter/export", "params": {}}}}' ->> pubsubservice (no listeners) /usr/bin/pubsubservice #uses /var/pubsub/cache, /var/pubsub/pubsubhandlers.conf, /etc/palm/pubsub_handlers/ # most probably uses xmpp protocol, jabber server j005.palmws.com, http://jabber.org/protocol/pubsub#node_config # docs here: http://xmpp.org/extensions/xep-0060.html ->> vpnremover-eventd (no listeners) # ! removes the VPN Service App/Framework from App Catalog ! luna-send -n 1 palm://com.palm.appinstaller/remove '{"packageName": "com.palm.app.vpn"}' luna-send -n 1 palm://com.palm.appinstaller/remove '{"packageName": "com.palm.app.vpnframework"}' echo "1" > /proc/sys/vm/overcommit_memory mkdir -p /var/luna/preferences mkdir -p /dev/cgroups/ui /dev/cgroups/application /dev/cgroups/focused /dev/cgroups/unfocused \ /dev/cgroups/unfocused/none /dev/cgroups/unfocused/lowest /dev/cgroups/unfocused/low /dev/cgroups/unfocused/normal \ /dev/cgroups/unfocused/high /dev/cgroups/unfocused/highest /bin/echo $$ > /dev/cgroups/ui/tasks /bin/echo 18432 > /dev/cgroups/ui/cpu.shares export LD_PRELOAD="/usr/lib/libptmalloc3.so" /usr/bin/LunaSysMgr -s [if first-time, add "-u minimal -a com.palm.app.firstuse"] # use /etc/palm/luna.conf /etc/palm/luna-platform.conf # application paths defined: # /var/luna/applications/ /var/palm/data/com.palm.appInstallService /media/cryptofs/apps # usr/palm/applications usr/palm/packages usr/palm/services # /media/cryptofs/apps/usr/lib/ipkg/info /media/cryptofs/tmp # /usr/luna/launchpoints/ /var/luna/launchpoints/ # /usr/lib/luna/system/luna-systemui/ /usr/lib/luna/system/luna-applauncher/ # /usr/palm/sysmgr/images/ /usr/palm/sysmgr/localization /usr/palm/sysmgr-cust/localization # /var/luna/preferences/ # /usr/palm/command-resource-handlers.json /var/usr/palm/command-resource-handlers-active.json # SysMgr compiled against Qt 4.6.1, HW egl render mode # /usr/bin/jailer -t -i %s (launching processes) with LD_PRELOAD libpvrtc.so # deals with cards and card-processes/subsumers /sbin/initctl emit first-use-finished emit "first-use-finished" -> configurator (already ran) /sbin/initctl emit --no-wait LunaSysMgr-ready emit "LunaSysMgr-ready" -> LunaReady, tap2share ->> tap2share (no listeners) /usr/sbin/tap2shared #/dev/a6_[0-9] or a23 device for transfers, topaz has back and rear A6 ->> LunaReady mkdir -p /dev/cgroups/application /bin/echo $(pidof WebAppMgr) > /dev/cgroups/application/tasks /bin/echo 2048 > /dev/cgroups/ui/cpu.shares emit "started LunaReady" -> customization-install ->> customization-install # call customization service to install any stub apps luna-send -n 1 -a com.palm.service.customization palm://com.palm.service.customization/postFirstUseInstall '{}' # hack to turn on wifi after first use the first time only luna-send -n 1 -a com.palm.service.customization palm://com.palm.wifi/setstate '{ "state": "enabled" }' # create a semaphore so that the app install and the wifi setting only ever run one time touch /var/luna/data/Customization/postfirstuse_complete.txt ======================= UPSTART SCRIPTS END HERE ================================= -- luna-send uses liblunaservice.so which uses the previously-started ls-hub for message transfer /var/preferences/com.palm.bus/public_bus_default /tmp/com.palm.private_hub /tmp/com.palm.public_hub HUB_INET_ADDRESS 192.168.2.101:4412 192.168.2.101:4411 127.0.0.1:4412 127.0.0.1:4411 com.palm.configurator = /usr/share/dbus-1/system-services/com.palm.configurator.service TODO: d-bus/luna services statup...
silvioster said: palm devices: castle == Pre pixie == Pixi ? broadway == Pre2? mantaray == Pre3 windsornot topaz == TouchPad opal What do EVT1 EVT2 EVT3 / DVT1 DVT2 DVT3 mean ? What are "opal" and "windsornot" devices ? Click to expand... Click to collapse broadway = Veer roadrunner = Pre2 opal = TouchPad Go (7 inch) windsornot = never released device EVT = early prototypes DVT = later prototypes, close to production. -- Rod
silvioster said: WIFI: Pre3 -> Atheros 6K ar6000 driver = ar6k, non-upstream!, hardcoded in PmWifiService Pre(1) -> Marvell sd8686 sd8xxx driver Seems the biggest problem will be porting the WiFi manager, to make TexasInstruments 1271 look like an Atheros 6k series.. Click to expand... Click to collapse ar6k is upstream in the staging branch since 2.6.37 according this : lxr.free-electrons.com/source/drivers/staging/ath6kl/htc2/AR6000/ar6k.c?v=2.6.37;a=arm
Bactrack 5 - errors with ext2 and chroot
Hi everyone, I'm a noob on this forum so i'll try to be as clear as possible. I have some issues trying to install backtrack 5 ARM version on my Nexus 10. Config : Nexus 10 4.3 Kernel : 3.4.39-g446c9cf Build number : JWR66Y Terminal emulator Busybox Free What I did : I rooted my Nexus 10 following this tutorial (checking custom recovery) : http://forum.xda-developers.com/showthread.php?t=2015467 I tried to install Backtrack 5 following this tutorial : http://forum.xda-developers.com/showthread.php?t=1079898 But it didn't succeed. I tried to figure out my problem but I'm quite lost and not sure what the real problem is : The script bt : Code: perm=$(id|cut -b 5) if [ "$perm" != "0" ];then echo "This script requires root! Type: su"; exit; fi mount -o remount,rw /dev/block/mmcblk0p5 /system export kit=/sdcard/bt5 export bin=/system/bin export mnt=/data/local/mnt mkdir $mnt export PATH=$bin:/usr/bin:/usr/local/bin:/usr/sbin:/bin:/usr/local/sbin:/usr/games:$PATH export TERM=linux export HOME=/root if [ -b /dev/loop7 ]; then echo "Loop device exists" else busybox mknod /dev/loop7 b 7 0 fi #mount -o loop,noatime -t ext2 $kit/bt5.img $mnt losetup /dev/block/loop7 $kit/bt5.img mount -t ext2 /dev/block/loop7 $mnt mount -t devpts devpts $mnt/dev/pts mount -t proc proc $mnt/proc mount -t sysfs sysfs $mnt/sys busybox sysctl -w net.ipv4.ip_forward=1 echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf echo "127.0.0.1 localhost bt5" > $mnt/etc/hosts echo "Ubuntu is configured with SSH and VNC servers that can be accessed from the IP:" ifconfig eth0 echo " " busybox chroot $mnt /bin/bash echo "Shutting down BackTrack ARM" umount $mnt/dev/pts umount $mnt/proc umount $mnt/sys umount $mnt losetup -d /dev/loop7 I have theese errors (by doing sh -x bt) mount -t ext2 /dev/block/loop7 $mnt >mount: Operation not supported on transport endpoint. ifconfig etho >eth0 : No such device busybox chroot $mnt /bin/bash >chroot: can't execute '/bin/bash' no such file or directory losetup -d /dev/loop7 >losetup: /dev/loop7: No such device or address I search on the forum but I can't find what is the real problem : http://forum.xda-developers.com/showthread.php?t=2116059 --> cd /storage/emulated/legacy/bt5/ don't change anything. I readed that ext2 and chroot not working could come from the 4.3 but I'm not sure about this information. I readed that most of custom ROM handle this. /bin/bash doesn't exist, but /system/bin/sh does exists but : busybox chroot $mnt /system/bin/sh don't changes anything. I'd be glad if you can help me understanding my problem Best, Sanchorizo.
Possible script for better performance?
Coming from a galaxy s6 i remember when i used to find all types of scripts to make the phone perform better. however these new gen phones make me believe that these scripts are obsolete, or are they? below are my current scripts that ive used on almost all android devices. id like to get input as to whether people see a difference (or any experience using these or similar scripts) #flags all part' as non rotational and disables iostats (possible better throughput) MTD=`ls -d /sys/block/*`; for j in $MTD # $LOOP $RAM do echo "0" > $j/queue/rotational; echo "0" > $j/queue/iostats; done # Remount all partitions with noatime and others to possibly save cpu cycles requires bb for k in $(busybox mount | grep relatime | cut -d " " -f3); do sync; busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,data=writeback,nobh $k; done; #disable journaling possible throughput benefits tune2fs -o journal_data_writeback /block/path/to/system tune2fs -O ^has_journal /block/path/to/system tune2fs -o journal_data_writeback /block/path/to/cache tune2fs -O ^has_journal /block/path/to/cache tune2fs -o journal_data_writeback /block/path/to/data tune2fs -O ^has_journal /block/path/to/data just thought id put them there for people to see if they have any benefits.
virtyx said: Coming from a galaxy s6 i remember when i used to find all types of scripts to make the phone perform better. however these new gen phones make me believe that these scripts are obsolete, or are they? below are my current scripts that ive used on almost all android devices. id like to get input as to whether people see a difference (or any experience using these or similar scripts) #flags all part' as non rotational and disables iostats (possible better throughput) MTD=`ls -d /sys/block/*`; for j in $MTD # $LOOP $RAM do echo "0" > $j/queue/rotational; echo "0" > $j/queue/iostats; done # Remount all partitions with noatime and others to possibly save cpu cycles requires bb for k in $(busybox mount | grep relatime | cut -d " " -f3); do sync; busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,data=writeback,nobh $k; done; #disable journaling possible throughput benefits tune2fs -o journal_data_writeback /block/path/to/system tune2fs -O ^has_journal /block/path/to/system tune2fs -o journal_data_writeback /block/path/to/cache tune2fs -O ^has_journal /block/path/to/cache tune2fs -o journal_data_writeback /block/path/to/data tune2fs -O ^has_journal /block/path/to/data just thought id put them there for people to see if they have any benefits. Click to expand... Click to collapse why dont you try and let us know if ut works or not
eddmecha said: why dont you try and let us know if ut works or not Click to expand... Click to collapse i think its subjective i cant tell much difference which is why if other people use it maybe they can tell the difference too