yashsingh1/xdaforums huggingface dataset:
[Nook HD, HD+ Android Development] :
Weird.

On V10, my Nook was running perfectly fine and fast until I tried to make a Nandroid on TWRP. Could this have occurred because I had TWRP 2.700? I got bootloops after completing the backup. Every time it happened, a factory reset fixed the problem, but made running the ROM inconvenient.
[Nook HD, HD+ Android Development] Jon Lee:
I see that you're a developer of an overclocked omap4460 kernel. You don't happen to have a quadrant benchmark of your system that you could share? I would love to compare the two to see how I am doing.

I took a lot of inspiration from what lupohirp did with his 'Golden Kernel'.

https://github.com/lupohirp/GoldenKernel/commits/master

Be advised, though, that at least one of his commits isn't compatible with omap. (I believe the mutex stuff).
[Nook HD, HD+ Android Development] Jon Lee:
I really couldn't tell you. An adb logcat could give you a little more information. I am still using v2.6.3. I considered upgrading to 2.7.0, but it was this line:

http://teamw.in/project/twrp2

which made me think it wouldn't be compatible with CM10.1

I tell you, one thing I have seen (with a faulty kernel), is something in /data/system getting corrupted and causing a bootloop.

You can adb in and cd /data/system and rm * to fix it, you'll lose some launcher settings but otherwise keep your apps.

In fact I would love to see this option added to twrp wipe menu, so one doesn't have to wipe their entire /data contents/
[Nook HD, HD+ Android Development] :
Ok, thanks.
[Nook HD, HD+ Android Development] Maromi:
What did you cherry pick between the last build and the current one?
[Nook HD, HD+ Android Development] Jon Lee:
Oh, wow! You're doing awesome. Obviously, I have some work to do...

How is it doing on heat/battery life? I noticed my voltages were definitely on the low side compared to yours.

The ones you (mostly) want will be these:

https://github.com/lupohirp/GoldenKernel/commit/c14d77b13b2b20c88ec84d7f74f391f5fdabbbfc

https://github.com/lupohirp/GoldenKernel/commit/57f8d63ef05cbda495066f4139383faabf1cd7d2

...and fiops-iosched, which the only place I could find code compatible with 3.0.x kernels is here:

https://github.com/AndroidDeveloperAlliance/ZenKernel_TUNA
[Nook HD, HD+ Android Development] Korgy:
Heck of a job so far man. I'm keeping an eye on this thread as I might just have to try this out when I get some time.
[Nook HD, HD+ Android Development] JeauxAdam:
I may switch from the Xperia Carbon ROM if this is what I am missing!

Sent from my Nook HD+
[Nook HD, HD+ Android Development] jpisini:
Decided to try out this rom today. It does not like my Nook I just lock up solid at boot as soon as the CM login page comes up. I was looking forward to trying it out but just can't make it work. Thanks for building it we appreciate all the hard work.
[Nook HD, HD+ Android Development] Jon Lee:
I'm assuming you flashed OC7 on page 1 of this thread and it wouldn't boot for you? I know I have not packaged these last kernels to work on anything else and would cause a bootloop otherwise. If you wanted you could try OC1 or 2 (and even possibly 3), because these weren't undervolted. If one of those worked for you, I could bump the voltages up a little (and possibly package the kernel so that it could be flashed over a standard 10.1.3).

I've been using one that has the clocks bumped up to 1628/407. So far I've had one crash (with flash and on a charger, both cause it to get quite warm), so I'm debating bumping the voltages up a little anyways. I'm also debating smartreflex. Smartreflex working causes it to run cooler but perhaps at the expense of stability.

I dunno which would be better,

smartreflex enabled, bump up the voltages a little

disable smartreflex, keep the undervolt

either way the only other changes another version would have besides that would be to perhaps fix row scheduler again and try out a few more governors.
[Nook HD, HD+ Android Development] jpisini:
I did flash the Rom in post one. I didn't try any of the other kernels should I flash the Rom and then one of the kernels you mention? Anything special like clearing caches before or after the kernel flash? I did full wipes before trying the Rom.
[Nook HD, HD+ Android Development] jpisini:
Dumb question I don't see oc1 or 2 in this thread what am I missing?
[Nook HD, HD+ Android Development] Jon Lee:
I'm sorry if I seem to be a bit distracted. They can be found in the original thread.

http://xdaforums.com/showthread.php?t=2627202

I have a found an omap 5 patch to enable DCC that when adapted to omap 4, allows me to achieve frequencies MUCH higher than 1.6Ghz (easily!).

https://git.ti.com/android-sdk/kernel-omap/commit/fb93428cfa775858ea249ee5fba986099168345e

The only problem is that it breaks the hardware volume rocker buttons. Sound still works, but the volume has to be adjusted through system settings and not the buttons on the side.

This leads me to believe that the abe clock divisors aren't being set properly on opps higher than 1.6, so I've been trying to figure that out.

I promise that if/when I release another kernel, I will bump the voltages up a little for you JP. Just be patient with me.
[Nook HD, HD+ Android Development] jpisini:
Thanks I will give it a try this weekend and let you know.
[Nook HD, HD+ Android Development] Jon Lee:
Ok well here it is JP, unlucky 13:

http://www.mediafire.com/download/n5nd1y9tt3uolep/ovation-kernel-cm10.1.3_v13.zip

If you flash OC7 and then flash this on top, it *should* work for you.

1) DCC enabled

2) Smartreflex disabled

3) Although still undervolted, voltages were returned to very close to stock

Although untested thoroughly, anyone else that was experiencing any instability, this should fix it for you.

(Thanks to Maromi and Hashcode for the hints!)

Source is forthcoming (still want to try a few more governors).
[Nook HD, HD+ Android Development] jpisini:
V13 didn't work for me it locks up at the CM logo while it is still in the upper right before it centers itself. I was able to get it to boot no issues with V2. Thanks.
[Nook HD, HD+ Android Development] Jon Lee:
If you'll take a look at dmesg and tell me your ram manufacturer, I'll try and have you a more up-to-date kernel by the end of the day, with only a very mild OC, and stock voltages. Those very first few kernels had some existing kernel bugs that I took care of early on.

BTW, use v13 at your own risk... it runs very hot for me and will be the last of its ilk.
[Nook HD, HD+ Android Development] jpisini:
I apologize I am unable to find that in dmesg is there something I can grep on? I tried a couple of apps in the market and can only seem to find out how much not what type.
[Nook HD, HD+ Android Development] Jon Lee:
Alright, try this one:

http://www.mediafire.com/download/w43jy45mzc3x9fo/ovation-kernel-cm10.1.3_v14.zip

DCC enabled, smartreflex enabled, 1600/400, stock voltages and stock hynix ram timings.

It still benchmarks fairly well...
[Nook HD, HD+ Android Development] jpisini:
Installed and booted fine. I love all the extra governors is there any info on the differences? I will let you know if I run into any problems. Great work thanks.
[Nook HD, HD+ Android Development] swaaye:
Jon what's the scoop on the tun module? Have you figured out how to insmod the dependency modules for it now that you are keeping it external?

They are usually based on either Ondemand or Hotplug and try different ways of balancing battery/performance. Hotplug is itself based on Ondemand but with "hotplugging" functionality that turns off CPU2 most of the time since it is typically idle. Abyssplug is a tweaked Hotplug, though I was unable to figure out how it's tweaked and reading the source code is more effort than I am going to put in.

From a performance standpoint, I can not tell the difference between governors. Battery life is affected though to some degree. Certainly the Performance governor that keeps the CPU at full speed is not good for battery. ;) Some of them lock the CPU to a low clock when the screen is off to protect battery life from misbehaving apps.

If you search the web for their names you'll find giant governor description posts around.
[Nook HD, HD+ Android Development] :
Thanks for explaining some of the governors. I've always been wanting to know the differences between them
[Nook HD, HD+ Android Development] Jon Lee:
Take whatever modules you think you'll need (different types of VPN's require different modules):

http://www.mediafire.com/download/gdxj07xe0mhgj4q/mod.zip

and put them in /system/lib/modules, give them rw-r-r permissions

Then take the 60ZRM file I provided earlier and place it in /etc/init.d

add lines to the file like so to insmod the modules

#!/system/bin/sh

sysctl -w vm.swappiness=40
echo "1" > /sys/block/zram0/reset
echo $((60*1024*1024)) > /sys/block/zram0/disksize
mkswap /dev/block/zram0
swapon /dev/block/zram0
sleep 10
insmod /system/lib/modules/tun.ko

reboot and do a lsmod to make sure it worked

(I tested with tun.ko, it worked for me)

edit: latest source

http://www.mediafire.com/download/rd95d64grq11c94/android_kernel_bn_omap-cm-10.1_v8.tar.gz
[Nook HD, HD+ Android Development] swaaye:
Thanks Jon. tun.ko and that script were all I needed to get up and running. It will also be interesting to experiment with ZRAM.

kernel v14 seems solid too.
[Nook HD, HD+ Android Development] PMikeP:
Maybe that's because you're running OC. But I can tell a difference on my HD+ (running CM 10.2.1) and my Galaxy Tab 2 (running an AGNi kernel).

I primarily gauge a governor by how quickly it responds in "real time" to Garmin's Pilot user interface. (Like, when I call up the overlay screen menu.) It can be really frustrating with a slow governor, since the program lags about a full second behind touches.

I can also notice subtleties in governors by slowly dragging screens on the stock launcher. Some governors seem to jitter.

I've settled on either Interactive or Hotplug. I can tell when I'm running Interactive because the back of the unit gets hotter.

So I run Hotplug.

I've tried seeing how battery life is affected, but I can't tell the difference between the two. I think the screen uses the most power for what I do.
[Nook HD, HD+ Android Development] swaaye:
Yeah you are probably seeing that some governors shoot to max clock almost instantly whereas others more gradually ramp up or have behavior that interferes with user experience in some scenarios.

The screen is definitely the primary power consumer.
[Nook HD, HD+ Android Development] swaaye:
The ZRAM settings in the performance menu cause a boot loop. Only use Jon's script-based ZRAM settings.
[Nook HD, HD+ Android Development] Jon Lee:
Well I didn't want to admit it, but I had broken deep memory sleep in that last one (yet again), so I built another to fix that.

http://www.mediafire.com/download/a2s5cvl3qos5031/ovation-kernel-cm10.1.3_v15.zip

Other than that, nothing different except that I removed most of the governors (to see if any were adversely affecting performance). Seems this one doesn't benchmark as well as that last one (go figure).

If anyone has a favorite governor, I could possibly build them as modules. Also, If anyone noticed, in that last source I had provided, I had already added interactivx and dynamic_interactive but didn't build them into the kernel. Abyssplug is still my favorite, only because it hotplugs the cpu's slightly less than regular hotplug.

I'm still slightly tempted to try and build another kernel where 1.7Ghz is enabled. In order to control heat though, I would probably have to undervolt it and run the GPU at stock speeds. But it seems some people's devices aren't as comfortable with undervolting like mine... lol.
[Nook HD, HD+ Android Development] Jon Lee:
Umm, wow... If I had known that was there...

I bet I have to make zram a module in order to fix that (It probably makes two zram disks which can't be done with zram built into the kernel, or at least requires a kernel command line to do so).

The KSM feature works though.

I've tried like the dickens to get zcache/cleancache/frontswap to work. Don't know why it won't.

And to whoever wanted f2fs, I've tried several times for that as well. I've managed to build some kernels with it, but they hang, even before I can get a last_kmsg. The same requirements needed for f2fs would also give us zsmalloc in the memory manager. But this has proven difficult for me to port.

Which has just lead me to an interesting patch...

http://code.google.com/p/compcache/...001-zram-replace-xvmalloc-with-zsmalloc.patch

Hmm, maybe... we'll see.
[Nook HD, HD+ Android Development] swaaye:
Can you build a 1.7ghz kernel with the default max clock at 1.5ghz? That is how most other overclock kernels I've used came configured. Then people can test the higher speeds at will.
[Nook HD, HD+ Android Development] Jon Lee:
So I had managed to go this entire project without having to do a full factory reset until last night. I made a kernel with zram as a module, went into performance settings and tried to enable it there. NO GO. I couldn't figure out where CM saved performance settings and ended up having to do a full factory reset. I'm none too happy about it. It will take me awhile to recover.

I have another kernel to try that trades zram for zcache and cleancache.

root@android:/ # cd /sys/kernel/mm/zcache
root@android:/sys/kernel/mm/zcache # ls
compress_poor
curr_obj_count
curr_obj_count_max
curr_objnode_count
curr_objnode_count_max
evicted_buddied_pages
evicted_raw_pages
evicted_unbuddied_pages
failed_alloc
failed_eph_puts
failed_get_free_pages
failed_pers_puts
flobj_found
flobj_total
flush_found
flush_total
mean_compress_poor
put_to_flush
zbpg_unused_list_count
zbud_buddied_count
zbud_cumul_chunk_counts
zbud_cumul_zbytes
zbud_cumul_zpages
zbud_curr_raw_pages
zbud_curr_zbytes
zbud_curr_zpages
zbud_unbuddied_list_counts
zv_cumul_dist_counts
zv_curr_dist_counts
zv_max_mean_zsize
zv_max_zsize
zv_page_count_policy_percent
root@android:/sys/kernel/mm/zcache # cat zbud_cumul_zpages
33712
root@android:/sys/kernel/mm/zcache # cat zbud_curr_zpages
2691
root@android:/sys/kernel/mm/zcache # cd /sys/kernel/debug/cleancache
root@android:/sys/kernel/debug/cleancache # ls
failed_gets
invalidates
puts
succ_gets
root@android:/sys/kernel/debug/cleancache # cat puts
49169
root@android:/sys/kernel/debug/cleancache # cat succ_gets
7772

It also uses xsmalloc instead of xvmalloc. Supposedly xsmalloc doesn't fragment the memory as much as xvmalloc.

I cannot get zram to work with zcache- neither the xsmalloc or xvmalloc variety. Maybe someone else can figure that out.

This also has frontswap but I believe you have to have a physical swap device for it to do anything.

I'm thinking this one may play better with ion/tiler. It benchmarks fairly well as well.

flashable kernel:

http://www.mediafire.com/download/1fdt385tyrjmg1k/ovation-kernel-cm10.1.3_v16.zip

kernel source:

http://www.mediafire.com/download/jt7k6y11enxt8en/android_kernel_bn_omap-cm-10.1_v9.tar.gz
[Nook HD, HD+ Android Development] swaaye:
The reason for my ZRAM warning post was that I had gotten stuck in a bootloop from the ZRAM menu and had to wipe data. :) I too looked around for the settings file but couldn't find it. I discovered that your older kernels without the ZRAM capability would boot but that didn't get me access to those ZRAM settings to fix the bootloop on the newer kernel.
[Nook HD, HD+ Android Development] Jon Lee:
The only difference between this version and v16 is that this one has gammatable enabled in dss/dispc.

Flashable kernel:

http://www.mediafire.com/download/w9apci79q3rs0i4/ovation-kernel-cm10.1.3_v17.zip

Kernel source:

http://www.mediafire.com/download/oo5y8knkhm7zbd8/android_kernel_bn_omap-cm-10.1_v10.tar.gz

I'm curious if anyone thinks they can see a difference in the screen, prefer one kernel screen appearance over the other? It could be my imagination but I *think* this one may appear sharper/brighter. It would be interesting to do a side by side screen comparison with two nooks, one running v16 and one running v17 (this one).
[Nook HD, HD+ Android Development] Maromi:
F2FS requires you to flash a F2FS recovery and rom. at least you have a sd card to put stuff on.

start here for F2FS https://github.com/KFire-Android/kernel_omap_otter-common/commits/f2fs?page=14

the config is page 2
[Nook HD, HD+ Android Development] Jon Lee:
I looked into f2fs to some detail. At least for TWRP,

So as long as it's already partitioned to f2fs, then you would be good to go there.

The kernel ramdisk would have to modified/repacked so that the lines in init.ovation.rc could be changed from

mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/cache /cache wait noatime nosuid nodev errors=panic
mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/userdata /data wait noatime nosuid nodev errors=panic

either to auto or f2fs, instead of ext4.

Other than that you would need a kernel that supports f2fs and the mkf2fs binary.

If I were to do it, I would be lazy and not write any recovery scripts to format. I would actually just let the user do it themselves from a terminal.

(wouldn't be that difficult).

My problem was with actually incorporating f2fs into the kernel. Plus, I wasn't happy with some of the changes to fs/sync.c...

Very nice benchmark BTW.
[Nook HD, HD+ Android Development] Soul0Reaper:
I'm curious, is there a reason you guys aren't developing anything for cm11?
[Nook HD, HD+ Android Development] PMikeP:
That might've been me.

I'm sorry that I don't know enough to help you out here. I did see something in the CM 11 change log about f2fs a few weeks ago.
[Nook HD, HD+ Android Development] Jon Lee:
This one has zram working with zcache and zsmalloc.

<6>[ 2.879394] zram: Loading Crypto API features
<6>[ 2.879394] zram: using lzo compressor
<6>[ 2.879394] zram: num_devices not specified. Using default: 1
<6>[ 2.879547] zram: Creating 1 devices ...
<6>[ 2.880310] zcache: using lzo compressor
<6>[ 2.880310] zcache: cleancache enabled using kernel transcendent memory and compression buddies
<6>[ 2.880828] zcache: frontswap enabled using kernel transcendent memory and zsmalloc

Flashable kernel:

http://www.mediafire.com/download/85cm9hyow80np92/ovation-kernel-cm10.1.3_v18.zip

Kernel source:

http://www.mediafire.com/download/iew6vzm6d0h25dv/android_kernel_bn_omap-cm-10.1_v11.tar.gz

Edit:

I compiled a new pvr to match this kernel which maybe seems to fix an occasional ion_tiler memory allocation error I was seeing (let's hope anyway). I'm using this as an excuse to try a new package format that should be able to be flashed over any cm10.1.3 system. It has some various tweaks and enhancements built in... including the zram script, the newer bluetooth firmware, etc.

It's named pvr_update, but it's really a complete kernel with modules and tweaks...

http://www.mediafire.com/download/s7pf25jnj96fvl3/pvr_update_v18.zip
[Nook HD, HD+ Android Development] Jon Lee:
No one said anything but that last pvr_update.zip is broken. It needed a few lines in updater.script.

I'll post a new one in a day or two, with a new kernel, pvr, and f2fs enabled.

Thanks to Maromi for sharing a link to f2fs source that was easy to implement. Took me no time at all using that source.. and thanks to whoever spent all that time porting it for otter originally.

root@android:/ # cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev tmpfs
nodev binfmt_misc
nodev debugfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev devpts
ext3
ext2
ext4
nodev ramfs
vfat
msdos
nodev fuse
fuseblk
nodev fusectl
f2fs
root@android:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /storage tmpfs rw,relatime,mode=050,gid=1028 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/fuse tmpfs rw,relatime,mode=775,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/system /system ext4 ro,relatime,errors=panic,barrier=1,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,data=writeback 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/cache /cache f2fs rw,nosuid,nodev,noatime,nodiratime,background_gc=off,discard,user_xattr,inline_xattr,active_logs=2 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/rom /rom vfat rw,noatime,nodiratime,uid=1000,gid=1000,fmask=0117,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/bootdata /bootdata vfat rw,noatime,nodiratime,uid=1000,gid=1000,fmask=0117,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
root@android:/ # fstrim -v /data
/data: 25961967616 bytes was trimmed
root@android:/ # fstrim -v /cache
fstrim: FITRIM: Not a typewriter
1|root@android:/ #

Once I gather my sources up and make the necessary packages, I'll post instructions on how to go back and forth from ext4 and f2fs. I've done it a few times, it's not difficult. I haven't been brave enough to convert /data to f2fs yet, although it should work also. I'm still in early testing stage... Notice fstrim is not needed for f2fs :)
[Nook HD, HD+ Android Development] PMikeP:
Cool! We've got to convinced you to switch to CM 11 now. The latest nightlies (since about 6/15) have been pretty good and stable. They're up to 4.4.4.
[Nook HD, HD+ Android Development] Jon Lee:
Well, as promised, here's a F2FS enabled kernel.

Kernel Source:

http://www.mediafire.com/download/kso902b9otk8fmn/android_kernel_bn_omap-cm-10.1_v12.tar.gz

Flashable Kernel:

http://www.mediafire.com/download/1yewd7g16yyamjv/ovation-kernel-cm10.1.3_v19.zip

I'm hesitant about actually providing the flashable kernel. I consider it highly experimental and potentially dangerous.

EXT4 works well for all intents and purposes. Don't play with F2FS unless you're a developer and you have some experience recovering your tablet if/when you find yourself in a tight spot.

For now, I consider having TWRP on internal emmc a required prerequisite before experimenting with F2FS. The reason being, TWRP has a command terminal. In the old days, one could simply ADB into recovery. I'm not sure if ADB works with CWM, but it doesn't with the TWRP I have.

After flashing the kernel, boot into the system. To convert to F2FS, make sure you have no programs running, go into terminal emulator, type su and then f2fs_cache. The tablet should immediately go down for a hard reboot. Cross your fingers and hope for the best.

If you find yourself in a boot loop, go into recovery and issue a

mke2fs -t ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/cache

(I'm sure there's tune2fs command that should be used also to turn off filesystem check...)

(it's probably best to wipe /data as well)

and try again. This f2fs_cache script does a dirty unmount and isn't really the best way of doing things. It would be best if we had a F2FS enabled recovery. Maybe someone else would like to tackle that project???

Don't even attempt to try f2fs_data. Just don't do it. It won't work without a F2FS recovery.

Speaking of, if you ever find yourself in a permanent recovery loop, read this page:

http://xdaforums.com/showthread.php?t=1444630

(The second dd command worked for me).

Other than that, once converted, F2FS works well for me.

Right now I'm more interested in playing with ion memory allocation and our ducati blob. This seems to be the one remaining crippling item of our nooks.

I actually have a whole conversation worth of material on the subject
[Nook HD, HD+ Android Development] krsboimo0o0o:
Is this ROM compatible with either the tablet ui patch in auto patcher or phab7 xposed module?