Boot Process research based on 2.2.3 Verizon WebDoctor - WebOS Software Development
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
Related
Arch linux chroot
I started using Arch some months ago and I really enjoying it. Coming from a released based distro, it feels really nice been able to choose exactly what you want to run in your system and always have the packages up to date. For a while I have been planning on running ubuntu in my transformer but I just don't feel too comfortable with ubuntu , so decided to run arch in my transformer. I couldn't find a tutorial so I scavenged the net and found bits and peace that I put together to make this tutorial. What I like about arch is that I am in control of my system and I can run exactly what I want, thanks awesomely documented Arch! This is a tutorial that will show you how to run Arch Linux in a chrooted environment within your Asus Tarsnformer. I will not provide a simple script that if you run it will do everything for you, instead I will teach you how to make your own installation by grabbing all necessary elements. You will need: Arch Live image: Go to http://archlinuxarm.org/developers/downloads and grab the omap 3/4 package. Install environment: It can be your internal storage or a sd/micro card. Here I will show how to use the micro sd card. Script for starting the chroot: I grabbed mine from http://forum.xda-developers.com/showthread.php?t=1517993&highlight=chroot and did some modifications. Thanks-miska- Rooted Asus Transformer(Prime?) with Terminal: You need root to mount the file system and loop devices. In theory this should work in the Prime too. Linux Machine Step 1: For installing arch in a (micro)sd card (I prefer micro as I don't need the dock for using it), first you need to format the card and make two partitions. (I used gparted) Make one partition fat and assign a small amount of space(I have a 4gb micro and assigned 128mb to the fat partition), then make the rest ext4. Make sure the fat partition is first and the ext one is second. Step 2: Now as root you need to extract the package in the ext partition of your card. REMEMBER to be root, I got stuck thinking there was something wrong with the package I downloaded but it was that I was unpacking as normal user. Code: # tar -c /path/to/extpartition -xzf ArchLinuxARM-omap-smp-latest.tar.gz Now you have a arch environment in your (micro)sd card. Step 3: In your asus transformer create a folder called 'arch' in the root of your internal storage. Code: #mkdir /sdcard/arch Or use a file manager. Now place this script somewhere in your transformer, I usually keep it in /sdcard/Downloads Code: #!/bin/sh # Modify this according to your needs DEVICE="/dev/block/mmcblk1p2" LOOP="no" # Maybe this as well MNT_PATH="/mnt/sdcard/arch" # Modify only if you know, what are you doing BINDS="dev dev/pts proc sys mnt/sdcard" ANDROID_BINDS=" /system /data " TMPS="tmp var/tmp var/log var/run" MY_MOUNTS="" unset PS1 # Helper functions die() { echo " $1" exit 1 } safe_mount() { mkdir -p "$MNT_PATH""$2" if [ "$3" ]; then OPTION=" $3 " else OPTION="" fi if [ -z "`mount | grep " $MNT_PATH$2 "`" ]; then mount $OPTION "$1" "$MNT_PATH$2" || die "Can't mount $2!!!" fi MY_MOUNTS="$MNT_PATH$2 $MY_MOUNTS" } # Real work [ "`whoami || echo root`" = "root" ] || die "You must be root first!" LOOP_ARG="" [ "$LOOP" = "no" ] || LOOP_ARG=" -o loop " safe_mount $DEVICE "" "$LOOP_ARG -t ext4 " for i in $BINDS; do safe_mount "/$i" "/$i" " -o bind " done if [ -d /Removable ]; then for i in /Removable/*; do [ -d "$i" ] && safe_mount $i /mnt$i " -o bind " done fi for i in $ANDROID_BINDS; do safe_mount $i /mnt/android$i " -o bind " done for i in $TMPS; do safe_mount none /$i " -t tmpfs " done mount -o remount,ro "$MNT_PATH" chroot "$MNT_PATH" /sbin/fsck.ext2 -y "$DEVICE" mount -o remount,rw "$MNT_PATH" # Tweak configuration of the chroot during first start #if [ \! -f "$MNT_PATH"/etc/profile.d/tweak.sh ]; then #mkdir -p "$MNT_PATH"/home/opensuse echo 'nameserver 8.8.8.8' > "$MNT_PATH"/etc/resolv.conf #echo 'net:x:3003:root,opensuse' >> "$MNT_PATH"/etc/group #echo 'opensuse:x:1000:100::/home/opensuse:/bin/bash' >> "$MNT_PATH"/etc/passwd #echo 'opensuse:$1$joWqOQdr$YsapocP32UtdiR3PKBXVM1:15395:0:::::' \ # >> "$MNT_PATH"/etc/shadow #sed -i 's|^root:.*|root:$1$joWqOQdr$YsapocP32UtdiR3PKBXVM1:15395:0:::::|' \ # "$MNT_PATH"/etc/shadow #echo '#!/bin/sh #export TERM=linux #export LANG="en_US.utf-8" #export EDITOR="busybox vi" #alias vi="busybox vi" #precmd() { :; } #if [ "`whoami`" = root ]; then # export HOME=/root # export USER=root # hostname -F /etc/HOSTNAME #fi #if [ -z "$CHROOTED" ]; then # export CHROOTED=yes # export HOME="/home/opensuse" # export USER="opensuse" # su opensuse #fi #' > "$MNT_PATH"/etc/profile.d/tweak.sh #fi export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/system/xbin:/system/bin" # Chroot chroot "$MNT_PATH" /bin/bash #chroot "$MNT_PATH" /root/init.sh # Cleanup echo "Umount everything" for i in $MY_MOUNTS; do umount -l $i done Step 4: Chmod +x the script and run it as root. Code: su #chmod +x scriptname.sh sh scriptname.sh The script will mount the ext partition of your (micro)sd card in /sdcard/arch and will chroot into it. It also does other really nice things, such as mounting your android partitions to /mnt so you can access them from within your arch environment. I have disabled some lines that are used to set up a some environment variables, but you should still be able to get a fully functional command-line environment and you can enable them and modify them as you want. Step 5: The rest is completely up to you, now you have arch running in your transformer. But what!? You need X?! really???? Ok, so lets create a vnc server so we can remote into it. Your network connection should work, so the first thing to do is an update Code: #pacman -Syu Now install xorg Code: #pacman -S xorg-server xorg-xinit xorg-twm xorg-xclock xterm Now install a vncserver Code: #pacman -S tightvnc And now this is the tricky part(And I spent a lot of time in this). I grabbed this script from the UbuntuInstaller post. This is the script they use for setting a resolution at each boot. What I did was to remove the resolution prompt and fix the resolution to 1280x752(fullscreen) and remove some ubuntu stuff. I also added an export for HOME and USER that will allow you to run 'vncserver' as root. Code: #!/bin/bash ############################################# # Asks User to screen size and saves as REZ # ############################################# #echo "Now enter the screen size you want in pixels (e.g. 800x480), followed by [ENTER]:" #read REZ ########################################### # Tidy up previous LXDE and DBUS sessions # ########################################### #rm /tmp/.X* > /dev/null 2>&1 #rm /tmp/.X11-unix/X* > /dev/null 2>&1 #rm /root/.vnc/localhost* > /dev/null 2>&1 #rm /var/run/dbus/pid > /dev/null 2>&1 ############################################################ # enable workaround for upstart dependent installs # # in chroot'd environment. this allows certain packages # # that use upstart start/stop to not fail on install. # # this means they will have to be launched manually though # ############################################################ #dpkg-divert --local --rename --add /sbin/initctl > /dev/null 2>&1 #ln -s /bin/true /sbin/initctl > /dev/null 2>&1 ############################################### # start vnc server with given resolution and # # DBUS server, (and optionally an SSH server) # ############################################### export HOME="/root/" export USER="root" vncserver :0 -geometry 1280x752 dbus-daemon --system --fork > /dev/null 2>&1 /etc/rc.d/sshd start #echo #echo "If you see the message 'New 'X' Desktop is localhost:0' then you are ready to VNC into your ubuntu OS.." #echo #echo "If VNC'ing from a different machine on the same network as the android device use the 1st address below:" ########################################## # Output IP address of android device # ########################################## ifconfig | grep "inet addr" #echo #echo "If using androidVNC, change the 'Color Format' setting to 24-bit colour, and once you've VNC'd in, change the 'input mode' to touchpad (in settings)" #echo #echo "To shut down the VNC server and exit the ubuntu environment, just enter 'exit' at this terminal - and WAIT for all shutdown routines to finish!" #echo ############################################################### # Spawn and interactive shell - this effectively halts script # # execution until the spawning shell is exited (i.e. you want # # to shut down vncserver and exit the ubuntu environment) # ############################################################### /bin/bash -i ######################################### # Disable upstart workaround and # # kill VNC server (and optionally SSH) # # Rename used xstartup to its first file# ######################################### vncserver -kill :0 /etc/rc.d/sshd stop Place this script in /root/, give it the name 'init.sh' and make sure it is executable(chmod +x). Now in the previous script comment the line: Code: chroot "$MNT_PATH" /bin/bash and uncomment the line Code: chroot "$MNT_PATH" /root/init.sh Step 6: Now you should be able to start a vncserver with twm as your window manager and a xterm. You can now go to https://wiki.archlinux.org/index.php/Desktop_Environment or https://wiki.archlinux.org/index.php/Window_Manager and set up the desktop environment that you like the most. Remember that you need to set up the graphical environment to start manually and not at boot. In a normal environment you would usually use 'startx' which will read the .xinitrc file and run the programs from there. In our case put everything that needs to go into .xinitrc into ~/.vnc/xstartup. An example of my ~/.vnc/xstartup Code: #!/bin/bash xrdb $HOME/.Xresources exec startfluxblox This will start an empty fluxbox window manager.
[MOD][GUIDE]tweak collections for build.prop/init.d
1 i DIDNT made this all tweaks ... Credit goes to their Developers... I am not responsible for your bricked phone/sd if u pointed on me i will laugh at u Forever king Tweaks.... Build.prop tweaks 1 VM Heapsize; higher the RAM Code: dalvik.vm.heapsize=48m 2 Good JPG quality Code: ro.media.enc.jpeg.quality=100 3 Render UI with GPU Code: debug.sf.hw=1 4 Best Scrolling Code: windowsmgr.max_events_per_sec=150 5 Decrease dialing out delay Code: ro.telephony.call_ring.delay=0 6 battery Saving Code: wifi.supplicant_scan_interval=180 pm.sleep_mode=1 ro.ril.disable.power.collapse=0 7 Disable debugging notify icon on statusbar Code: persist.adb.notify=0 8 Increase touch responsiveness Code: debug.performance.tuning=1 video.accelerate.hw=1 9 Awesome photo and video recording quality Code: ro.media.dec.jpeg.memcap=8000000 ro.media.enc.hprof.vid.bps=8000000 10 Network tweaks Code: Code: ro.ril.hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=1 ro.ril.enable.dtm=1 ro.ril.hsdpa.category=10 ro.ril.enable.a53=1 ro.ril.enable.3g.prefix=1 ro.ril.htcmaskw1.bitmask=4294967295 ro.ril.htcmaskw1=14449 ro.ril.hsupa.category=5 11 Internet fast tweaks Code: net.tcp.buffersize.default=6144,87380,1048576,6144,87380,524288 net.tcp.buffersize.wifi=524288,1048576,2097152,524288,1048576,2097152 net.tcp.buffersize.umts=6144,87380,1048576,6144,87380,524288 net.tcp.buffersize.gprs=6144,87380,1048576,6144,87380,524288 net.tcp.buffersize.edge=6144,87380,524288,6144,16384,262144 net.tcp.buffersize.hspa=6144,87380,524288,6144,16384,262144 net.tcp.buffersize.lte=524288,1048576,2097152,524288,1048576,2097152 net.tcp.buffersize.hsdpa=6144,87380,1048576,6144,87380,1048576 net.tcp.buffersize.evdo_b=6144,87380,1048576,6144,87380,1048576 12 Fix some application issues (FC) ro.kernel.android.checkjni=0 13 Phone will not wake up from hitting the volume rocker Code: ro.config.hwfeature_wakeupkey=0 14 Disable boot animation for faster boot Code: debug.sf.nobootanimation=1 15 faster streaming Code: media.stagefright.enable-meta=true media.stagefright.enable-record=false 16 Miscellaneous Tweaks for performance Code: ro.config.hw_menu_unlockscreen=false persist.sys.use_dithering=0 persist.sys.purgeable_assets=1 dalvik.vm.dexopt-flags=m=y ro.mot.eri.losalert.delay=1000 17 Use Google DNS Code: net.ppp0.dns1=8.8.8.8 net.ppp0.dns2=8.8.4.4 net.dns1=8.8.8.8 net.dns2=8.8.4.4 Init.d tweaks (needs ROM with init.d access and busybox, open empty file, insert header "#!/system/bin/sh" and put these there, save in /system/etc/init.d and name it something like tweak1) 1 strict minfree handler tweak Code: echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree 2 internet speed hack tweaks Code: echo "0" > /proc/sys/net/ipv4/tcp_timestamps; echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse; echo "1" > /proc/sys/net/ipv4/tcp_sack; echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle; echo "1" > /proc/sys/net/ipv4/tcp_window_scaling; echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes; echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl; echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout; echo "404480" > /proc/sys/net/core/wmem_max; echo "404480" > /proc/sys/net/core/rmem_max; echo "256960" > /proc/sys/net/core/rmem_default; echo "256960" > /proc/sys/net/core/wmem_default; echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem; echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem; 3 kernel tweaks Code: echo "8" > /proc/sys/vm/page-cluster; echo "64000" > /proc/sys/kernel/msgmni; echo "64000" > /proc/sys/kernel/msgmax; echo "10" > /proc/sys/fs/lease-break-time; echo "500,512000,64,2048" > /proc/sys/kernel/sem; 4 vm management tweaks Code: echo "4096" > /proc/sys/vm/min_free_kbytes echo "0" > /proc/sys/vm/oom_kill_allocating_task; echo "0" > /proc/sys/vm/panic_on_oom; echo "0" > /proc/sys/vm/laptop_mode; echo "0" > /proc/sys/vm/swappiness echo "50" > /proc/sys/vm/vfs_cache_pressure echo "90" > /proc/sys/vm/dirty_ratio echo "70" > /proc/sys/vm/dirty_background_ratio 5 battery tweaks Code: echo "500" > /proc/sys/vm/dirty_expire_centisecs echo "1000" > /proc/sys/vm/dirty_writeback_centisecs 6 removes journalism Code: 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 7 increases cache size and increases speed Code: LOOP=`ls -d /sys/block/loop*`; RAM=`ls -d /sys/block/ram*`; MMC=`ls -d /sys/block/mmc*`; for j in $LOOP $RAM do echo "0" > $j/queue/rotational; echo "2048" > $j/queue/read_ahead_kb; done 8 SD card speed tweak Code: echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb; 9 Defrags database files Code: for i in \ `find /data -iname "*.db"` do \ sqlite3 $i 'VACUUM;'; done 10 Ondemand governor Code: SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000) echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate 11 Governor Best: Minmax , SavagedZen , Smoothass , Smartass, Interactive Code: echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 12 Move dalvik-cache to cache partition Code: CACHESIZE=$(df -k /cache | tail -n1 | tr -s ' ' | cut -d ' ' -f2) if [ $CACHESIZE -gt 80000 ] then echo "Large cache detected, moving dalvik-cache to /cache" if [ ! -d /cache/dalvik-cache ] then busybox rm -rf /cache/dalvik-cache /data/dalvik-cache mkdir /cache/dalvik-cache /data/dalvik-cache fi busybox chown 1000:1000 /cache/dalvik-cache busybox chmod 0771 /cache/dalvik-cache # bind mount dalvik-cache so we can still boot without the sdcard busybox mount -o bind /cache/dalvik-cache /data/dalvik-cache busybox chown 1000:1000 /data/dalvik-cache busybox chmod 0771 /data/dalvik-cache else echo "Small cache detected, dalvik-cache will remain on /data" fi 13 Disable normalize sleeper Code: mount -t debugfs none /sys/kernel/debug echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features Other tweaks (not build.prop,init.d) 1 v6 supercharger Code: http://forum.xda-developers.com/attachment.php?attachmentid=591730&d=1305000576 Credit- zeppelinrox 2 Use CyanogenMOD's APN list file (fully , for every operator) Its in system>etc 3 Use uot kitchen for Theming your rom Code: http://uot.dakra.lt/ 4 Never use Task killer............ please hit thanks and comment if you like this guide....if using in Rom proper credits to this guide!
Tizen
As tizen source is available now I wondered if anyone has taken a look at it yet. I prepared my machine to start building it and test it. Will publish updates in this thread. Sent from my GT-I9300 using xda premium
Another mobile OS. Like there isnt enough already.
Subscribe Tapatalk 2-vel küldve az én GT-I9300-ről
As far as I have read the new phone with Tizen which Samsung will release (i9500) uses the i9300 modem. Looking at the structure, used kernel etc now. For building a kickstart file is used, it is looking like this: Code: # -*-mic2-options-*- -f loop [email protected]@-rs.tar.gz -*-mic2-options-*- # # Do not Edit! Generated by: # kickstarter.py # lang en_US.UTF-8 keyboard us timezone --utc America/Los_Angeles # ROOT fs partition #part / --size=800 --ondisk mmcblk0p --fstype=ext4 --label=platform # Use larger partition for creation, and will be shrinked at last, workaround of libzypp bug #part / --size=2000 --ondisk mmcblk0p --fstype=ext4 --label=platform # DATA partition #part /opt/ --size=1800 --ondisk mmcblk0p --fstype=ext4 --label=data # ROOT fs partition part / --size=1700 --ondisk mmcblk0p --fstype=ext4 --label=platform # DATA partition part /opt/ --size=3000 --ondisk mmcblk0p --fstype=ext4 --label=data # UMS partition part /opt/media/ --size=300 --ondisk mmcblk0p --fstype=vfat --label=ums rootpw tizen bootloader --timeout=0 --append="rootdelay=5" desktop --autologinuser=root user --name root --groups audio,video --password '' repo --name=Tizen-main --baseurl=https://download.tizen.org/snapshots/trunk/common/@[email protected]/repos/main/armv7l/packages/ --save --ssl_verify=no repo --name=Tizen-base --baseurl=https://download.tizen.org/snapshots/trunk/common/@[email protected]/repos/base/armv7l/packages/ --save --ssl_verify=no %packages @tizen-c210 @tizen-bootstrap -glib2-static -gettext-tools -eglibc-utils -imake -giflib-utils -brcm-gps-daemon -insserv %end %prepackages libgcc eglibc sqlite zlib libpython libdlog libcap libattr default-files-slp busybox python-base libacl glib2 tzdata-slp vconf libxml2 heynoti openssl shared-mime-info libudev security-server dbus-libs cert-svc libsecurity-server-client %end %post echo 'kickstart post script start' if [ -d /etc/init.d ]; then cp /etc/init.d/* /etc/rc.d/init.d/ -rdf fi rm -rf /etc/init.d* ln -sf /etc/rc.d/init.d /etc/init.d # Without this line the rpm don't get the architecture right. echo -n 'armv7l-meego-linux' > /etc/rpm/platform ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N "" ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" ail_initdb /opt/apps/com.samsung.menu-screen/bin/menuscreen_initdb cat > /usr/bin/press << EOF #!/bin/sh JUNK="SLP" [ "\$1" ] && TIMEOUT="\$1" || TIMEOUT="1" echo "Press return key to stop scripts" read -t \$TIMEOUT JUNK exit \$? EOF chmod +x /usr/bin/press ln -s /opt/etc/X11/xkb /usr/share/X11 echo "UDEV_PERSISTENT_STORAGE=no" >> /etc/sysconfig/udev rm -rf /usr/include rm -rf /usr/share/man rm -rf /usr/share/doc MAJOR="2" MINOR="0" cat >/etc/info.ini <<EOF [Version] Major=$MAJOR; Minor=$MINOR; Build=TIZEN_`date +%Y%m%d`_1; Order=; [Build] Date=`date +%Y.%m.%d`; Time=`date +%H:%M:%S`; EOF ln -sf /etc/info.ini /opt/etc/info.ini ln -sf /etc/info.ini /usr/etc/info.ini mkdir -p /home/app cp -a /etc/skel/.e /home/app/ chown -R 5000:5000 /home/app chmod 0755 /home/app chown -R 5000:5000 /opt/home/app chmod 0755 /opt/home/app cat > /usr/lib/systemd/system/usb-debug.service << EOF [Unit] Description=Start usb networking for debugging ConditionPathExists=/sys/devices/platform/usb_mode/UsbMenuSel [Service] Type=oneshot RemainAfterExit=yes Environment=PATH=/bin:/sbin ExecStart=/bin/bash -c 'echo 4 > /sys/devices/platform/usb_mode/UsbMenuSel' ExecStart=/sbin/ifconfig usb0 192.168.129.3 netmask 255.255.255.0 ExecStop=/bin/bash -c 'echo 0 > /sys/devices/platform/usb_mode/UsbMenuSel' # # We now don't launch this USB mode hack by default. If you need that, run this: # systemctl enable usb-debug.service # or create a link manually like below: # ln -s ../usb-debug.service /usr/lib/systemd/system/basic.target.wants/usb-debug.service # [Install] WantedBy=basic.target EOF # required for the connman systemd service cat > /etc/sysconfig/connman << EOF OPTIONS="-W wext" EOF # required for the wpa_supplicant systemd service cat > /etc/sysconfig/wpa_supplicant << EOF OPTIONS="-Dwext" EOF ldconfig rpm --rebuilddb echo 'kickstart post script end' %end %post --nochroot %end
News ?
It is nice Android to have competition but from what I saw on youtube Tizen is just android stuck at version 2.3. Is there anything new except that there will be no native apps?
gud to here that now wating for ur good work
SM-T230NU - Generate .config used by a running a kernel
Is it possible to create a new kernel config file used by the running kernel for the SM-T230NU? If so, what are the steps to create one? The reason I am asking is I want to use the .config file to create a Kernel module. The module is LiME.ko and it is used to acquire the tablet's memory image which I use for forensic analysis. The challenge is that default Samsung Kernels/ROM's do not appear to come with a kernel .config file. Your help is appreciated. Thanks,
http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=SM-T230 -> arch/arm/config https://github.com/GalaxyTab4/andro...h/arm/configs/pxa1088_degaswifi_eur_defconfig -> my GitHub checking for ikconfig -> Code: #!/bin/sh # ---------------------------------------------------------------------- # extract-ikconfig - Extract the .config file from a kernel image # # This will only work when the kernel was compiled with CONFIG_IKCONFIG. # # The obscure use of the "tr" filter is to work around older versions of # "grep" that report the byte offset of the line instead of the pattern. # # (c) 2009,2010 **** Streefland <****@streefland.net> # Licensed under the terms of the GNU General Public License. # ---------------------------------------------------------------------- cf1='IKCFG_ST\037\213\010' cf2='0123456789' dump_config() { if pos=`tr "$cf1\n$cf2" "\n$cf2=" < "$1" | grep -abo "^$cf2"` then pos=${pos%%:*} tail -c+$(($pos+8)) "$1" | zcat > $tmp1 2> /dev/null if [ $? != 1 ] then # exit status must be 0 or 2 (trailing garbage warning) cat $tmp1 exit 0 fi fi } try_decompress() { for pos in `tr "$1\n$2" "\n$2=" < "$img" | grep -abo "^$2"` do pos=${pos%%:*} tail -c+$pos "$img" | $3 > $tmp2 2> /dev/null dump_config $tmp2 done } # Check invocation: me=${0##*/} img=$1 if [ $# -ne 1 -o ! -s "$img" ] then echo "Usage: $me <kernel-image>" >&2 exit 2 fi # Prepare temp files: tmp1=/tmp/ikconfig$$.1 tmp2=/tmp/ikconfig$$.2 trap "rm -f $tmp1 $tmp2" 0 # Initial attempt for uncompressed images or objects: dump_config "$img" # That didn't work, so retry after decompression. try_decompress '\037\213\010' xy gunzip try_decompress '\3757zXZ\000' abcde unxz try_decompress 'BZh' xy bunzip2 try_decompress '\135\0\0\0' xxx unlzma try_decompress '\211\114\132' xy 'lzop -d' try_decompress '\002\041\114\030' xyy 'lz4 -d -l' # Bail out: echo "$me: Cannot find kernel config." >&2 exit 1
Thank you for getting back to me. You have been very helpful. I have a related question. How do I install the kernel I downloaded from the opensource.samsung site to my SM-T230NU? I have created a kernel .config file from the downloaded kernel from the link you provided and subsequently generated a zImage file but I do not know how to create the ramdisk and boot.img. I tried installing the kernel using AnyKernel and Heimdall but it fails. Can you provide guidance or a tutorial on how to do this? I would rather not install a ROM. Only the kernel. I really appreciate the help. sub77 said: http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=SM-T230 -> arch/arm/config https://github.com/GalaxyTab4/andro...h/arm/configs/pxa1088_degaswifi_eur_defconfig -> my GitHub checking for ikconfig -> Code: #!/bin/sh # ---------------------------------------------------------------------- # extract-ikconfig - Extract the .config file from a kernel image # # This will only work when the kernel was compiled with CONFIG_IKCONFIG. # # The obscure use of the "tr" filter is to work around older versions of # "grep" that report the byte offset of the line instead of the pattern. # # (c) 2009,2010 **** Streefland <****@streefland.net> # Licensed under the terms of the GNU General Public License. # ---------------------------------------------------------------------- cf1='IKCFG_ST\037\213\010' cf2='0123456789' dump_config() { if pos=`tr "$cf1\n$cf2" "\n$cf2=" < "$1" | grep -abo "^$cf2"` then pos=${pos%%:*} tail -c+$(($pos+8)) "$1" | zcat > $tmp1 2> /dev/null if [ $? != 1 ] then # exit status must be 0 or 2 (trailing garbage warning) cat $tmp1 exit 0 fi fi } try_decompress() { for pos in `tr "$1\n$2" "\n$2=" < "$img" | grep -abo "^$2"` do pos=${pos%%:*} tail -c+$pos "$img" | $3 > $tmp2 2> /dev/null dump_config $tmp2 done } # Check invocation: me=${0##*/} img=$1 if [ $# -ne 1 -o ! -s "$img" ] then echo "Usage: $me <kernel-image>" >&2 exit 2 fi # Prepare temp files: tmp1=/tmp/ikconfig$$.1 tmp2=/tmp/ikconfig$$.2 trap "rm -f $tmp1 $tmp2" 0 # Initial attempt for uncompressed images or objects: dump_config "$img" # That didn't work, so retry after decompression. try_decompress '\037\213\010' xy gunzip try_decompress '\3757zXZ\000' abcde unxz try_decompress 'BZh' xy bunzip2 try_decompress '\135\0\0\0' xxx unlzma try_decompress '\211\114\132' xy 'lzop -d' try_decompress '\002\041\114\030' xyy 'lz4 -d -l' # Bail out: echo "$me: Cannot find kernel config." >&2 exit 1 Click to expand... Click to collapse
Dangerous Performance
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