0-day CyanogenMod project [LTE-A]

Search This thread

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
Jut get latest i9506 JB kernel and check what's the difference in KOR/EUR configs. I think, the problem is GPIO config + TDMB driver. So, look into JB source where GPIO config defined and port it into KK E330S kernel. It shouldn't be hard - just one/two .h files. And disable TDMB driver (which may fail on i9506 and thus make kernel halt in panic state).

KOR/EUR configs difference from JB, few items are missing with KK kernel source. And, dtbs seems smelly(arch/arm/mach-msm/Makefile.boot will not generate ks01 dtbs if KOR is not set)

For now, the question I am hoping you can answer is, is disabling TIMA/LKM enough for running KK kernel on JB bootloader(e330s)?
 

sorg

Senior Member
Sep 5, 2006
1,059
1,136
台灣
KOR/EUR configs difference from JB, few items are missing with KK kernel source. And, dtbs seems smelly(arch/arm/mach-msm/Makefile.boot will not generate ks01 dtbs if KOR is not set)
You don't need to change KOR to EUR. Just modify GPIO settings in /arch/arm/mach-msm according to JB I9506 source and disable TDMB related settings in config.

For now, the question I am hoping you can answer is, is disabling TIMA/LKM enough for running KK kernel on JB bootloader(e330s)?
I don't have i9506, so i cannot tell on which stage boot stops.
I only can tell my E330S has very old bootloader from 4.2.2 and it works fine with both 4.3 and 4.4.2 kernels with TIMA/LKM disabled and SELinux set in permissive mode.
 
  • Like
Reactions: arter97

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
You don't need to change KOR to EUR. Just modify GPIO settings in /arch/arm/mach-msm according to JB I9506 source and disable TDMB related settings in config.


I don't have i9506, so i cannot tell on which stage boot stops.
I only can tell my E330S has very old bootloader from 4.2.2 and it works fine with both 4.3 and 4.4.2 kernels with TIMA/LKM disabled and SELinux set in permissive mode.

Okay, thanks a million!!
 

MMLP2

Senior Member
Nov 11, 2013
87
38
Arter will you be able to build cm11 on the i9506 with all those information?

Sent from my GT-I9506 using Tapatalk
 

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
Arter will you be able to build cm11 on the i9506 with all those information?

Sent from my GT-I9506 using Tapatalk

ROM itself is enough; the kernel is the root cause.

I may need a bunch of tests before getting this really working.

If it continously doesn't work, I'll hold off until i9506 gets official KitKat and Samsung releases its sources.
 

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
You don't need to change KOR to EUR. Just modify GPIO settings in /arch/arm/mach-msm according to JB I9506 source and disable TDMB related settings in config.


I don't have i9506, so i cannot tell on which stage boot stops.
I only can tell my E330S has very old bootloader from 4.2.2 and it works fine with both 4.3 and 4.4.2 kernels with TIMA/LKM disabled and SELinux set in permissive mode.

Have you touched cmdline to boot with older bootloader?
@TonskuDaigle have posted last_kmsg and something with dtbs and cmdline seems smelly..

http://xdaforums.com/showthread.php?t=2691639&page=9
 

sorg

Senior Member
Sep 5, 2006
1,059
1,136
台灣
Have you touched cmdline to boot with older bootloader?

@TonskuDaigle have posted last_kmsg and something with dtbs and cmdline seems smelly..

http://xdaforums.com/showthread.php?t=2691639&page=9

Nope. I didn't tweak cmdline. What suspicious in cmdline you see in that log?

According to that log, kernel go to auto-reboot at some stage. Hard to see the reason. What is suspicious for me is this:
Code:
<4>[    2.423461] exfat_core: disagrees about version of symbol module_layout
<4>[    2.423672] exfat_fs: disagrees about version of symbol module_layout
Probably it's not fatal.
It looks like exception happened not inside the kernel. User need to provide logcat to check. You need to configure ramfs to enable adb mode by default.
 

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
Nope. I didn't tweak cmdline. What suspicious in cmdline you see in that log?

According to that log, kernel go to auto-reboot at some stage. Hard to see the reason. What is suspicious for me is this:
Code:
<4>[    2.423461] exfat_core: disagrees about version of symbol module_layout
<4>[    2.423672] exfat_fs: disagrees about version of symbol module_layout
Probably it's not fatal.
It looks like exception happened not inside the kernel. User need to provide logcat to check. You need to configure ramfs to enable adb mode by default.

No no, that's a stock kernel part.

The end of the log, there are some parts that says loading dtb has failed; that's my kernel.
 

sorg

Senior Member
Sep 5, 2006
1,059
1,136
台灣
No no, that's a stock kernel part.

The end of the log, there are some parts that says loading dtb has failed; that's my kernel.

Ah, i see now.
May be it would be good to insert more debug outputs in the place where it failed.

---------- Post added at 10:24 PM ---------- Previous post was at 10:11 PM ----------

Btw, just remember that i've assembled kernel image by old mkbootimg tool. When i've started to work with E330S kernel, in time of 4.2.2, Samsung didn't supply neither instruction, nor tools to assemble kernel image with DTB part.
So, i've found some custom made mkbootimg_dtb tool by one chinese guy and use it since that time.
With 4.4.2 source i've found that Samsung start to include their own version of mkbootimg tool with some script, but i've declined it (just because i already have my script which works fine) and continue to use the old one.

Probably, there was change in kernel header about DTB part which is known for new bootloader, while the old bootloader doesn't understand it. There is even new format of DTB when DTB loading is handled by kernel image instead of bootloader.
Probably, new bootloader can handle both old and new DTB image formats.
Thus, probably, you need to assemble the image with old mkbootimg tool and it will work with both old and new bootloaders.
 
Last edited:

sorg

Senior Member
Sep 5, 2006
1,059
1,136
台灣
i'm using this command line to assemble final kernel image:
Code:
mkbootimg_dtb --kernel arch/arm/boot/zImage --ramdisk ramfs.cpio.gz -o boot.img --base 0x00000000 --offset 0x02000000 --tags-addr 0x01e00000 --dt dt.img --cmdline "console=null androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F"
 

Attachments

  • mkbootimg_dtb.zip
    15.6 KB · Views: 31

arter97

Recognized Developer
Oct 14, 2012
3,890
34,674
26
Seoul
Ah, i see now.
May be it would be good to insert more debug outputs in the place where it failed.

---------- Post added at 10:24 PM ---------- Previous post was at 10:11 PM ----------

Btw, just remember that i've assembled kernel image by old mkbootimg tool. When i've started to work with E330S kernel, in time of 4.2.2, Samsung didn't supply neither instruction, nor tools to assemble kernel image with DTB part.
So, i've found some custom made mkbootimg_dtb tool by one chinese guy and use it since that time.
With 4.4.2 source i've found that Samsung start to include their own version of mkbootimg tool with some script, but i've declined it (just because i already have my script which works fine) and continue to use the old one.

Probably, there was change in kernel header about DTB part which is known for new bootloader, while the old bootloader doesn't understand it. There is even new format of DTB when DTB loading is handled by kernel image instead of bootloader.
Probably, new bootloader can handle both old and new DTB image formats.
Thus, probably, you need to assemble the image with old mkbootimg tool and it will work with both old and new bootloaders.

I think you're referring to Xiaolu's mkbootimg_tools (https://github.com/xiaolu/mkbootimg_tools). Right?

I'm also using it since 4.3 and with this CM project.

Please checkout these :
https://bitbucket.org/arter97/andro...ccf0644651e9916da5328c569bf37/misc/?at=master
https://bitbucket.org/arter97/andro...a5328c569bf37/build_kernel_e330s.sh?at=master
 

Top Liked Posts

  • There are no posts matching your filters.
  • 50
    Received the device at 16:30.
    Got home at 18:24.
    CyanogenMod booted at 19:12.

    0-day CyanogenMod project.

    My development device is SHV-E330S, a Korean variant.
    Which is almost identical to GT-I9506.

    - Working list -
    Almost everything including full H/W accelerated graphics

    - Not working list -
    Data (probably due to incorrect APN settings)
    Wi-Fi (kernel modules are missing for now)
    Proximity sensor
    In-call audio

    Screenshots attached.

    Hit "Thanks" if you're excited!



    - UPDATE 1 -
    Several more stuffs seems to be broken.
    mpdecision, accelerometer, gyro, compass, proximity sensors are broken.
    With the auto brightness disabled, it causes kernel panic during boot.
    Wi-Fi was rather hard to fix; considering S4 has bcm4335 but Note 3 has bcm4339. Porting jflte's Wi-Fi firmwares and libraries has fixed Wi-Fi and bluetooth.

    ART is working with BaNkS' gapps. Scored 29751 with AnTuTu (probably due to mpdecision being broken)


    - UPDATE 2 -
    This is really bad.
    Literally, all the sensors are broken.... Have no idea how to solve it yet..
    Will take a look at sensor libraries..
    Screenshot_2014-02-27-11-02-11.png




    - UPDATE 3 -
    Victory!
    Sensors are working very well :D
    Now, In-call audio and kernel panic is left to be solved :)
    Screenshot_2014-02-27-12-08-24.png




    - UPDATE 4 -
    Kernel panic with brightness settings has been worked-around with dirty method.
    This is not very ideal, but should be daily-usable until we find a more permanent solution.

    Several more issues has been found.
    Graphics is working smoothly but you may notice some studderings with video playback (eg. MXplayer).
    Time to wake-up is noticeably longer than stock firmwares but still not heavily annoying.

    Also, besides In-call audio is not working, call receiving is also confirmed not working with LTE connected.
    Call will only come through HSPA+ or other networking types than LTE.

    This may be only targeted to Korean variant because this issue also happens on Galaxy Note 3 Korean variant.

    I'll spend next few days and try to fix this issue.



    Another news, which is very bad indeed.

    As you may know, Korean variant received KitKat upgrades.
    Which changes bootloader and kernel.

    AFAIK, 4.4 kernel is only compatible with 4.4 bootloader.

    And this CM is based on 4.4 kernel and I don't have much time to rebase it to 4.3 kernel source.

    This means, you guys, i9506 users MAY NOT be able to use my CyanogenMod due to incompatibilities between 4.3 and 4.4 kernels & bootloaders.

    I'll still upload it for E330 users but, i9506 users, flash it at your own risk!!



    - UPDATE 5 -
    Got mpdecision working.
    This was the easiest thing to solve so far :)



    - UPDATE 6 -
    No, mpdecision will break after a bit running time.
    Replaced from the kernel with intelli_plug from faux123



    - UPDATE 7 -
    CyanogenMod team has just pushed massive updates to hlte related to graphics and RIL.
    I'm curious to see if the new RIL stuffs can help me solve telephony issues with S4 LTE-A, but the graphics is completely broken and doesn't works beyond March's nightlies.

    I'll spend the next few days try to catch up hlte kernel source's graphics stuffs(which seems extremely hard).



    - UPDATE 8 -
    Fully merged all graphics drivers from CyanogenMod to S4 LTE-A.
    Now, this has solved video studdering issue from UPDATE 4 and should provide better graphics performance overall now that we have a full, upstream-maintained, opensource hwcomposer implementation :)

    Now digging in to RIL...



    - UPDATE 9 -
    Somehow, after merging graphics drivers, In-call audio is working...?
    Confused, but still very good to have more stuffs working :)

    Call receiving on LTE is still left to be solved...



    - UPDATE 10 -
    No progress on solving incoming calls...
    I'd rather release despite the error..
    <Unable-to-receive-incoming-calls-via-LTE error is only specific to e330s/e330k with 4.4 KitKat radio&bootloader. Which MAY mean everyone else(i9506) may not have this error and ready for daily driver out-of-the-box>
    Can anyone confirm e330s kernel is compatible with i9506?



    - RELEASED -
    Go get 'em!!
    http://xdaforums.com/showthread.php?t=2691639
    4
    no update today?
    i check this thread every day...

    Thank you for waiting :)

    I'm a busy student and development lacks due to studying :(


    I'll try to update status as much as possible :)
    2
    How is the i9506 untested build going ? Is it ready for testing ?

    Sent from my GT-I9506 using Tapatalk

    Get things packed on a ZIP file, and it'll be finished.