[KERNEL] Basic with a Twist SGS4G KJ6 1.1.3

Search This thread

AntonX

Senior Member
Nov 9, 2006
432
1,054
Basic with a Twist SGS4G KJ6 Kernel

BML, don't flash if you have partitions converted to MTD.

Use at your own risk, I take no responsibility for anything that may happen to your phone because of this kernel.


This kernel is for those who don't want to be on the very cutting edge (CM7) but rather want stability without sacrificing too many recent features. It is based mostly on Bryan's 0.0.2d commit that supposedly never had problems with silent reboots. I made some changes to the config to bring it even more to the standard Samsung VibrantPlus in terms of hardware settings, but at the same time to optimize it for speed. I will add only tried and true features to this kernel, the ones that other kernel developers have used successfully.

Special thanks to bhundven (Bryan), FBis251, TeamAcid.

Features
  • initramfs from TeamAcid, including CWM5, SuperSU, forced ext4, etc.
  • Usual CIFS, TUN. I didn't include FUSE, if anybody needs it let me know.
  • BLN. Use BLN Control app from market to activate.
  • Voodoo Sound so paid app is not needed. Voodoo Sound app from market is required. Once installed, enable Smart Amplifier, it's the best thing you can do to improve music listening experience with our phone.
  • jhash3 for faster hash calculations. Used widely across the kernel, especially in networking.
  • OC/UV support with extended frequency table. Added 600Mhz, 900Mhz, 1.1Ghz, 1.2 Ghz, 1.3 Ghz, 1.4 Ghz. Use SetCPU or Xan's Voltage Control to enable and control frequency and voltages. Tegrak can be used only with no-OC/UV version.
  • ondemandX and smartassV2 governors. One of these should probably be preferred over stock ondemand. Change with SetCPU or similar.
  • TinyRCU. More lightweight version, it fits better our single CPU system.
  • Swap support, although I don't recommend using it.
  • SIO and BFQ I/O schedulers in addition to noop, deadline, and cfq that we already have.

Install
Flash with CWM or SGS Kernel Flasher. ODIN version is available only for OC/UV kernel.

Download
CWM:
v1.1.3
v1.1.3 (no OC/UV)
v1.1.2
v1.1.2 (no OC/UV)
ODIN:
v1.1.3
v1.1.2

Notes
* OC/UV version is very conservatively undervolted to -25mV. The preset voltages are still higher than on regular I9000, which has the same CPU. I'm running additional -50mV (total -75mV) for all frequencies without issues, but you may have them, every CPU is different!
* It is recommended to create a CWM recovery file before modifying voltages. This option is available in both SetCPU and VoltageControl.
* OC-ing to 1.4 Ghz is not recommended, especially for extended periods of time.
* Voodoo ext4 conversion, or "lagfix", is enabled and forced by default. There is not way and no need to go back to RFS.

Source
www.github.com/AntonX

Changelog

1.1.3
CWM 5.0.2.8 (blue) in initramfs
Disabled a little more of Samsung debugging

1.1.2
Minor changes to initramfs voodoo extension scripts
More neutral boot logo

1.1.0
Initramfs script will not force su update
Couple of small changes

1.1rc2
Few small changes

1.1rc1
Added BFQ and SIO I/O schedulers
Switched to TinyRCU
Added Swap support
Small change to Vibetonz

1.0b5
Some changes to OC/UV
Better BLN fix
Increased write timeout for bad SDHC cards
Added ondemandX and smartassV2 governors
Renamed the title, it's becoming less and less Basic...

1.0b4
Added native OC/UV support

1.0b3
Minor BLN changes
Replaced jhash.h with jhash3 code
Updated initramfs with SuperSU 0.88

1.0b2
Added BLN, first attempt

1.0b1
Original release
 
Last edited:

AntonX

Senior Member
Nov 9, 2006
432
1,054
Could you point me to the right repository/branch?

I'm curious to see your changes and I'm probably not looking in the right place on github.

Well, I didn't upload anything yet. If you tell me how to control the frigging repository from Windows I'll do it right away :)

But seriously I want to make absolutely sure that this kernel doesn't have this nuisance of silent reboots. Because it they still present there is no need to have this kernel.

No matter what happens, if Vooodoo sound works without problems, I'll give you the code if you want it.
 

bhundven

Inactive Recognized Developer
Well, I didn't upload anything yet. If you tell me how to control the frigging repository from Windows I'll do it right away :)

But seriously I want to make absolutely sure that this kernel doesn't have this nuisance of silent reboots. Because it they still present there is no need to have this kernel.

No matter what happens, if Vooodoo sound works without problems, I'll give you the code if you want it.

I'm about to post something to my cm7 thread, so heads up.

But stock kj6 kernel (if you download it from opensource.samsung.com and apply a few of my changes to fix tfsr and add initramfs) still has the same reboot issue.

I'm gonna start comparing some of the code from the froyo kernel to see wtf is going on. I fixed a problem with rild and random reboots are back.

I'm finding that the problem is related to suspend. The reboot happens when everything quiets down.
 

AntonX

Senior Member
Nov 9, 2006
432
1,054
But stock kj6 kernel (if you download it from opensource.samsung.com and apply a few of my changes to fix tfsr and add initramfs) still has the same reboot issue.

I'm operation on the assumption that 0.0.2d never had silent reboots. Nobody ever reported having them with this version. I have never ever experienced a reboot with it myself. That's why I took it as the base.
I haven't really looked what you did right after 0.0.2d. Seems like you switched to aries config instead from vibrantplus. Any particular reason? Anyway, I reverted it back and even slightly more back. Then you did some clean up and modified bunch of code. I don't care about cleaning somebody else's code like this. Unused functions and variables will be optimized out by the compiler anyway. To get rid of annoying warnings I just used -Wno-unused switch to gcc in the Makefile.
So - hard to tell what's happened between 0.0.2d and 0.1.0 (or 0.1.1?), but something must have happened. Too many people reported it to support this.
 

itzik2sh

Senior Member
Sep 5, 2011
1,518
712
Great initiative Anton!
Flashing it on 2 devices. I will update in 3 days.

Sent from my SGH-T959V using XDA
 

hechoen

Senior Member
May 7, 2011
2,686
1,391
Anton

Just flashed. I'm fully charging up right now. I'll run it for a day to check on battery life and do some restores to make sure all that is good to go. Including voodoo is a nice touch. A already have the paid app because the headphone amp is something I can't live without but really nice for those that haven't used it to check it out. I have never had a reboot on 2d so hopefully this will maintain that tradition. Nice work.
 

iamperson347

Senior Member
Aug 23, 2011
126
13
I've never used voodoo sound before, but wow I was missing out..... Separation seems slightly better, clarity, just everything is awesome... And being able to adjust output gain is nice too.

Also, so far, no reboots.

Sent from my SGH-T959V using XDA
 

eb13

Senior Member
Mar 26, 2012
210
67
Denver
Finally a kernel w/ Voodoo Sound! I've been using the paid app for awhile but the module doesn't load on boot sometimes plus I've always wondered if there might be a difference between the app loading the module vs. the module built in to the kernel. I've gotten really use to BLN though (hint-hint)... thank you!

Sent from my SGH-T959V using xda premium
 

Top Liked Posts

  • There are no posts matching your filters.
  • 69
    Basic with a Twist SGS4G KJ6 Kernel

    BML, don't flash if you have partitions converted to MTD.

    Use at your own risk, I take no responsibility for anything that may happen to your phone because of this kernel.


    This kernel is for those who don't want to be on the very cutting edge (CM7) but rather want stability without sacrificing too many recent features. It is based mostly on Bryan's 0.0.2d commit that supposedly never had problems with silent reboots. I made some changes to the config to bring it even more to the standard Samsung VibrantPlus in terms of hardware settings, but at the same time to optimize it for speed. I will add only tried and true features to this kernel, the ones that other kernel developers have used successfully.

    Special thanks to bhundven (Bryan), FBis251, TeamAcid.

    Features
    • initramfs from TeamAcid, including CWM5, SuperSU, forced ext4, etc.
    • Usual CIFS, TUN. I didn't include FUSE, if anybody needs it let me know.
    • BLN. Use BLN Control app from market to activate.
    • Voodoo Sound so paid app is not needed. Voodoo Sound app from market is required. Once installed, enable Smart Amplifier, it's the best thing you can do to improve music listening experience with our phone.
    • jhash3 for faster hash calculations. Used widely across the kernel, especially in networking.
    • OC/UV support with extended frequency table. Added 600Mhz, 900Mhz, 1.1Ghz, 1.2 Ghz, 1.3 Ghz, 1.4 Ghz. Use SetCPU or Xan's Voltage Control to enable and control frequency and voltages. Tegrak can be used only with no-OC/UV version.
    • ondemandX and smartassV2 governors. One of these should probably be preferred over stock ondemand. Change with SetCPU or similar.
    • TinyRCU. More lightweight version, it fits better our single CPU system.
    • Swap support, although I don't recommend using it.
    • SIO and BFQ I/O schedulers in addition to noop, deadline, and cfq that we already have.

    Install
    Flash with CWM or SGS Kernel Flasher. ODIN version is available only for OC/UV kernel.

    Download
    CWM:
    v1.1.3
    v1.1.3 (no OC/UV)
    v1.1.2
    v1.1.2 (no OC/UV)
    ODIN:
    v1.1.3
    v1.1.2

    Notes
    * OC/UV version is very conservatively undervolted to -25mV. The preset voltages are still higher than on regular I9000, which has the same CPU. I'm running additional -50mV (total -75mV) for all frequencies without issues, but you may have them, every CPU is different!
    * It is recommended to create a CWM recovery file before modifying voltages. This option is available in both SetCPU and VoltageControl.
    * OC-ing to 1.4 Ghz is not recommended, especially for extended periods of time.
    * Voodoo ext4 conversion, or "lagfix", is enabled and forced by default. There is not way and no need to go back to RFS.

    Source
    www.github.com/AntonX

    Changelog

    1.1.3
    CWM 5.0.2.8 (blue) in initramfs
    Disabled a little more of Samsung debugging

    1.1.2
    Minor changes to initramfs voodoo extension scripts
    More neutral boot logo

    1.1.0
    Initramfs script will not force su update
    Couple of small changes

    1.1rc2
    Few small changes

    1.1rc1
    Added BFQ and SIO I/O schedulers
    Switched to TinyRCU
    Added Swap support
    Small change to Vibetonz

    1.0b5
    Some changes to OC/UV
    Better BLN fix
    Increased write timeout for bad SDHC cards
    Added ondemandX and smartassV2 governors
    Renamed the title, it's becoming less and less Basic...

    1.0b4
    Added native OC/UV support

    1.0b3
    Minor BLN changes
    Replaced jhash.h with jhash3 code
    Updated initramfs with SuperSU 0.88

    1.0b2
    Added BLN, first attempt

    1.0b1
    Original release
    13
    what are the best setting to get the most battery life??

    Turn it off.
    12
    I've decided to keep BLN. I looked at the code, didn't find anything that could cause troubles if BLN if not used. Found the issue with "I2C write error", there were attempted writes to unpowered controller, so I fixed it. Removed some unnecessary debug tracings too.

    Updated jhash to faster jhash3, there can be slight performance boost for data, but probably not easily noticeable.

    Updated initramfs to latest SuperSU. Couldn't figure out how to easily update busybox to 1.20 (it needs to have bunch of links created), any help?

    OP updated to 1.0b3.

    Will try to post code on github today.

    EDIT: Added source code link to OP. Unfortunately because I used a little unorthodox method of getting the old Bryan's commit, I cannot easily and safely attach my modified code to it anymore. So the kernel code it posted as a new repo. If somebody needs to know exactly what's changed, let me know and I'll point to correct files. I was able to fork from the initramfs repo though, there were not too many of my changes.
    11
    Updated OP to version 1.1 rc1 with few more featured for completeness.

    Added two I/O schedulers, SIO and BFQ. You don't have to use them, especially if you don't exactly know what they are.

    Added native swap support (somebody asked), but I don't recommend ever using it. They system will become too unresponsive with it. Native swap doesn't go well with Android memory management, it doesn't work well with slow flash drives, plus you trash your SD card a lot sooner.

    Switched config to smaller faster TinyRCU, seems to be a logical change for one CPU systems.

    Things that didn't make to the kernel:
    Tiny Preempt RCU - it will not make the phone any faster, and it seems that some kernel devs have problems with it.
    zRam (compcache) - I actually added it, it kind of worked, but was sometimes crashing the phone during initialization. It's probably not a good thing to have on our phone anyway. So I took it away.

    Unless somebody comes with an idea what else to add to the kernel, I'm going to freeze the changes, wait few days for bug reports, and name it a release.
    11
    Updated OP to 1.1.0. Didn't see anything wrong with it over last few days, so let's call it a stable release and go from here.

    Small change to VoodooSound to remove ADC oversampling when doing VOIP and recognition. Probably really unnecessary, just a little paranoia.

    Looked at Vibetonz again, but didn't find anything wrong. Looks like MIUI knows about it, tries to use it, but does it incorrectly.

    Removed forced superuser update.

    If you used a OC/UV version prior to a test release that introduced extra frequencies (600, 900, 1100), review and update your voltage table!