TRIM: FAQ, Discussion, Risks ... - Nook HD, HD+ Android Development

As the thread for CM10.2 is more or less filled with messages around TRIM, I would separate this discussion.
I try to summarize a few points. With your help you or me can update this and also new user might find help/conclusion.
With Android 4.3 a new mechanism is introduced to remove the LAG of devices with flash memory.
Unfortunately this new feature bricks some devices.
In a first action the feature was removed. If you still run 8/15 nightly or earlier if Defys 10.2 implementation you should better update to newer one or downgrade to 10.1 do avoid this.
It seems that not all devices are affected. As far as I know most of the Samsung chips are suffered.
You can find the version with this lines:
$ su
# cd /sys/class/block/mmcblk0/device
# cat name
MAG2GA
# cat manfid
0x000015
# cut -b 19,20 cid
05 // this is the firmware revision in hex
# cat date
05/2012
> A list is here to add. Someone can help? <
An new saver trim mechanism was established, but it is only available in an extra kernel.
Until know it is not 100% clear, whether this new implementation solves the problems.
For general usage it is imho currently not recommended to use this feature if your device hosts this defective chip.
Some background infos posted by @huntz, just copied to this new Thread:
The Trim command allows the operating system to inform the flash memory which blocks of data are no longer considered in use and can be wiped internally.
Low-level operation of SSDs (and flash memory in general, like eMMC) differs significantly from hard drives, the typical way in which operating systems handle operations like deletes and formats resulted in unanticipated progressive performance degradation of write operations. This behavior, on operative systems like Android, is known as LAG.
This performance degradation is the reason why any device using flash memory (not only Android devices) is more responsive when you are starting using it (because is brand new).
On SSD disks, nowadays, the disk firmware is taking care of the trim tasks. On more simple storage memories like eMMC (eMMC is a MultiMediaCard, aka MMC, plus a controller) using a software approach is the way, like the one introduced with Android 4.3. The alternative would be to use memory modules more advanced, like recent SSD (but which have a higher production cost).
Here a few more links:
http://forum.xda-developers.com/show...postcount=1150
http://en.wikipedia.org/wiki/Trim_(computing)
http://wiki.cyanogenmod.org/w/EMMC_Bugs
Mini- Howto manually run the TRIM command (Use At Your Own Risk) (courtesy to huntz)
After the update and a reboot, on Terminal:
su
fstrim -v /system
fstrim -v /data
fstrim -v /cache
Click to expand...
Click to collapse
and also
vdc fstrim dotrim
Click to expand...
Click to collapse

Before the functionality was removed in the beta, I was able to run lag fix and did successfully without my device bricking.
Does this mean I'm one of the lucky few? Or is the brick not immediate? Does the trim function need to run a couple times before it bricks and I just didn't run it enough times to see that happen?
Thank you for making this thread. I've been looking for updates on this topic.
Edit: Also forgot to add, I ran the commands you listed and my firmware appears to be the same except for two details. My version number is '06' and the date is '11/2012'. Hope this helps.

To my knowledge, it's the MAG2GA chip and firmware 05 combination that is most susceptible to bricking. The 06 firmware is patched, and theoretically safe. Verygreen's patched kernel does a similar thing, only by software instead of firmware.
Sent from my SAMSUNG-SGH-I717 using Tapatalk 2

I've got version 06 mag2ga cat date of 10/2012.
Hopefully that information posted about it being just the 05 version of the mag2ga chip that was faulty is correct! Can anyone else confirm that?
The other thread (the impossibly long & diverse cm10.2 thread) also mentions a patched trim kernel.
Is this kernel patched the way that the kernels were patched for the Nexus 7?
If so I'm prepared to do some testing letting trim run automatically on my hd+ using cm10.2.
Reason being the community needs to get some testing done & whilst it's not as easy to change the Nook need warranty as it is in the us, in the UK we do have the warranty & I shouldn't be without it for more than a couple of weeks should the worst happen.
If someone can confirm that ( @verygreen perhaps) & point me to it I'll give it a go.
Part of the reason I got this device was to run custom roms & play with it, whilst I can't write code or compile I can follow instructions to the letter & may as well do my bit, especially as my device is under warranty for almost a full 12 months.

I'm not certain which version of trim to run. I have been using the first release by Verygreen with Carbon Rom.
On the HD, the later versions 2 and 3 will not start and I have to flash the rom again to fix.
With the HD+, I"ve been using the initial release without problem and I'm reluctant to try later releases. If the first release is working, is there any benefit of using later releases? If it matters, I have the 6 update of the bad chip.

huntz said:
You have to follow this tutorial:
Code:
$ su
# cd /sys/class/block/mmcblk0/device
# cat name
MAG2GA
# cat manfid
0x000015
# cut -b 19,20 cid
05 // this is the firmware revision in hex
# cat date
05/2012
This is the same info from the official CM WIKI: http://wiki.cyanogenmod.org/w/EMMC_Bugs#How_do_I_check_my_device.27s_eMMC_details.3F
Post what info are you getting... Maybe you don't have the MAG2GA chip...
Click to expand...
Click to collapse
Does this do more or less what eMMC Brickbug Check (on Google play) does?

wellersl said:
Does this do more or less what eMMC Brickbug Check (on Google play) does?
Click to expand...
Click to collapse
Yes

wellersl said:
Does this do more or less what eMMC Brickbug Check (on Google play) does?
Click to expand...
Click to collapse
Well, from the application "eMMC Brickbug Check" you can read the info from your eMMC chip. But the check about the "Brick Bug" is not looking for the MAG2GA bug.
You can see for yourself reading the links from the Google Play page https://play.google.com/store/apps/details?id=net.vinagre.android.emmc_check [...] no mention of MAG2GA chip or Nook HD+.

huntz said:
Well, from the application "eMMC Brickbug Check" you can read the info from your eMMC chip. But the check about the "Brick Bug" is not looking for the MAG2GA bug.
You can see for yourself reading the links from the Google Play page https://play.google.com/store/apps/details?id=net.vinagre.android.emmc_check [...] no mention of MAG2GA chip or Nook HD+.
Click to expand...
Click to collapse
True that. Just a tiny bit here relevant to the HD+:
MAG2GA TRIM bug
Status: possible fix available? (unverified)
Fix type: kernel workaround avoiding buggy functionality
Patch: https://github.com/CyanogenMod/andr...mmit/3de09ec8e73b7352c37f50a40d696f20be454b8b
Some Nook HD+s have been reportedly bricking due to a corruption bug in Samsung's EMMC firmware (model MAG2GA) related to TRIM.
The 2012 Nexus 7 has the same EMMC model as the Nook HD+s (as does the Epic 4G). The Nook HD+ firmware (v06 dated 08/2012) is newer than the 2012 Nexus 7 firmware (v05 05/2012), and yet the Nexus 7s did not seem to have the problem.
A kernel patch in the 2012 Nexus 7 seems to have addressed the issue. This patch may need to be ported to other devices which have the same firmware and use TRIM (default in AOSP 4.3/CyanogenMod 10.2).

So can someone confirm is there is a trim kernel with that ported patch available for the Nook hd+?
Is this the one that was hidden in spoiler tags in the cm10.2 thread? (looked back through it for what feels like the millionth time & can't find it!)

FoxForceFive said:
So can someone confirm is there is a trim kernel with that ported patch available for the Nook hd+?
Is this the one that was hidden in spoiler tags in the cm10.2 thread? (looked back through it for what feels like the millionth time & can't find it!)
Click to expand...
Click to collapse
Yes, the kernel with patch is the one hidden into the spoiler. I'm using it with M1.
cm-10.2-20131102-SNAPSHOT-M1-ovation.zip - md5: 0d1159bec2da3c082b9b859d59643f42
gapps-jb-20130813-signed.zip - md5: 1f51b5cc6370c1f45dc951109b6ce6ed
trimfix-kernel-ovation-2.zip - md5: becad8723b2a7bb5de5504a4c5924143
I have collected, to be clear, all files used with MD5 (so you cannot pick a wrong file...)
For Nook HD+ - http://nook.rootshell.ru/hd/trimfix-kernel-ovation-2.zip

Cool, I'll put that on this weekend & hopefully all will be well!
Thanks so much for gathering it all together like that, ace work.
---------- Post added at 07:25 PM ---------- Previous post was at 07:21 PM ----------
I assume as if it does brick there will be zero emmc access (or zero emmc actually!) there is little point bothering with any debugging/logging software as it will be useless?
If there were a logging script installed into sd running on that solely I suppose that could work. If such a thing exists that is.
I am perfectly happy to leave it running for a few weeks without being able to use it if there's something I can run off sd that will provide valuable information should it be needed.

FoxForceFive said:
Cool, I'll put that on this weekend & hopefully all will be well!
Thanks so much for gathering it all together like that, ace work.
---------- Post added at 07:25 PM ---------- Previous post was at 07:21 PM ----------
I assume as if it does brick there will be zero emmc access (or zero emmc actually!) there is little point bothering with any debugging/logging software as it will be useless?
If there were a logging script installed into sd running on that solely I suppose that could work. If such a thing exists that is.
I am perfectly happy to leave it running for a few weeks without being able to use it if there's something I can run off sd that will provide valuable information should it be needed.
Click to expand...
Click to collapse
This bug is known as super-brick bug. If you experience it, the Nook will stop working rebooting itself and not starting anymore (you can recover the device using a custom rom using only the SD slot). No script to debug needed...
I'm switching between CM10.1 and CM10.2 doing trim when I'm on CM10.2 (I'm not always with CM10.2 because I have problems with WiFi).
Good luck and remember to note firmware and date of your chip so if you experience some problems we can try to investigate...
Sent from my BN NookHD+ using Tapatalk 4

Yeah, I understood that much (did some reading when I find I had a bad chip in my sgs2 ages ago).
I was hoping there was a logging script that ran off sd so it'd provide some helpful information about possible fixes if I did brick it rather than a way to fix it, as I'll just swap it out under warranty should it happen.

I'm going to take the plunge and test out the patched TRIM kernel. I have the MAG2GA chip just like everyone else, but mine has the 06 revision so let's see what happens. It's worth it to me as I only paid $100 for it and can't stand any lag. Thanks for starting this thread OP. It will help in determining exactly what units are getting bricked.
Just to add, if we want to make the original post include all info, I also think it should be mentioned how to verify TRIM is enabled on our units (like huntz mentioned here: http://forum.xda-developers.com/showpost.php?p=47118462&postcount=1068)

Ok, I'm going to install CM10.2 M1 & the Trim patched kernel.
How is best to do this coming from CM10.1 (emmc install)?
I assume placing the trim kernel, cm10,2 & correct gapps on the SD card, then I install them in the same order?
I wanted to double check simply cos I'm unsure whether it's safer to flash the kernel before the cm installation or after.

Flash CM, then Gapps and kernel.
Sent from my BN NookHD+ using Tapatalk 2

I have the dreaded MAG2GA chip bute the 0x06 revision, I guess it's (relatively) safe to use the trim-enable kernel?

Did I do this right?

Tschumi said:
I have the dreaded MAG2GA chip bute the 0x06 revision, I guess it's (relatively) safe to use the trim-enable kernel?
Click to expand...
Click to collapse
Me to, date is 11/2012, bought in July 2013. But still not test this Trim feature. I am outside US an no chance to send device back for repair.

Related

[DEV] Lenovo Ideapad A1 Kernel Development/Testing

Warning/disclaimer: This thread is intended for those who already know how to compile a kernel and have a working knowledge of Linux and its derivatives. There shouldn't be a great deal of risk involved, but you are responsible for what happens if you decide to follow these instructions.
Polite request: Please don't post replies to this thread that aren't of a technical nature directly related to compiling, modifying, or testing the kernel.
Introduction:
It appears as if Lenovo have released a buildable and bootable kernel source. I've done some preliminary testing with it. However, it would be better if we could get lots of people building and running the kernel, so that we can spot any remaining problems. This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Kernel source:
Get it from the Github repository at: https://github.com/gmarkall/lenovo_a1_07_kernel
Toolchain:
The Makefile seems to suggest that Codesourcery 2010q1 has been used by Lenovo to compile the kernel. Get it from https://sourcery.mentor.com/sgpp/lite/arm/portal/release1293, and make sure that the arm-none-linux-gnueabi-* binaries are on your path.
Building the source:
You may wish to edit the Makefile around line 192 to set CROSS_COMPILE=arm-none-linux-gnueabi- instead of the hardcoded path that is the default.
Then, to build the kernel:
Code:
make distclean
make a1_07_defconfig
make uImage
Booting the kernel
Normally, Android devices have two boot images that consist of a kernel and a ramdisk. One boot image is for the recovery, and the other is for the Android system. This makes it safe to flash a new boot image containing an untested kernel for the Android system, since the recovery can always boot up using the other boot image. However, the A1, by some bad design decision, only has one kernel - the bootloader always loads the same kernel, and just loads a different ramdisk depending whether it is to boot into recovery or system. As a result, it is not safe to flash a kernel to your A1 unless it's already been tested, since a bad kernel will make it impossible to boot from the internal memory, and you'll need a bootable SD card.
The solution to this problem is to make a bootable SD card for loading the kernel and ramdisk from. A bootable SD card consists of two partitions:
* A small bootable VFAT partition, that holds the X-Loader (MLO), U-Boot (u-boot.bin) and the kernel (uImage).
* An ext2 partition that holds the root filesystem.
In order to create a bootable SD card, use the omap3-mkcard.sh script that is attached below. To invoke it for making /dev/mmcblk0 a bootable SD card:
Code:
sudo omap3-mkcard.sh /dev/mmcblk0
You may need to hack the script if your SD card device isn't a /dev/mmcblk* one, since the script searches for partitions denoted "p1" and "p2" - this may need changing to just "1" and "2" respectively (thanks Xbdesign and Brancaleone for this).
This will create the necessary partitions, set the bootable flag, and format them. You will then need to mount the first partition (e.g. /dev/mmcblk0p1), and copy MLO and u-boot.bin to it (also linked below). Then, copy the uImage that you built from your kernel tree, which will be located in /arch/arm/boot. You can now unmount this partition.
Next, mount the second partition (e.g. /dev/mmcblk0p2). This will need to contain the same set of files that the initial ramdisk contains. There are two different ramdisks that you might want to use - one is from the Cyanogenmod 7 build, and the other one is from the stock system. Download links for these are also below. To extract the ramdisk, copy it onto the SD card second partition, then run the following commands (assuming the ramdisk is called ramdisk.ub):
Code:
dd if=ramdisk.ub of=ramdisk.img.gz bs=64 skip=1 # Strip off the U-Boot header
gunzip ramdisk.img.gz # Unzip
sudo cpio -idmv < ramdisk.img # Extract the cpio archive
Then, unmount the second partition of the SD card.
You should now be able to remove the SD card and insert it into your A1. Power down the A1 and power up again, and it should hopefully boot from the SD card and load your kernel. If it's booted from the SD card and loaded your kernel, you should be able to see that it was compiled on your host by looking in Settings -> About Phone -> Kernel Version.
Troubleshooting:
This is not a comprehensive guide, just a few pointers to where a problem might be - please post replies to the thread to get troubleshooting suggestions.
System boots up, but is not running my kernel - it didn't boot from the SD card. If the A1 is plugged into the charger/USB, you sometimes need to reboot multiple times before it boots off the SD card (I think it doesn't always turn off fully when the charger is plugged in).
The static Lenovo logo flashes up over and over again - it's booted from the SD card, but didn't manage to load your kernel
The static Lenovo logo comes up and stays there/goes to a black screen - it's probably loaded your kernel and mounted the root file system, but failed to mount /system. Try running adb shell to see what happens. If you get something like
Code:
/system/bin/sh: no such file or directory
then your kernel is running but /system isn't mounted.
IRC Channel
Join #ideapad-a1 on irc.freenode.net to discuss the kernel and other A1 development-related topics!
Download Links:
MLO
u-boot.bin
omap3-mkcard.sh
Ramdisk for Cyanogenmod 7
Ramdisk for ROW 2643 stock release
I've added the two ramdisks that I suspect will be most common - if you need another ramdisk, you'll have to extract it from an OTA.
Also, I compiled a tun.ko - www.doc.ic.ac.uk/~grm08/ideapad/tun.ko
Here's a cifs.ko - http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
EDIT: AutobahnA1 and infraredevans have confirmed that tun.ko works on ROW_2643.
EDIT 2/3: Please test out cifs.ko! (It doesn't work - it needs slow-work.ko. Will get that done when I can. Thanks to Ilikecokethree on the Lenovo forums for pointing that one out).
你懂中文吗,大神!
我是中国人 关注你的帖子很久了,我不懂英文,用翻译软件看的大概,我们这里很多人支持你,都在用你的rom 很棒!比联想官方的好多了,谢谢!
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong? Thank you very much.
PS: I'm a chinese too, and my English is not good either
gmarkall said:
This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Click to expand...
Click to collapse
Please do not forget to try the WiFi-based geolocation, which is also missing!
I wish I had the knowledge to work on it myself but I am far from taking over such tasks...do not have the slightest idea about how these things work.
Good luck and please keep us informed!
geoponer said:
Please do not forget to try the WiFi-based geolocation, which is also missing!
Click to expand...
Click to collapse
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Also, it's working in CM7.
hohoxu_hao115 said:
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong?
Click to expand...
Click to collapse
Sounds like it's booting from eMMC instead.
Can you post the partition table of the SD card as listed by fdisk, and also a directory listing of each of the two partitions? I ask this to confirm what's happened - seems like you're the first person to follow these instructions, and it's quite possible I made a mistake somewhere.
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
@Graham: I plan to install the CM7 that you have been working on (with the feedback from other users - I keep an eye on that thread!) but since I use my A1 for professional purposes as well, I would like to make sure that everything is working fine before moving to CM7. Apologies for not being able to contribute to the beta testing of CM7 but I am really looking forward to seeing a version based on the source code provided by Lenovo, which I think will lead to a more stable version of your CM7. I cannot thank you enough for taking the time to work on this, really!
geoponer said:
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
Click to expand...
Click to collapse
I think that whether it works in CM7 or not, it almost certainly isn't a kernel issue. I'll test it by signing up for Foursquare and give it a try out on CM7 to see if it works later on. Will post my findings in the CM7 thread.
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
dusko_m said:
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
Click to expand...
Click to collapse
I do want to implement something that's pretty much as you describe. My biggest motivation is that it's currently not safe to flash a kernel since you can break both system and recovery that way in one go - I really want to make the boot process more robust.
gmarkall said:
Also, I compiled a tun.ko - tun.ko
I haven't tested it yet - is anyone able to try it please?
Click to expand...
Click to collapse
The module loaded without a problem on my 2643_ROW Kernel. Installed "Rooted AnyConnect" from the "Play Place". Now I can connect to my company VPN.
gmarkall: YOU ROCK! THANK YOU!!!
tun.ko
Graham
The tun.ko module works perfectly with openvpn on 2643_ROW.
I can now access my Amahi home server,awsome.
Thanks a lot you are doing a great job.
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Cheers
Infraredevans said:
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Click to expand...
Click to collapse
I'll give it a whirl... give me a few minutes.
gmarkall said:
I'll give it a whirl... give me a few minutes.
Click to expand...
Click to collapse
Here it is: http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
To compile it I had to copy md5.h from another kernel source to fs/cifs in the kernel tree. I also had to edit init/Kconfig so that CONFIG_SLOW_WORK defaulted to yes. I configured the module with the options:
Support Legacy LANMAN servers which use weaker security
CIFS Extended attributes
CIFS POSIX attributes
and without statistics, debugging, or experimental features. Let me know if this is a suitable config - I could always tweak it and build another one.
arm-2010q1-202-arm-none-linux-gnueabi.bin
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
xbdesign said:
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
Click to expand...
Click to collapse
I did - I didn't have any problems, but my random guess about how to solve it could be to install ia32-libs. If installing that doesn't solve it, can you post a bit more detail about the problem?
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
xbdesign said:
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
Click to expand...
Click to collapse
Do you need that to run the installer? I just downloaded the tar version instead and extracted it. I saw there was an installer as well, but I thought it would be more hassle than using the tarball so I just ignored it.

[Kernel][ROM][Ovation][CM 10.1.3][emmc] "Yellow kernel"

I've spent some time trying to tweak and tune a kernel for the Nook HD+ ovation device.
This is the result so far:
http://www.mediafire.com/download/wwjq7jp1ppbohqb/cm-10.1.3-ovation_OC6.zip
It's packaged as a complete rom to avoid kernel module difficulties. The rom is completely stock minus the boot animation, kernel and kernel modules. Thanks to everyone who has made this possible.
Both the kernel and PVR module have been compiled with linaro.
The kernel has numerous performance and stability enhancements over any other kernel to date.
Great Work. Thank you very much!
Hi Jon, I upgraded to OC6 but it doesn't works so good like OC4? ( i did a clean install) i added last_kmsg may you can find why my device start rebooting again :<
wahidx said:
Hi Jon, I upgraded to OC6 but it doesn't works so good like OC4? ( i did a clean install) i added last_kmsg may you can find why my device start rebooting again :<
Click to expand...
Click to collapse
I appreciate the last_kmsg. I apologize for using everyone as beta testers, but this demonstrates why it is a good idea- because I have been running OC5 for a few days without a single hiccup at all. I am actually surprised OC4 did so well for you. OC4 was also the first version to sport a new pvr module.
One thing I had been noticing before being able to compile my own pvr was that I could have one kernel play well with the stock pvr, and I could have a kernel right after that not play well with the pvr at all. This was my major motivation to be able to compile my own pvr so that it could match kernel space every time.
Ok, with that said, I compiled the pvr against OC4, and didn't bother updating it against any subsequent kernels. I probably should have known better, but it was working well enough for me.
Your error looks suspiciously like a missmatch between the pvr and kernel space. So if you want to try this update:
http://www.mediafire.com/download/qyaqt9mukrqbdvj/cm-10.1.3-ovation_OC7.zip
and let me know if it works any better. I made sure to compile the pvr to specifically match the kernel.
Also, when I compiled the pvr before, I used PLATFORM_VERSION=4.1. I used this as an excuse to try
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- BUILD=release TARGET_SGX=544sc PLATFORM_VERSION=4.2.2
I don't know if it makes a difference or not.
Another thing I noticed you have slightly different hardware than I do. You have elpida ram versus samsung which is what I have.
I modified samsung ram timings to be slightly faster, but the other ram types were left at stock speeds. I may eventually try to clock the elpida ram the same as I have done with samsung, that may or may not make a difference. This may affect pvr performance as well. (It seems your pvr was a little slow bringing up power a few times). Then again, it could be my pvr source (although it works flawless for me, it may be hardware differences- I dunno.
thx for fast replay man,
i will try this release and give you feedbacks.
i have the bad feeling that something is wrong with my hardware. can be the only explanation, why my device reboot so often with CM10.2, CM11 and your OC6 release :/
//EDIT
actually i had just 1 reboot after some hour OC6 using, i will try OC6 for the next 2-3 days, maybe it was just a bad accident. after that i will try your OC7
regards
//EDIT #2
OC6 Test
after 2 days more, just 2 freez-->reboots (check last_kmsg) but still better than CM 10.2 and 11 on my device
Jon Lee said:
I've spent some time trying to tweak and tune a kernel for the Nook HD+ ovation device.
This is the result so far:
http://www.mediafire.com/download/wwjq7jp1ppbohqb/cm-10.1.3-ovation_OC6.zip
<snip>
The kernel has numerous performance and stability enhancements over any other kernel to date.
Click to expand...
Click to collapse
Hi Jon:
Hey, since we're asking for the moon, and since you're making THE oc kernel, any chance you can implement f2fs? I've got a Gal Tab 2 and an xda developer over there has a page about what he's done to get f2fs to work. Mostly it seems to require a .101 kernel. And he was kind to update TWRP so it would support f2fs. (I think to keep it from automatically formatting in ext4.) And he even wrote some zips to format /data, /system and /cache to f2fs.
My Tab 2 doesn't benchmark any faster but it sure is faster with f2fs. I image the HD+ would be faster too.
I'm new to flashing the Nook HD+. I was previously using the SDcard booting option for CM 10.1, but I would really like to get Nook off of this completely. Where do I start? I downloaded the ROM, and I have a boot IMG from another ROM on an SD card that takes me to recovery. Where do I put this ROM and how do I overwrite the actual Nook ROM?
install fails using verygreens internal recovery. is there a trick to installing this?
So I was able to flash the ROM, but I cannot upgrade. Everytime it tries to upgrade to 10.2 it reboots, I see the Nook logo, and then I get a Nook error screen. Does that mean I don't have the right CWM installed? If that's the case, how do I install the correct CWM?
SynGamer said:
So I was able to flash the ROM, but I cannot upgrade. Everytime it tries to upgrade to 10.2 it reboots, I see the Nook logo, and then I get a Nook error screen. Does that mean I don't have the right CWM installed? If that's the case, how do I install the correct CWM?
Click to expand...
Click to collapse
Yes, that means you still have stock recovery installed. You need to go to my HD/HD+ CWM thread linked in my signature and download and install the 6036 CWM from item 5 there.
Edit: but you know if you upgrade to CM10.2 you lose this kernel, right?
Sent from my BN NookHD+ using XDA Premium HD app
---------- Post added at 04:42 PM ---------- Previous post was at 04:41 PM ----------
smatticus said:
install fails using verygreens internal recovery. is there a trick to installing this?
Click to expand...
Click to collapse
It depends on which verygreen internal recovery you are using. You need to have version 6036 or older to flash it. You can get one per my previous post.
Sent from my BN NookHD+ using XDA Premium HD app
Great Work! I used OC7, it now worked on 1620Mhz and I feel faster. Is it possible to run on some higher frequency like 1800Mhz?
i6941 said:
Great Work! I used OC7, it now worked on 1620Mhz and I feel faster. Is it possible to run on some higher frequency like 1800Mhz?
Click to expand...
Click to collapse
Does this work for CM11?
andtron said:
Does this work for CM11?
Click to expand...
Click to collapse
I think the answer is no, when you flash cm11 the OC kernel will be overwrite. But I didn't try this.
As the thread title indicates, this kernel is only for 10.1.3.
it says there is a new update from the option -- about menu...should I?
Jon Lee said:
http://www.mediafire.com/download/qyaqt9mukrqbdvj/cm-10.1.3-ovation_OC7.zip
Click to expand...
Click to collapse
I couldn't find a tabletUI patch to match the final cm10.1.3 stable so here's one for anyone else downgrading like me.
Here's another experimental kernel update.
http://www.mediafire.com/download/1lkesmn6si6hd1e/ovation-kernel-cm10.1.3_v5.zip
I'm using it on OC7 pvr without issue (?).
1) reduced elpida and hynix ram timings.
2) updated vivante gc320 gcx 2d composition drivers to gitorious.org/gcx staging/alexei-dev. These are significantly different from original. (FWIW Staging/master branch threw memory map bverror 2 logs, but otherwise worked fine).
3) reduced dsp carveout memory. Increased system memory.
If needed, here is just the plain kernel for OC7, should anyone wish to revert back to that for any reason. (So as to not have to flash the entire ROM).
http://www.mediafire.com/download/z4r59n8dasxgz93/ovation-kernel-cm10.1.3_v4.zip
Kernel source for OC7
http://www.mediafire.com/download/6rngvee6x471cc3/android_kernel_bn_omap-cm-10.1_v3.tar.gz
So oc7 has been very unstable for me. I started with a completely clean slate, but it's frequently rebooting and not waking up from sleep. I may remember having these same problems when I was regularly using cm10.1 last year.
I've gone back to cm10.2.1. You should consider developing your kernel for that one.
Ya'know, I make these for me first and foremost. They reflect what I'm working on, trying to fix or improve the performance of my device.
Each one is different, some have worked better than others, but I notice an overall improvement from the original kernel. It is substantially different than any other nook kernel out there and works the best for me.
Here's the last. I think it works well. Made some additional changes to mmc/sdio to try and improve stability with wl12xx.
Source (which includes the vivante driver change from before):
http://www.mediafire.com/download/v4ihnr46eo9ap4d/android_kernel_bn_omap-cm-10.1_v4.tar.gz
Flashable kernel
http://www.mediafire.com/download/c9bsziswrf7y0e4/ovation-kernel-cm10.1.3_v6.zip
I like 10.3.1 but it has two downsides. 1) No automatic TRIM. 2) Unsafe manual TRIM because of Samsung MAG2GA EMMC bug.
Is it possible to implement the workaround used for 10.2.1 and later? Then manual TRIM by using console "fstrim" should be safe.
http://wiki.cyanogenmod.org/w/EMMC_Bugs
I assume the source for the 10.2.1 kernel would have the ported patch.

[ROM][CM/AOSP][JB/KK] sediROM for LG Optimus F3Q / D520

sediROM for LG Optimus F3Q - Custom ROM (codenames: fx3q, d520)
This is about building a custom ROM like Cyanogenmod or AOSP working on the LG Optimus F3Q.
Introduction
First of all: At the moment there is no CM or AOSP based ROM available for the F3Q. Not yet.
That said it means I try to port CM (or build pure AOSP) to the F3Q and this is this thread about.
Some words about me and what I do:
I do Android ROM development since June 2014 mainly doing things based on stock.
Before the F3Q I never had to do with porting CM or AOSP to a brand new (no not such "new" anymore) device before.
New means "no file device tree" etc available. So I dive into porting months ago and still learning every day new things here.
Porting is nothing you can learn in a week or so The main problem with porting is that there is not much you can read or
where you can get many help for. The guides out there are very generic and to be honest the best would be having a pro on your site
which guides you through all the problems which WILL occur when porting.
Before starting I never heard about "loki", doesn't know how TWRP gets compiled or created an Android kernel with or without CM
automatism. In the meantime I compiled a working TWRP version, having a kernel in place which allows to boot unsigned system
images and many more. The only "little" thing left is to get CM ready.. Nevertheless I have 2 things which helped me a lot over
the years: patience and "never-give-up".
The state:
If you ever tried to compile Android or CM by your own you know that you need a valid file device tree (in this case "device/lge/fx3q/")
which contains all the stuff which describes the hardware, the things to do, proprietary files you cannot compile because their sources
are kept by LG and so on. Building that from scratch is a pain in the a.. so you need to find another device whose hardware is as much
the same as yours. In this case this means LG Optimus F6 which has the same processor etc. The great thing is that there are people
out there who had build a working device tree for the F6 which means it should be possible to have the same for the F3Q!
The problem is that before I used the DT from hroark and fixed several build errors there and well now I use the very much more newer
one from dm47021 and this means: adapt everything again, fixing build errors again..
Even when there is such a valid base available from a device with same specs this does not means it would simply work when copying
it over.
I need to adapt nevertheless many things to get the sources at least compiled! and then the question is what works and what not.
This is where we are atm: Fixing compilation errors (fix 1 and you get 2 new) and then we will see..
For updates about the state scroll down to the "current state" topic.
Here what we achieved so far :
Root:
Saferoot: http://www.andromods.com/root-unlock/d520-one-click-rooted-tmobile-lg-optimus-f3q.html (Original: http://forum.xda-developers.com/showthread.php?t=2565758)
Recovery:
CWM (I cannot recommend that CWM version atm! Because it was build with not a full valid device tree and is missing features TWRP has included!): https://play.google.com/store/apps/details?id=com.pressy4pie.oudhs.manager
TWRP (highly recommended!): http://forum.xda-developers.com/showthread.php?t=2867339
Kernel:
sediKERNEL thread
ROM related:
AROMA installer for customized ROM installation
Stock based "hLe Storm ROM" by @joel.maxuel: [ROM][STOCK][JB 4.1.2] LG Optimus F3Q / D520
Guides & Discussions:
General talk: http://forum.xda-developers.com/showthread.php?t=2650840
Revert to STOCK again: http://forum.xda-developers.com/showpost.php?p=54667480&postcount=181
If you want to help let me know and I provide you the sources and whatever else needed.
Current state (as of 2015-04-30):
Spent time = about 244 hours... any "Thanks" click still HIGHLy motivating..
Done:
Lokifying (without that we were absolutely L-O-S-T!!! BIG thx @djrbliss) process is done automatically by my self created build-script (took me some time but was it worth)
Lokifying means: due to a hack by @djrbliss (click here and click at his THANKS button!!) we can trick the locked bootloader to boot whatever we want!
boot a modified compiled kernel with the stock ROM / or hLe stock ROM
custom 3.4.0 kernel with kexec(disabled atm), xattr, selinux support and much more based on the stock kernel sources (sediKERNEL thread)
the ability to boot unsigned ROM's provided by sediKERNEL
Fully (or mostly) working TWRP version where storages correctly mounted and backup/restore working fine (TWRP thread)
adapt hroark's device tree of the LG optimus F6 to the F3Q (superseeded by dm47021)
adapt DM47021 DT to F3Q and compiling CM KK systemimage/full otapackage (do not expect too much it simply means that I was able to fix all the thousands of compilation errors. which is GREAT but now the debuggin starts)
Rebasing EVERYTHING of the file device tree to the f6mft one by Dm47021. Reason: CM is now available for the F6 which is damn great because we use the same hardware in many cases. I currently rewriting everything from scratch, adding the correct proprietary files etc. Will take a while but hopefully then we get more in the right direction then before.
Build system:
Intel® Core™ i7-3632QM CPU @ 2.20GHz × 8 (Quadcore. Due Hyperthreading 8 threads/CPU's)
8 GB RAM
Ubuntu Server 14.04 - 64 bit, running in a highly optimized VM based on KVM
CM11 compilation time (full cleaned working directory)
real 56m47.417s - up to 80m
user 213m6.612s
sys 20m9.400s
Click to expand...
Click to collapse
Current progress:
Testing and debugging CM KK image
Building a custom kernel without stock initrd (Details on the process here: sediKERNEL thread)
To do:
must-have: Building a custom kernel without stock initrd
must-have: having a working device tree (depends on having an own initrd)
undecided: compiling AOSP JB
undecided: compiling CM JB
Stalled:
compiling CM11 kernel based on the F6 device tree (too many compilation failures)
compiling AOSP Jellybean including the LG sources works (but different issues with booting)
compiling AOSP KitKat including the LG sources fails (doesn't start at all because of several changed vars maybe. Didn't investigate that further cause I focus on kernel now)
compiling CM JellyBean fails with the adapted LG Optimus F6 device tree
MultiRom (discontinued as sediKERNEL can now do all I need):
Multirom TWRP = compiling OK but no screen shown?!
Multirom binary = compiling OK
Multirom trampoline = compiling OK if it works or not? Cannot test it until TWRP
Kexec Kernel = Porting to F3Q (hopefully) finished. compiling OK but it has problems with mounting the correct places (I think. Didnt investigate that further atm)
For testers: ALPHA/BETA testing download area
http://tinyurl.com/q7fwcf3
(password protected - PM me to get access)
For developers: my sources
My current device tree of the fx3q AOSP build can be found here: device_lge_fx3q_aosp (updated from time to time, PM me for an immediate commit)
My current device tree of the fx3q CM11 build can be found here: android_device_lge_fx3q_cm (updated from time to time, PM me for an immediate commit)
My build tools (useful tools I developed for me to speed up build/compile etc): buildtools (updated from time to time, PM me for an immediate commit)
.
XDA:DevDB Information
sediROM for LG Optimus F3Q / D520, ROM for the Android General
Contributors
xdajog, joel.maxuel
Source Code: https://github.com/xdajog/android_device_lge_fx3q_cm
ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.1.x
Based On: CyanogenMod
Version Information
Status: Testing
Created 2015-05-19
Last Updated 2015-05-20
Reserved
reserved 1
reserved 1
BUT IN THE MEANTIME YOU COULD USE THIS POST FOR ANOTHER THANKS CLICK
Questions & Answers
Frequently Asked Questions (FAQ)
(in no special order)
Question #1: Is CM or pure AOSP (or similar) for this device available now?
No. Not AFAIK. If you find some please tell me! But afaik I'm the only one working on that port so if you find someone or you want to help by yourself please send me a PM!!!
I currently trying to port CM to this device and as I'm doing that alone and the whole process is very complex this is nothing you can do in 2 weeks or so.
Question #2: When will be CM or pure AOSP or similar available?
When it is ready. Sorry but for this no timeline can be made. I will update the OP from time to time so come back often to check if there are any news.
Question #3: Why are you doing this?
Well .. the main reason is I want to have an absolutely fully localized (German) Android for my wife. Yes it's that simple. There are plenty of apps who can switch the language in many dialogs but all LG ones (like settings, power menu etc) are all still English.
The following may harm you but the F3Q is not a device I would buy for myself. I do not really like it's design, it has more weight and height than my current one (Samsung i927). Ok not all is that bad: What I really like is the physical keyboard which is much more better than from the i927..
Nevertheless I own a F3Q since a while because the community sponsored one to me which makes it possible for me to continue developing for this phone. Otherwise I had stopped that at the time where my wife used her F3Q productive.
The other reasons are:
There are problems here in Germany regarding the reception: 3G (or better) is not possible (but it should be from the point of technical specs).
Besides that the displayed information about the speed seems to be wrong in some cases but that is another story..
Last but not least the problem of overfilled storage makes me mad (well in fact makes my wife mad but well that makes me mad then). There is always to less even with tricks like moving apps etc.
So in short: I want to be able to fix problems who are annoying me/my wife.
Question #4: I have bought the phone and need to unlock it (service provider lock, network lock, ...) now. How to do that?
Well there are thousands of services out there who offers unlocking and no guarantees wherever you go.
Just 1 thing before you read on:
I'm not responsible if the mentioned site doesn't work for you! For me it had worked but there are no guarantees out there in the evil internet ocean...!
The following describes my personal experiences with those services only. No guarantees no responsibilities no whatever.
I have tested 2 of them:
The first one is a "free" service named www.unlockphone.me.
Free means first of all: WAIT. As an example my request have this as the waiting time:
1027 people are in queue in front of you. 2 weeks, 3days, 10hrs, 14min remaining until you will receive your CODE
The service itself is free but as I do not wanted to wait such long I donated to them 10$ to receive the code more quickly.
Result: Well I got a code but is was not working. I send them 4 mails - never received any answer. Bad luck. That is what I mentioned above. No guarantees. Well you could try it on your own - at least the free one without a donation - and see what happens for you. It's may worth the try.
.
The second one was fine. To be sure: I do not own the following service or get anything for pointing there but I have used them 2 times and at least the service provider lock could be unlocked both times successfully. The first time used they unlocked for $2 CAD (November 2014) and today (April 2015) they unlocked for $7,50 CAD.. Well it still seems to be a reasonable price (at least for me).
freemyblackberry.com
I filled in the following:
Brand = LG
Carrier/Country = USA / T-Mobile
Model = LG Optimus F3Q
When you have received your code (the one way or the other):
if you do not see the unlock screen already type in the following in the dialer: 2945#*520#
in the displayed menu choose the type of unlock you want to do (in my case it was service provider locked so I choosen that)
type in the received unlock code (for my case the freemyblackberry named it SPCK)
the phone may reboot now automatically
enjoy.
Question #5: What can I do to help?
I thought you would never ask! :victory:
The first one EVERYONE can do even when no programming skills is: Use the "Thanks" button. :good:
This is simple, easy and can be done very quickly. This will not speed up anything of course but it keeps me motivating because it shows me that you like what I do.
.
The second one EVERYONE can do is to participate in beta testing versions.
From time to time I release a new Kernel or TWRP version or some day a CM version. If you want to help you should do that by installing those beta versions (if one is available) and telling me about the good and bad of it.
This needs always a full backup and you may need to restore things afterwards but I'm here to assist you as far as I can.
.
The third one is not for everyone: helping to port.
That means going to the steps of CM porting guide and downloading the LGE sources and cloning my git repos. Get in contact with me before so you use an uptodate repo like the device tree etc.
This one would be the biggest effort but it is the most time consuming. At least for the full port.
If you "only" want to help partly like making TWRP better or helping with Kernel development it will be much much easier because those both are already fully working and you can start with fixing things instead of try&error!
That said Option 3 here is the only option if you really want to speed up the process!
.
The last one I can think of is donating, of course. I do not beg for money here - it is simply one of the available options.
One thing about this is important: a donation is much much more motivating then the mentioned "Thanks" click but you also will not speed up anything (Ok you would speed up things when the donation is about 10.000 € or more haha)!
But seriously: I do all that in my free time atm and that means I need to cut out time somewhere else from RL. This is not a problem for me and if you donate or not I will continue until I reached my personal goal.
That simply means that it will take much more time than doing it full time. The only other option would be developing in the normal work hours which means not earning money here for this time. So there needs to be a balance for if I would do that. That said there will be times where I can work on it and may times not for weeks. It depends.
Question #6: What is that "adb" thing?
adb stands for: Android Debug Bridge and can help a lot when it comes to work with your device. It is not for developers only but they use it a lot of course.
But a normal user can use this to exchange files without the need of mounting, backing up the device, reboot the device and use it as a very comfortable way of having a terminal emulator.
.
Normally adb itself is not available as a standalone application - it comes with the Android SDK which is very big and heavy if you want to use adb and/or fastboot (another great tool) only.
But we live in a great world with many people wanting to make things easy so here you go when you want/need only adb and fastboot:
download & install adb @lifehacker
Question #7: How can I find the LG Hidden Service Menu (STOCK)?
Normally you will not need this! But you may want to enable the USB DIAG mode if you're a developer or you simply want to make your phone unusable - so here we go:
As usual: Use on your own risk!
adb shell
su
am start -a android.intent.action.MAIN -n com.lge.hiddenmenu/com.lge.hiddenmenu.HiddenMenu
Click to expand...
Click to collapse
or simply by typing the following in the dialer:
3845#*520#
Click to expand...
Click to collapse
I know I am getting ahead of myself, but I know some devices have a /datadata partition (like the Samsung Infuse) when ported for a KitKat ROM.
When it comes time to design for KitKat, can this separate partition be eliminated? I know it is done for performance reasons, but with such limited userdata space as it is, another partition would come as a detriment. This has already proved a problem on the Infuse, and they have much more space to deal with (albeit ~600mb /datadata).
The alternative would be building Link2SD into the ROM, knowing that there will still be only a small collections of apps that can be installed.
Unfortunately, because of our limited userdata, we probably won't be able to develop past KitKat, at least end up with something usable. ART will prove to be too much of a pig for this device (storage wise).
Just my nickel's worth...
Bad news..
The Desire Z of my wife is completely broken now.
That means I cannot develop anymore..
- I ported and released the latest TWRP version to the F3Q
- I'm able to build AOSP JellyBean (not booting yet though),
- I compiled and released a custom AOSP Kernel (named sediKERNEL)
.... and a lot more..
I have everything I need to continue here in place...
I have the will and the ability to continue...
But no device anymore..
If someone has a F3Q to give away.. then I will continue but I'm not willing to buy a F3Q for developing only. So if you have an idea how we could continue let me know.
Otherwise that will end here for me unfortunately...
Hopefully not.
Yours
Xdajog.
Update:
Check out the following link if you want to help http://forum.xda-developers.com/showthread.php?t=2952919
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
sediROM for LG Optimus F3Q - Custom ROM (codenames: fx3q, d520)
Recovery:
CWM (I cannot recommend that CWM version atm! Because it was build with not a full valid device tree and is missing features TWRP has included!): https://play.google.com/store/apps/details?id=com.pressy4pie.oudhs.manager
TWRP (highly recommended!): http://forum.xda-developers.com/showthread.php?t=2867339
Done:
Lokifying succesful and is done automatically by my build-script (took me some time but was it worth)
I am able to boot a modified compiled kernel with the stock ROM
Custom JB kernel with kexec support based on the stock sources (stock initrd)
Custom JB kernel with xattr support based on the stock sources (stock initrd)
Custom JB kernel with selinux support based on the stock sources (stock initrd)
Fully (or mostly) working TWRP version where storages correctly mounted and backup/restore working fine (TWRP thread)
Current progress:
Building a custom kernel without stock initrd (Details on the process here: sediKERNEL thread)
To do:
Building a custom kernel without stock initrd
having a working device tree (depends on having an own initrd)
compiling AOSP JB (depends on device tree)
compiling CM JB (depends on device tree)
compiling CM KK (depends on device tree)
Stalled:
compiling CM11 kernel based on the F6 device tree (too many compilation failures)
compiling AOSP Jellybean including the LG sources works (but different issues with booting)
compiling AOSP KitKat including the LG sources fails (doesn't start at all because of several changed vars maybe. Didn't investigate that further cause I focus on kernel now)
compiling CM JellyBean fails with the adapted LG Optimus F6 device tree
compiling CM KitKat fails with the adapted LG Optimus F6 device tree (mainly because some of the adaptions enforces the goldfish emulater?! Havent found out why! damn.)
MultiRom:
Multirom TWRP = compiling OK but no screen shown?!
Multirom binary = compiling OK
Multirom trampoline = compiling OK if it works or not? Cannot test it until TWRP
Kexec Kernel = Porting to F3Q (hopefully) finished. compiling OK but it has problems with mounting the correct places (I think. Didnt investigate that further atm)
Well one of the ideas is to have a working MultiRom installation which then would boot a custom ROM like CM with the kexec technique.
That way we could boot a "insecure" ROM with our locked boot loader.
That really seems to be possible because I can flash a TWRP image to the BOOT partition for example. That means TWRP would start up everytime.
If we could get MultiRom in place where the boot partition sits we COULD be able to boot everything we want.
Sources:
My current device tree of the fx3q AOSP build can be found here: device_lge_fx3q_aosp
.
Click to expand...
Click to collapse
Just so im clear what exactly is incomplete about the cwm that was compiled? you say its not a valid device tree (crazy because ive never heard those kind of terms even used before) what exactly makes it invalid to you?
what was the point of labeling this thread? gain some thanks by saying you spent 200+ hours on compiling the stock kernel source that has a guide to compile it in teh source zip? cuz it doesnt appear to make any progress on booting aosp even though you forked an oudhs device tree from another device. then you talk about needing hacks etc to get past the locked bootloader yet you dont seem to understand that there was an exploit tahts how there even was a cwm.
instead you are pulling in search results giving false hope to people looking for cm in hopes they donate to you so you can buy a phone when you obviously dont understand how it works.
Just so im clear what exactly is incomplete about the cwm that was compiled? you say its not a valid device tree (crazy because ive never heard those kind of terms even used before) what exactly makes it invalid to you?
Click to expand...
Click to collapse
Never said that CWM is incomplete but to be honest it was and it is missing features TWRP has, of course. It is a while ago that I took a look at that CWM version so I would need to check again maybe. The last time I tried it the mounting of /data/media (the internal usb storage) was not possible as backup, too. But that may have changed.
cuz it doesnt appear to make any progress on booting aosp even though you forked an oudhs device tree from another device
Click to expand...
Click to collapse
You may have more experience in porting to a complete new device so what is wrong with forking from a device which has more or less the same hardware specs ? That is the recommended way mentioned in the porting guides.
The reason why there was no progress since a while is:
I had no device anymore
Donation offer took some weeks
Then the new (used) device need to be shipped for about 2 weeks
Then I was on vacation for 2 and a half weeks
Then I needed to bring down the workload in RL to continue which took me another week
Then I started with development again since 1 day
Today
The main focus is to develop a fully working initial ram disk build from scratch instead of using the stock one. Then I will continue on porting AOSP as the ram disk is an essential part as you know.
then you talk about needing hacks etc to get past the locked bootloader yet you dont seem to understand that there was an exploit tahts how there even was a cwm.
Click to expand...
Click to collapse
Well it seems that you do not understand but that is not a problem I explain it for you:
The locked bootloader is a problem because normally we have not the possibility to install a custom kernel and/or custom ROMs. There is a hack available named "loki" which makes it possible to circumvent that fact. The only thing you need to do is to use the loki patch on the kernel/boot image.
The other thing around this is that the bootloader send kernel boot parameters which avoid starting a custom or modified ROM. This is one of the examples I fixed as you can see in the kernel thread and the reason why the modified stock ROM from @joel.maxuel is booting.
The multirom thingy (you may point to) was about having a special boot image (based on TWRP) named multiROM. With this it would be possible to power on the device and choose different ROMs you may have installed (that means different ROMs on 1 device in parallel). Great thing and at the time of writing one thing I tested. The main problem here is not using the Loki patch mentioned above but instead the /data/media internal storage which need to be mounted correctly and some other things as well. Nevertheless is multirom nothing I want to work on atm because the main part of work is to have CM/AOSP compiled and working.
what was the point of labeling this thread? gain some thanks by saying you spent 200+ hours on compiling the stock kernel source that has a guide to compile it in teh source zip?
Click to expand...
Click to collapse
I never said that I spent 200+ hours for compiling a stock kernel. Please read carefully before getting rude. This thread here is for developing on the F3Q ROM not the kernel. Kernel things are located in the Kernel thread. (Btw. compiling the stock kernel was never a problem or somehow time consuming there are other things like the initial ram disk and correct mounting paths etc which had taken some time but that is another story and as said not related to this thread.)
You may have heard about people porting ROMs to new devices? I try to do so and that is the reason why this thread exists. Not for some thanks clicks - some people define their self not with this you have to know. To be honest I do not get paid for everything here - which is ok. So a thanks click is appreciated, of course. Nothing more nothing less.
btw: I believe that a user can decide on their own if they want to click thanks when they want right? TWRP and Kernel are both things ready to use and the ROM porting is a WIP which a user can or can not say thanks for. That should be decided by the user IMO.
instead you are pulling in search results giving false hope to people looking for cm in hopes they donate to you so you can buy a phone when you obviously dont understand how it works.
Click to expand...
Click to collapse
To be honest it seems obvious that you do not understand. That is not a problem because I can explain it to you again.
As stated before and in the OP I try to port AOSP and/or CM to this device. Well it is true that I'm still learning and will learning forever but that is the truth for everyone (maybe not for you, ok ).
The donation part is something which was an offer to continue the work because I do not owned the device anymore but I was and I am willing to continue. As stated in the the donation thread I do not use the device for anything other then development because I do not really like the phone itself. But my wife uses the phone and she needs CM / AOSP to be able to be fully in German language and having a smoother Android experience than with the stock ROM.
If you know everything better than me then why you do not share your knowledge so we can speed up the process of porting? Would be more efficient than writing
Check out the brand new FAQ: :good:
Frequently Asked Questions
.
.
.
.
......and another thing I want to mention today!
The following has been done 10 minutes ago:
adapt DM47021 DT (device tree) to F3Q and compiling CM KK systemimage/full otapackage
This is 1 step further into the right direction but do not expect too much it simply means that I was able to fix all the thousands of compilation errors for the new adapted device tree.
Which is GREAT, of course but now the debugging starts and recompiling etc ..
The first boot was a mess I believe it has to do with a wrong used gcc version but I need to investigate that further in the next days/hours whatever..
just wanted to keep you updated
greetings from the front
xdajog
EDIT:
if someone interesting in This is the time duration of a full cleaned compilation (real = the actual duration):
Build system:
Intel® Core™ i7-3632QM CPU @ 2.20GHz × 8 (Quadcore. Due Hyperthreading 8 threads/CPU's)
8 GB RAM
Ubuntu Server 14.04 - 64 bit, running in a highly optimized VM based on KVM
CM11 compilation time (full cleaned working directory)
real 56m47.417s
user 213m6.612s
sys 20m9.400s
Click to expand...
Click to collapse
.
Thanks for the update. It's amazing how difficult it can be just to get all the variables of a dev environment to agree. Certainly getting somewhere.
xdajog said:
.
.
.
......and another thing I want to mention today!
The following has been done 10 minutes ago:
adapt DM47021 DT (device tree) to F3Q and compiling CM KK systemimage/full otapackage
This is 1 step further into the right direction but do not expect too much it simply means that I was able to fix all the thousands of compilation errors for the new adapted device tree.
Which is GREAT, of course but now the debugging starts and recompiling etc ..
The first boot was a mess I believe it has to do with a wrong used gcc version but I need to investigate that further in the next days/hours whatever..
just wanted to keep you updated
greetings from the front
xdajog
EDIT:
if someone interesting in This is the time duration of a full cleaned compilation (real = the actual duration):
.
Click to expand...
Click to collapse
My hat is tipped to you xdajog. I'm looking for a qwerty slider replacement phone for my wife as her current one is reaching 5 years old soon.
Your efforts have tipped me towards this phone as a working ASOP or CM would be necessary as I do not think this phone will be updated by anyone else. I'm always leery of putting a family member on anything past a feature phone unless I can be confident of keeping it patched. Since there are no flagship phones with qwerty keyboards the efforts of devs like you are all the rest of us have.
@xdajog than you truly for your continued support on this device, i am a late adopter to this phone but is there any hope for getting android 5 on it?
vordhosbn said:
@xdajog than you truly for your continued support on this device, i am a late adopter to this phone but is there any hope for getting android 5 on it?
Click to expand...
Click to collapse
Well.. lets talk about that when we have KK ready
-----
Sent from my SGH-I927 using XDA Android mobile app
already has a ready rom CyanogenMod with kk ask you to take a look, you just need to fix the camera, can test or basaer it?
link: http://androidforums.com/threads/t-mobile-metropcs-beta-4-4-4-cyanogenmod-11-unofficial.923379/
GhostDwl said:
already has a ready rom CyanogenMod with kk ask you to take a look, you just need to fix the camera, can test or basaer it?
link: http://androidforums.com/threads/t-mobile-metropcs-beta-4-4-4-cyanogenmod-11-unofficial.923379/
Click to expand...
Click to collapse
Thx but this is for the F3 not F3Q.
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
Thx but this is for the F3 not F3Q.
-----
Sent from my SGH-I927 using XDA Android mobile app
Click to expand...
Click to collapse
yes, but the lg optimus f3 and f3q have the same specifications and the same kernel, the difference among them is where it was manufactured and the f3q comes with a keyboard and different touch buttons, take a look at the comparison below:
http://www.gsmarena.com/compare.php3?idPhone1=5998&idPhone2=5509&
GhostDwl said:
yes, but the lg optimus f3 and f3q have the same specifications and the same kernel, the difference among them is where it was manufactured and the f3q comes with a keyboard and different touch buttons, take a look at the comparison below:
http://www.gsmarena.com/compare.php3?idPhone1=5998&idPhone2=5509&
Click to expand...
Click to collapse
Of course. Thats the reason why I use the F3 device tree as base for development. But there are many differences in compiling. If you want you can try would be nice to have another dev here.
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
Of course. Thats the reason why I use the F3 device tree as base for development. But there are many differences in compiling. If you want you can try would be nice to have another dev here.
-----
Sent from my SGH-I927 using XDA Android mobile app
Click to expand...
Click to collapse
Yeah, i will try, give me the a one time
So I've got an Ubuntu 14.04 LTS VM set up on my machine and I downloaded the Android source tree (AOSP) and configured the build environment per the instructions. I ran a build and everything came out okay (but slow ). I have some additional RAM on order for my machine so I can dedicate more resources to the VM.
I have an extra F3Q I can use for testing and I have a pre-paid SIM on order so that I can actually use my test device in real-world scenarios.
I'm ready to start digging in here. :good:
Edit: RAM arrived today, have 32GB now which means I can dedicate a full 16GB to the Ubuntu build environment!

The Theory of Everything (Building MTK from saucery) asop cm miui ubuntu

Welcome​
I have started this thread for the THEORETICAL development of the mt6732/mt6752 from source if such a thing happened to exist which of course it does not.
While compiling from source is pretty well documented :good: compiling MTK is not so well documented especially the mt6732/6752.
I have tried to keep this thread as ambiguous as possible and hopefully we will be left in peace to iron out any difficulties.
DO's:
I am a Total Noob myself to compiling from source but experienced enough to use the xda search box, Google and Youtube first before asking any questions. If your still confused after using the above then by all means ask here.
DON'T s:
If your a noob who should happen upon this thread then by all means read and learn but please respect the dev's by not asking random question without searching first :fingers-crossed:
SHARING:
Please only share things of a sensitive nature with recognised members who you know and via the PM. :good:
Lets just see how far we can push this Kernel
Recommended Reading:
[GUIDE]Building a Kernel from source{Mediatek}
Build Kernel MT6577 - Can't boot after build
How To Port CyanogenMod Android To Your Own Device
XDA:DevDB Information
k01q_e k01q_h, Kernel for all devices (see above for details)
Contributors
bigrammy
Kernel Special Features: Remains to be seen
Version Information
Status: Testing
Created 2015-02-25
Last Updated 2015-02-25
I am here, reporting for duty. If anyone wants an extra "potato" because he has too much "ketchup" for use feel free to ask me
Just to be clear
I am new to compiling from source in any shape or form
I believe the kernel to be not a problem and I know dev's are working on getting our phone on cm and maybe others :fingers-crossed:
But me being me I am very curious and would like to understand how we would go about doing what @varun.chitre15 managed to do for the mt6582 Here
I have the PC all setup for building now thanks to @carliv great guide Here and the cm and android tut's I also found this useful guide on youtube by Dave Bennet Here
Our device is not on the cm or google repo so how do we add it locally.
Do we need any special commands for mediatek
Could we use the mt6582 repo and substitute or mod the files
As you can see I have more questions than answers as normal :laugh:
I dont want to tread on any toes here or take over current developing but just want to learn as said in the OP there is a lack of mtk guides regarding this.
If I missed a clear mtk guide then please post the link to it. :good:
In short your looking at manifests. http://wiki.cyanogenmod.org/w/Doc:_Using_manifests
carliv (I think) posted the device config on github - link in your SPFlash thread somewhere.
Found it: https://github.com/carliv/device_elephone_p6000?files=1
Vendor files
I have compiled and flashed a kernel, I've been running it for 24+ hours with no obvious issues. It's honestly very easy to just get it to build if you don't try to make major changes.
I have (very lazily) tried to change a couple of things in the config to fix the known issues (OTG, compass): unfortunately I have no way to test the OTG function right now, while the compass did not magically start working. On the other hand, the notification light issue which is introduced by V8.4 is not strictly or exclusively kernel-dependent, since I am running V8.3 with my own kernel and the notification function is intact. That's all I can share at the moment.
xenonism said:
I have compiled and flashed a kernel, I've been running it for 24+ hours with no obvious issues. It's honestly very easy to just get it to build if you don't try to make major changes.
I have (very lazily) tried to change a couple of things in the config to fix the known issues (OTG, compass): unfortunately I have no way to test the OTG function right now, while the compass did not magically start working. On the other hand, the notification light issue which is introduced by V8.4 is not strictly or exclusively kernel-dependent, since I am running V8.3 with my own kernel and the notification function is intact. That's all I can share at the moment.
Click to expand...
Click to collapse
Can you switch on and post the /proc/config ?
Regarding the notification lights, I think v8.4 introduced the custom partition (might be wrong on that). Running grep -r "ro.notification.breath" /system/ the only result I got was services.odex (might have been settings.odex). I've bak(smali)ed it but couldn't see the difference between the two that would explain the change.
HypoTurtle said:
Can you switch on and post the /proc/config ?
Regarding the notification lights, I think v8.4 introduced the custom partition (might be wrong on that). Running grep -r "ro.notification.breath" /system/ the only result I got was services.odex (might have been settings.odex). I've bak(smali)ed it but couldn't see the difference between the two that would explain the change.
Click to expand...
Click to collapse
The config file is attached to the post, it's too big to paste it.
I have tried the new ROM which came out today, then flashed my kernel. I can't use either SIM card anymore. Flashed the boot.img that comes with the ROM - same. I guess I gotta go back to V8.3 for now.
The new ROM doesn't seem to be the same as the OTA: it reports as: Elephone_P6000_02_V8.0_20150206.
About the notification issues (which bothers me the most), I haven't had much time do to more experiments, but I was thinking this (which probably also led to my confusion*): there's a chance the functionality is not removed or shut down, at least in the intentions of the maker. After all, in V8.4 (and in the new ROM), when the phone is connected the light stays on, while notifications make it breath. While not a desirable behaviour (at least IMO), I wouldn't call it... a non-behaviour, so to say. So perhaps the functionality itself is intact but something is altering the way it works, for whatever reason. I also did some unpacking and grepping a few days ago, but I couldn't find anything useful.
* At some point I thought the issue was fixed because the light was breathing while connected to my PC, but it was probably because I had a notification to read.
xenonism said:
The config file is attached to the post, it's to big to paste it.
I have tried the new ROM which came out today, then flashed my kernel. I can't use either SIM card anymore. Flashed the boot.img that comes with the ROM - same. I guess I gotta go back to V8.3 for now.
The new ROM doesn't seem to be the same as the OTA: it reports as: Elephone_P6000_02_V8.0_20150206.
Click to expand...
Click to collapse
Lets not speculate too much - but perhaps there was a minor board change between the first and second preorders, notification could be a problem with granting notification access (in settings) - could this be a selinux issue? It would explain why things like Light manager work - as you grant them notification access.
For lost Imei - can you compare the custom partition to the one in the ota?
If anyone needs an easier way to grab the 'ketchup', my GitHub has it. Click on my blog link in my signature.
BachMinuetInG said:
If anyone needs an easier way to grab the 'ketchup', my GitHub has it. Click on my blog link in my signature.
Click to expand...
Click to collapse
Thanks bro,
Nice log
I was going to try use the sprout config as this is nice and clean Here when I have worked out how to do things that is.
My eyeballs are bleeding now with all this reading but from what I can see most of files are the same names so maybe we could just replace them with ours probably 98% ish
I did see one ROM some place for the mt6732/52 that had mt6582 references I just wish I could remember where I had seen it
Like I say I am a noob to this compiling and linux stuff so I maybe talking out of my ass :laugh:
bigrammy said:
Thanks bro,
Nice log
I was going to try use the sprout config as this is nice and clean Here when I have worked out how to do things that is.
My eyeballs are bleeding now with all this reading but from what I can see most of files are the same names so maybe we could just replace them with ours probably 98% ish
I did see one ROM some place for the mt6732/52 that had mt6582 references I just wish I could remember where I had seen it
Like I say I am a noob to this compiling and linux stuff so I maybe talking out of my ass :laugh:
Click to expand...
Click to collapse
I'm actually a noob too, and honestly I've only ever successfully built a fakeflash (temporary recovery) that didn't even work.
bigrammy said:
Thanks bro,
Nice log
I was going to try use the sprout config as this is nice and clean Here when I have worked out how to do things that is.
My eyeballs are bleeding now with all this reading but from what I can see most of files are the same names so maybe we could just replace them with ours probably 98% ish
I did see one ROM some place for the mt6732/52 that had mt6582 references I just wish I could remember where I had seen it
Like I say I am a noob to this compiling and linux stuff so I maybe talking out of my ass :laugh:
Click to expand...
Click to collapse
Can anyone actually make a guide noob friendly to build kernel from source? I got kernel with me locally zip file I want to build it please any help?
Tech N You said:
Can anyone actually make a guide noob friendly to build kernel from source? I got kernel with me locally zip file I want to build it please any help?
Click to expand...
Click to collapse
I think you can use the scripts in the root of the source code to build the kernel? make<something>.sh.
Make sure you're on Linux (Ubuntu preferred) and that you have all dependencies installed correctly. To execute the script, simply go to the Terminal, cd to the location, then type . make<something>.sh
Tech N You said:
Can anyone actually make a guide noob friendly to build kernel from source? I got kernel with me locally zip file I want to build it please any help?
Click to expand...
Click to collapse
Have a look at the README.
Does make menuconfig work here?
These few simple instructions from the readme file enable you to build a working kernel (at least in a Linux environment):
Code:
How to Build
kernel
======
1. Get the prebuilt cross compiler from AOSP website:
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
2. Add required cross compiler to PATH:
$ export PATH=/YOUR_TOOLCHAIN_PATH/arm-eabi-4.6/bin:$PATH
$ export CROSS_COMPILE=arm-eabi-
3. Then use the following commands to build the kernel:
$ ./makeMtk k01q_e new k
make menuconfig can be made to work, but you need to set some parameters and I can't look into it right now.
You previously asked something about the custom partition, I need some guidance there as I am not familiar with the IMEI issue.
xenonism said:
These few simple instructions from the readme file enable you to build a working kernel (at least in a Linux environment):
Code:
How to Build
kernel
======
1. Get the prebuilt cross compiler from AOSP website:
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
2. Add required cross compiler to PATH:
$ export PATH=/YOUR_TOOLCHAIN_PATH/arm-eabi-4.6/bin:$PATH
$ export CROSS_COMPILE=arm-eabi-
3. Then use the following commands to build the kernel:
$ ./makeMtk k01q_e new k
make menuconfig can be made to work, but you need to set some parameters and I can't look into it right now.
You previously asked something about the custom partition, I need some guidance there as I am not familiar with the IMEI issue.
Click to expand...
Click to collapse
Yea wasn't sure about menuconfig as mtk uses projectconfig rather than def_configs.
In the custom partition there are files like /custom/etc/firmware/modem.img etc. When messing with a Flyme port it was these files (and possible conflicts in /system) that caused an IMEI:nul.
FYI I opened the custom partitions on windows using an ext viewer after running the imgs through sgs2toext4.
Kernel building Mediatek
Tech N You said:
Can anyone actually make a guide noob friendly to build kernel from source? I got kernel with me locally zip file I want to build it please any help?
Click to expand...
Click to collapse
Not sure if you guys have seen or read this but it's a pretty comprehensive guide to building the mediatek kernel by @MasterAwesome and should really be compulsary for all kernel related things thread here http://forum.xda-developers.com/showthread.php?t=2754513
@HypoTurtle
Regarding the custom partition this is or could be a problem for us now and in the future and may require further investigation. The cm sprout branch has the modem.img in the (normal place /system/etc/firmware) but as you say ours is in the custom partition which is probably to protect it from bad /system flashes
Thing is I see no normal type link to it in the /system/etc/firmware so it must be linked some other way which may explain why all my port attempts failed as none of them used a custom partition (Asus_X002)
Maybe we will have to repartition the emmc to a standard config and alter the kernel (if the links are set via the kernel that is) for cm and other ports to work smoothly as I am unsure just how everything is linked up.
I have not had much experience with custom partitions so someone one know's of a good info source please link it. :good:
Hopefully Master @Santhosh M can figure out what's going on with the custom partition :fingers-crossed:
bigrammy said:
@HypoTurtle
Regarding the custom partition this is or could be a problem for us now and in the future and may require further investigation. The cm sprout branch has the modem.img in the (normal place /system/etc/firmware) but as you say ours is in the custom partition which is probably to protect it from bad /system flashes
Thing is I see no normal type link to it in the /system/etc/firmware so it must be linked some other way which may explain why all my port attempts failed as none of them used a custom partition (Asus_X002)
Click to expand...
Click to collapse
The partition is symlinked from .../by-name/custom (which is symlinked by the kernel from dev/block/mmcblk0p12) to /dev/customimg which is mouned after an e2fsck to /custom. /custom isn't linked to /system, it's just added to the global environment (init.environ.rc), will need to check on the environ, I'm on flyme and it has /custom/lib added to the library path (which doesn't exist).
HypoTurtle said:
The partition is symlinked from .../by-name/custom (which is symlinked by the kernel from dev/block/mmcblk0p12) to /dev/customimg which is mouned after an e2fsck to /custom. /custom isn't linked to /system, it's just added to the global environment (init.environ.rc), will need to check on the environ, I'm on flyme and it has /custom/lib added to the library path (which doesn't exist).
Click to expand...
Click to collapse
Haha thanks that explains a lot of weird things perfectly. :good:
What's the problem or what is the issue here.
Mediatek compiling guide ( by masterawesome ) that you have linked to is not actually practically this mtk kernel is done and is just way too complicatedly explained.
There is no defconfig stuff or pulling config.gz from phone in mtk. In this new source its just simple. Set up your toolchain path. Execute the makeMtk followed by the project no u want. Get zImage and patch it for mtk header and merge it with stock ramdisk. For this newer mtk chipsets repack has an extra stuff where u have to be careful of kernel command line parameters.
That's it the kernel stuff in mtk

UNOFFICIAL CM12.1 for Nook HD/HD+ [2015-12-18]

This thread is a direct continuation of @Hashcode's work for porting to Lollipop. Because of his and @verygreen's heavy lifting, porting to CM12.1 happened almost painlessly, for which I'm grateful. Their contributions compelled me to share something back. Thus, I'm uploading personal builds of CM12.1 for HD and HD+ in this shared Box folder. While I do not own a hummingbird, sister builds are generated more or less concomitantly.
Some of the important device-specific changes from KitKat/CM11 are described in Hashcode's thread. The goal is to keep as close as possible to CM upstream, and integrate whatever fixes and enhancements we find over time. More progress information will be added here gradually, as I have time. A lot of useful discussion happened on the CM12.0 thread, and the status of things is available to anyone willing to search. Hunting for possible bug fixes, understanding how to actually boot a newer kernel are some of my current priorities. I am not a developer, and the usual disclaimers apply.
Recovery Information
Up to date eMMC TWRP images are included in the respective device folders. Personally, I've had a good experience with TWRP, and do not plan on looking at other recovery distributions. Now, there have been (very) sporadic reports of broken partition tables, soft-bricked devices, etc, blamed on recovery. Although recovery is usually not the actual culprit, here are some ways you can rescue a completely unresponsive device:
It's a good idea to keep a microSD card around, with verygreen's external recovery image from here.
Once booted off the external recovery, you can easily fix whatever is broken (ADB is your friend here). There's no need to re-install CM11, as re-flashing recovery and/or boot will most likely fix your issue.
Recovery partition: dd if=<path to recovery image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery
Boot partition: dd if=<path to boot/kernel image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/boot
Afterwards, you should at the very least have a working internal recovery. I don't recall any instance where /system and/or /data became corrupted because of recovery, but you can certainly fix them now.
I've never tested this part, but I believe that you may be able to install an eMMC CM12 ZIP with verygreen's external CWM, even if /data and /cache are F2FS (assuming you copied all ZIPs onto the external card). My understanding is that only /dev/block/platform/omap/omap_hsmmc.1/by-name/system (always ext4, mountable by any recovery) is touched during installation, so you may even bypass TWRP completely.
P.S. If you broke you bootloader by flashing the wrong recovery flavor, despite all images being clearly labeled as hummingbird or ovation, well, no sympathy for you… Still, you can bring your device back to life within minutes as described above.
Progress towards Official CM12 Nightlies
As of now, most things are ready for turning official nightlies on, including official TWRP images and SELinux Enforcing support, albeit with this proviso:
My HW composer changes described in post #3 and #602 are not included upstream, since the plan was to fix upstream for all devices using CyanogenMod/android_hardware_ti_omap4.
The stumbling block with SELinux Enforcing had been remounting /system upon each new install, to write the customized WLAN NVS BIN. I'm avoiding this step by modifying the scripts to store the Wi-Fi calibration data in /rom now, with the added benefit that it only needs to be generated once. These changes are also not captured upstream, and may never be. If someone figures out an upstream-approved way of writing to /system upon first boot under Enforcing, then we'll probably switch back to the old fix-mac script.
On a personal note, posting on my threads is pretty tricky business... My builds were never intended for general consumption, but rather a way to move porting and development forward, and I often debate only keeping the GitHub repositories for people to build themselves. Obviously, that would upset hundreds of people at this point, so I make an effort to upload reasonably bug-free builds, as well as help even with trivial non-problems whenever I can. Nevertheless, low quality, or badly written posts (and I don't mean bad English) are a sure way to get ignored, and my memory is pretty long term Basically, I won't police content here, but I also don't want to deal with the the kind of stupidity and entitlement so prevalent in real life.
In conclusion, no need to thank (unless you really want to), or ask about donating, etc, but do reassess the limits of your current understanding before making bold claims, as I do too. Nothing worse than having to fix a trail of misinformation... Also, comparisons to other people's work (unless constructive), complains about the state of things, or simply starting with "no offense" and such, will make your problem much less likely to be solved by me.
XDA:DevDB Information
UNOFFICIAL CM12.1, ROM for the Barnes & Noble Nook HD, HD
Contributors
amaces, Hashcode, verygreen, Jon Lee
Source Code: http://github.com/airend
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.0.x
Version Information
Status: Testing
Created 2015-04-16
Last Updated 2015-09-14
All Things Kernel
The information below (branch names, kernel progress, etc) is slowly becoming out of date (post #2 in the Marshmallow thread has more details). Although it feels pretty archaic at this point, I'm leaving this information here, mostly for historical reasons.
My primary focus has been and continues to be an even better kernel. Instead of opening a separate thread, I will be using this space for kernel updates and related information, in a sort of log format.
Since making any of the fancier OMAP-specific kernel trees work properly is a huge headache with limited benefits, I just merged the linux-3.0.101 patches, mainly for testing (the d-3.0 branch). These patches may help with the ARM core, not so much with OMAP parts, and certainly no change to any of the Nook-specific systems. Subjectively, the normal kernel still feels marginally more stable, but hey, everything still works.
It's mid May, and for the past couple of weeks, branch g-3.0 has slowly become my default kernel. It contains additional merges from the Google 3.0 OMAP kernel, the .101 commits, plus cherry-picked changes from various sources. Hopefully, all these make for a better kernel, although the holy grail remains K3.4…
I've been experimenting with improvements upon KSM; UKSM and PKSM are supposed to better recover duplicated/lost RAM (the former in the default g-3.0 branch, the latter in p-3.0). As with KSM, they need to be enabled (and optimally tuned) through the sysfs interface (echo 1 > /sys/kernel/mm/[up]ksm/run).
A significant number of patches were added for LZ4 support, and to make zram/zcache actually use it. I think it makes things snappier, but we'll have to wait and see. Also, it turns out that good old KSM is better after all; PKSM creates instability, and UKSM is a lot more CPU hungry, very much undesired on an already underpowered device.
Another exciting week for K3.0… @Hashcode uploaded a bunch of LMK/low RAM/etc optimizations for some AMZ/OMAP44xx variants, which I'm stealing for the HDs. As I'm better understanding the use of MFLAG/QOS for frame prioritization, I ported some of these changes from K3.4. The most exciting however, is the DMA-buffered K3.0 that I have working (branch dma-buf). It definitely feels better, although figuring out how to completely switch away from memory carveouts, fix the communication with OMX/Ducati for HW accelerated video, is complicated. This branch will remain an experimental project till K3.4 is up and running.
Just for testing, I'm rebasing most of my changes on top of the official CM12.1 kernel, and made the new iosched branch default for a while. This branch contains many changes to the block layer, cherry-picked from @faux123's tuna kernel. We now have newer I/O schedulers, such as FIOPS, ROW, and eventually BFQ. The current default elevator is ROW with 256 KB readahead. A few other interesting patches popped up, mainly related to unaligned access on ARM, and related optimizations.
Since July, all changes are grouped into feature branches on top of the upstream kernel, which are finally merged into the cm-12 branch, the default for the foreseeable future. This way of doing things is easier to maintain, and makes these changes easier to read, when deciding what to keep/discard for upstream.
HW Composer Issues & Fixes
The goal, and probably one of the base requirements to have these devices included in the CM12 nightlies, is to have a stable ROM with normal HW accelerated overlays. As of now, we achieved this by mostly reverting to the HW composer in CM11, although understanding why the newer code in hardware/ti/omap4 creates these underflows is equally important. Post #602 contains more information about this issue.
Starting with the July 14th builds, disabling HW overlays shouldn't be necessary any longer.
Before mid-July, we were using the upstream HWC in CyanogenMod/android_hardware_ti_omap4. As discussed ad nauseam, that combination of upstream K3.0/PVR modules/SGX DDK binaries/HWC runs into serious GFX buffer underflows. With five or more composer overlays, the panel attempts to reset constantly, which causes display flickers, followed by reboot (dumpsys SurfaceFlinger|grep -A 10 type will show how consistent this bug is).
In the meantime, a poor workaround was to disable HW overlays in Developer options. To make it stick across reboots, you could use this /data/local/userinit.sh:
Code:
#!/system/bin/sh
(while :
do
sf=$(service list | grep -c "SurfaceFlinger")
if [ $sf -eq 1 ]
then
service call SurfaceFlinger 1008 i32 1
break
else
sleep 2
fi
done
) &
First!!! Great to see you start your own thread. Thanks for all the great work
ac-t660 said:
If I have the 3/24 ROM already installed, should I dirty-flash the 4/8 version or do I need to reset and fresh install it in order to properly get the changes?
And like everybody else has said - thanks amaces and hashcode, incredible job!
Click to expand...
Click to collapse
Doh! I must have been typing my question as you were creating this new thread. Moving it since you and everyone using your builds are moving over here. Thanks again!
Based on this, I'd say that should be possible soon, if not already. However, that wasn't the case with the initial builds. I'd say no harm wiping just /system, and maybe /cache, flashing a CM12.1 ZIP, plus the proper GApps, and see how it goes.
Thanks!
I've flashed your 8 Apr build, and it (mostly) looks good. I still get the occasional forced reboots after some flickering. The flickering tends to occur when changing from portrait to landscape and pulling down the settings bar.
I very much look forward to see some progression.
Can you provide some instructions with installing TWRP on the HD+? I have Cyanoboot installed and flashed your build using CWM recovery.
Thanks.
In response to this post in the 12.0 thread.
amaces said:
The changelog would basically be the CM12.1 one
Click to expand...
Click to collapse
Great, so can you point to the latest CM12.1 commit that you've included when you make a release? Knowing the date doesn't pin it down completely.
amaces said:
About the ovation kernels, those images were for CM12.0, and while they may work with current builds (for reasons stated above), they don't provide any benefit anymore.
Click to expand...
Click to collapse
So we should use our original boot/kernel images?
Thanks!!
Hey amaces,
Thanks so much for the 12.1 builds. On the 4/4 build and will be testing out the 4/8 build over the weekend.
Thanks!!
shdware said:
Can you provide some instructions with installing TWRP on the HD+? I have Cyanoboot installed and flashed your build using CWM recovery.
Click to expand...
Click to collapse
Flashify can do that for you inside the ROM, or you could dd if=recovery.img of=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery inside adb shell or terminal. Also, current TWRP allows flashing of boot/recovery images directly.
MossyTC said:
Great, so can you point to the latest CM12.1 commit that you've included when you make a release? Knowing the date doesn't pin it down completely.
Click to expand...
Click to collapse
Sure, can do, although that kind of tagging needs to be thought out. I could simply append the CM review change number, but that's not very useful since most changes are in repositories that don't affect our devices. I'll look if anyone found a good way to do it (frankly, I don't recall seeing it done).
MossyTC said:
So we should use our original boot/kernel images?
Click to expand...
Click to collapse
The ROMs come with their own kernel. Those independent kernels were simply testing a few patches for the buffer underflow/flickering issues, and were meant for easy swapping within compatible CM12.0 builds.
Hi amaces,
I had done the 5.0 build, what do I need to do in order to pull in the 5.1?
TIA
andtron said:
Hi amaces,
I had done the 5.0 build, what do I need to do in order to pull in the 5.1?
TIA
Click to expand...
Click to collapse
I think it's better to backup your apps (I use titanium), do a full wipe and then install the 5.1 rom and gapps.
I am running the 04/08 and it is working fine except one major problem that is the bane of Android everywhere since kitkat...
It keeps telling me I have insufficient storage space to do anything, update apps or install new apps, and there are hardly any apps on the device.
When I go to Settings -> Storage it says total space 12.67GB but "Available" is only 700MB, which doesn't add up and doesn't agree with the graph.
I have:
Apps 0.92GB
Pictures, videos 5.62MB
Audio 296KB
Downloads 1.20GB
Cached data 1.24MB
Misc 1.65GB
Adding that up is just under 3.8GB total so I should have about 8.9GB free, but it only reports 700MB.
Something is wrong with the free space calculation. Any help here? This wasn't a problem on the previous CM12.
BTW I did a clean install (full system wipe) before installing the CM12.1.
Any help is appreciated. I am at my wit's end on this issue.
Thanks Tschumi.
My question is more on how to pull the sources and build the 5.1 myself.
mr72 said:
I am running the 04/08 and it is working fine except one major problem that is the bane of Android everywhere since kitkat...
It keeps telling me I have insufficient storage space to do anything, update apps or install new apps, and there are hardly any apps on the device.
When I go to Settings -> Storage it says total space 12.67GB but "Available" is only 700MB, which doesn't add up and doesn't agree with the graph.
[…] Adding that up is just under 3.8GB total so I should have about 8.9GB free, but it only reports 700MB.
Something is wrong with the free space calculation. Any help here? This wasn't a problem on the previous CM12.
BTW I did a clean install (full system wipe) before installing the CM12.1.
Any help is appreciated. I am at my wit's end on this issue.
Click to expand...
Click to collapse
That must be… frustrating. So, you're saying this happened on CM11, then CM12.0 was fine, and now the bug is back on CM12.1? There are a couple of unusual/puzzling issues that people report, including the reboot-instead-of-poweroff bug. Never having experienced these, it's hard to figure out the cause, but I'll keep it in mind.
andtron said:
My question is more on how to pull the sources and build the 5.1 myself.
Click to expand...
Click to collapse
These days, it's very easy; you simply upgrade your LP5.0/CM12.0 sources with: repo init -u git://github.com/CyanogenMod/android.git -b cm-12.1
mr72 said:
I am running the 04/08 and it is working fine except one major problem that is the bane of Android everywhere since kitkat...
It keeps telling me I have insufficient storage space to do anything, update apps or install new apps, and there are hardly any apps on the device.
BTW I did a clean install (full system wipe) before installing the CM12.1.
Any help is appreciated. I am at my wit's end on this issue.
Click to expand...
Click to collapse
I think it has something to do with updating from stock to cm. Go to 'terminal emulator' app, type 'su' then 'df'. Let us know what is the output.
Also, backup all your data. Do you mind clean install again? Which recovery are you using? If you convert your data partition to F2FS I'm sure it'll fix it. Not because F2FS will fix it, but because converting it to F2FS will format the entire /data partition (including the virtual /sdcard). There might be old files downloaded when you used stock rom.
extrem0 said:
...If you convert your data partition to F2FS...
Click to expand...
Click to collapse
Quick question, how does one go about converting the partition to f2fs on the ovation? I've done a couple searches but can't find anything definitive such as which recovery I should have installed and if it is a zip that I would need to flash.
Thanks!
J-Pod said:
Quick question, how does one go about converting the partition to f2fs on the ovation? I've done a couple searches but can't find anything definitive such as which recovery I should have installed and if it is a zip that I would need to flash.
Thanks!
Click to expand...
Click to collapse
I did it using twrp recovery 2.8.6.0 built by amaces. There's an option that allows you to convert some partitions to f2fs. Remember, it will erase all your files in your nook. Do a backup of your files before converting to f2fs.
J-Pod said:
Quick question, how does one go about converting the partition to f2fs on the ovation? I've done a couple searches but can't find anything definitive such as which recovery I should have installed and if it is a zip that I would need to flash.
Thanks!
Click to expand...
Click to collapse
Using @amaces TWRP, go to Wipe, check the data box, select "advanced wipe then it's something like " repair file system". I'm sure you can figure it from that.

Categories

Resources