[Q] Google goggles ipv6 - Tilt, TyTN II, MDA Vario III Android Development

Hi all,
I have Fat Free Froyo installed with the latest 14th Jan 2011 kernel voguimg-240x320-2.6.32-froyo-14-01-11_14.nbh edited to froyo & panel type 2 from t029000.massey.ac.nz but Google Goggles needs ipv6 support.
Is this a kernel problem or a problem with the build itself? I am experienced in linux, so can modprobe or insmod the ipv6.ko but I don't know where to get it from
Any help would be appreciated!

(message for kernel's developers) take this man! he can dev ipv6!

Jumping the gun there a bit
I triage bugs and work on stuff for Ubuntu. Have also ported a few linux bits to ppc64 (PlayStation 3).
I'm pinching the ipv6.ko from slayhers latest kernel build, hopefully that will work insmod-ding or modprobing it into the kernel thru the terminal on the Kaiser itself.
So, fingers crossed, this may be solved in 5 minutes!!

Didn't work, it must be compiled for a different platform...
Anyone have or know where to get a kernel for the Kaiser with ipv6 support, or failing that the correctly built ipv6.ko for the Kaiser so that it can be insmodded?

Getting it compiled in the kernel is the easy bit, although it does use up a lot of space which is limited in the kaiser's kernel so a little tweaking is needed. Getting it to work with the Kaiser's modem and the builds we currently use is a different matter unfortunately. It will take a bit of modding for it to work but it's more then achievable with a bit of free time. Wish i could buy that stuff!!If i get a chance i will get you the ipv6 module for the kaiser's kernel or a kernel with support for it so you can have a play.

I definitely look forward to it! If I knew how and what to modify I'd do it myself, but I thought arch-specific kernels had to be compiled on the arch itself? If that's the case, I can see how free time would be needed, it'd take hours or days to compile the linux kernel at 400MHz
I have compiled kernels before so if/when I learn how to do it myself, I could start to use my own git repo for more recent daily builds or something.
I'm also thinking about starting working on some *buntu stuff (I know Ubuntu is there for the Kaiser, but soem tweaks would help if I get a chance.)

Hmm, a little Googling goes a long way http://www.androidonhtc.com/wiki/Get_Involved << was hard to find that,so hopefully I can add ipv6 somewhere in the 'make menuconfig' options for the kernel.
Are the standard kernel options used by "make vogue_defconfig" ok to use, i.e. will it build a normal useable kernel so that everything works?

xteejx said:
Hmm, a little Googling goes a long way http://www.androidonhtc.com/wiki/Get_Involved << was hard to find that,so hopefully I can add ipv6 somewhere in the 'make menuconfig' options for the kernel.
Are the standard kernel options used by "make vogue_defconfig" ok to use, i.e. will it build a normal useable kernel so that everything works?
Click to expand...
Click to collapse
Yes, that is th correct make file to use. I have built the kernel with IPV6 support, haven't tested it but have attached the module to the post for you to try

Brilliant! I'll try it sometime within the next couple of days, although I might myself be working on a blazing fast kernel specifically for the HTC Kaiser, and it is SERIOUSLY!!!! fast, even at 400MHz I can notice a massive increase in speed with the exact same build, but I haven't economised too much.
I can see the the options for ipv6 in the ncurses menuconfig, so I guess it's just a case of enabling it and building the zImage right?
I seem to be having the old problem with the wifi though, and I know it's kernel related, but there are only patches for it, i.e. the wlan.ko, but can't see how to implement it myself so it's an all-in-one solution
When I get the hang of the Kaiser hardware properly, I might just push through a newer kernel from the armlinux site so watch this space

xteejx said:
I might myself be working on a blazing fast kernel specifically for the HTC Kaiser, and it is SERIOUSLY!!!! fast, even at 400MHz I can notice a massive increase in speed with the exact same build
Click to expand...
Click to collapse
How have you managed that??? What have you done?

I have no idea how it happened, perhaps the other devs add a load of useless options, but all I did was follow the instructions at that link above and compiled a zImage from the 2.6.32 arm branch, using the 2010 arm tools. Used NBHeditor to edit it for Kaiser, panel 2, froyo, flashed it and bang (not literally thank god).
I can't answer any better than that. I used the default options (for now at least) that the vogue build script uses for the kernel, but bluetooth, camera and gps work. No internet connection as yet either through the network or wifi, dumno what I've missed there, and no ipv6 (but can add that easily enough). Wifi doesn't work either, but I'm working on it, although that MAY be the reason why it's so fast...maybe it's missing a few options...still unsure at this point.
I notice that although this is an open community, and people attach NBHs, there are no changelogs or anything showing what the people have done with the kernel to implement some options, so it's kinda holding me back at the minute.

xteejx said:
I notice that although this is an open community, and people attach NBHs, there are no changelogs or anything showing what the people have done with the kernel to implement some options, so it's kinda holding me back at the minute.
Click to expand...
Click to collapse
That isn't true, all tested changes are pushed to git, you can see what has been changed and how from here: http://androidhtc.git.sourceforge.n....git;a=shortlog;h=refs/heads/htc-vogue-2.6.32

*facepalm!*
Didn't see that, will bookmark it and keep an eye on it, perhaps work with it. Thanks for the link

the androidhtc.com site is not related directly to the develop project because no developer is connected to it. Also the git repository it not hosted in linux to go but on sourceforge (so download the correct git). That site is very outdated.
wifi works if you use the correct branch (on sourceforge) and modules.

Am I right in thinking that http://androidhtc.git.sourceforge.n...7c0bf5edc4f5c6d64ce4df29254e8332ce26b;hb=HEAD is the prebuilt kernels and nbhs from the source at http://androidhtc.git.sourceforge.n...og;h=62f075ddd13f378fd252be94c77e4f93d12584fb ??
I think I'm looking at the right tree now.
Flashing the latest NBH: VOGUIMG-320-FROYO-01-16-11.NBH still gives me the wifi error. Do I need to manually add the wlan.ko to it or ??
I could've sworn that an NBH I flashed before had all that in the NBH and it worked fine.

Ok, got it back to how I had it:
Flashed latest.NBH from http://androidhtc.git.sourceforge.n...7c0bf5edc4f5c6d64ce4df29254e8332ce26b;hb=HEAD and dropped androidupdate.tgz to the /andboot folder of the SD card, installed update thru the boot menu and done.
So in reality there's nothing stopping me grabbing the same kernel source, building it and adding ipv6 support in the ncurses kernel config menu and making an NBH from it and flashing that over, and then doing the androidupdate.tgz, although I think with HTCFlasherGUI you can flash a zImage directly right??

Is there something wrong with the git at http://androidhtc.git.sourceforge.net/git/gitweb.cgi?p=androidhtc/kernel.git;a=summary I can't get access, it's showing old stuff. It looks closed since git clone rejects me

xteejx said:
Is there something wrong with the git at http://androidhtc.git.sourceforge.net/git/gitweb.cgi?p=androidhtc/kernel.git;a=summary I can't get access, it's showing old stuff. It looks closed since git clone rejects me
Click to expand...
Click to collapse
No, nothing wrong with it. Just do:
git clone git://androidhtc.git.sourceforge.net/androidhtc/kernel.git
You then need to set it to the correct branch using 'git checkout -b <branch you want> '
It's the 2.6.32 branch you are interested in, you can find out exactly what it's called using 'git branch -a' which will list the available branches.

Cool. Knew something went wrong somewhere, had to be me lol!
I added that ipv6.ko to the NAND via a androidupdate.tgz (only way I could do it), and it didn't work, something about incorrect module format (or something like that).
Are there any prebuilt kernels or NBHs for the Kaiser that include ipv6? Either as a module that I can insmod it in the terminal or built-in?
I hate being upstaged by people that can use Goggles without any problems.
I know slayher's kernels have ipv6, but I flashed the new stock one from http://forum.cyanogenmod.com/topic/4434-froyo-kernels-by-slayher/ and it didn't work. I mean the kernel did, but Goggles didn't - couldn't insmod it either - same invalid module format as the ipv6.ko scooter did for me

Also the git clone didn't work:
Initialized empty Git repository in /home/name/android-git/kernel/.git/
fatal: The remote end hung up unexpectedly

Related

Extracting kernel config from I9000XXJP3

Dear all,
Did anyone succeed extracting kernel configuration from I9000XXJP3? Kernel version is 2.6.32.9, the vermagic is "2.6.32.9 mod_unload ARMv7"
extract-ikconfig doesn't work on it.
I succeeded extracting a zImage gzipped payload, but it seems not to contain any configuration in it (see attached).
/proc/config.gz doesn't exist, Samsung open source package (downloaded from Samsung open source site) contains only Android 2.1 Eclair or previous versions.
My target is to build tun.ko and, eventually, ext3/ext4 modules to make them working in Samsung Galaxy S I9000 with rooted I9000XXJP3.
Any idea?
Without froyo source code or a good Samsung Kernel (es. for himem capable) I think is impossible to play good with theses beta roms.
Ciao
Any news? I need tun.ko for jp3 too..
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
redsh said:
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
Click to expand...
Click to collapse
Did you use the stock linux kernel? Or the common from android.kernel.org?
I'm trying the same thing actually. Isn't there any default config for the processor that might work? I tried with the config from .29 but when loading the module it says wrong format.
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
bilboa1 said:
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Click to expand...
Click to collapse
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
miki4242 said:
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
Click to expand...
Click to collapse
Yes that would be a lot of work. Maybe its better to just wait until they release the kernel from froyo. I read that they release their opensource stuff rather fast. But just for adding a module like ext4 I don't think you need those patches, because imho they didn't touch the fs of the kernel. We just need an adaquate kernel config and adding modules should be possible.
Phlogiston said:
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
Click to expand...
Click to collapse
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Yes i've set the subversion as well but without the patches from samsung its impossible it seems. We need to wait and hope that they release the froyo kernel sources soon....
bilboa1 said:
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Click to expand...
Click to collapse
Are you sure they set CONFIG_MODVERSIONS? It's off in the downloadable sources.
Just compare the output of `modinfo -F vermagic <yourmodule>` to `modinfo -F vermagic <modulewhichloads>` or to /proc/version .
did this get solved yet? I google'd for the tun.ko file for my i9000 using jp3 but nothing yet... if you have a proper one for the MoDaCo version here please attach it! ~
I think I saw someone's post with tun.ko for FroYo beta somewhere in these forums, I mean i9000 Android Dev. One of the guys here has found a way to compile kernel for jp* here. I am sure.
I actually found it attached somewhere in the forum and it was 1,5447 mb big I think it was... but it still didn't work for me so I presumed the kernel or something must have been wrong.

[kernel]Newer kernel 2.6.32 for Vogue/Kaiser/Polaris

Dear all,
I ask around in the past days if anyone was doing it, but no luck, I even try to look myself if it was easy to do starting from CM kernel, but then, looking better on sourceforge.net the androidhtc project... in the git repo I've seen the htc-vogue-2.6.32 branch!!! Obviously started by dzo.
To get it I've done:
mkdir androidhtc
cd androidhtc
git clone git://androidhtc.git.sourceforge.net/gitroot/androidhtc/kernel
cd kernel
git checkout -b htc-vogue-2.6.32 origin/htc-vogue-2.6.32
Click to expand...
Click to collapse
Than to configure and compile it (I have a crossdev environment)
cp arch/arm/configs/vogue_defconfig .config
make ARCH=arm menuconfig
# need to be adjusted the config...
make ARCH=arm -j3 CROSS_COMPILE=arm-none-linux-gnueabi-
Click to expand...
Click to collapse
Or you can take the nbh in DZO site and edit with NBH editor.
Everything is working right now:
wifi http://forum.xda-developers.com/showpost.php?p=7869029&postcount=5586
GPS, 3g, touch screen, camera, 3d... bluetooth.
In two days I didn't have any trouble.
Can't wait for the new compcache
Original thread on HTC Vogue by DZO
This is GOOD NEWS!!! I bet theres a shed load of work to be done yet though but it'll be good to get things up to date!
WOW.. nice keep your good work Dude..
I'm just newbie, only can hope and waiting
this confused me when i saw it. according to the internet the google foryo release already is .32
blindguyinanorgy said:
this confused me when i saw it. according to the internet the google foryo release already is .32
Click to expand...
Click to collapse
Our kernel is .25 I think. This is what's in the nbh regardless of whether we're running Donut, Eclair, or Froyo. Froyo is just the "top layer" if you will. The kernel is what makes the hardware work with Froyo.
*I'm not 100% on this:* dzo started with .25 and has just been hacking away at it to get it where we could get each piece of hardware working on our devices. Because he's been working so hard and altered so much, it's difficult to port all of his changes to a new kernel. That's why we haven't upgraded. If we could do what dzo has done for the past 2 years on the latest kernel I'm sure there would be much improvement on our devices, but there's a LOT that needs to be done.
This thread is kind of confusing. dzo said in the Fresh Froyo thread that he was pretty busy at the moment and what he meant with that is very likely that he is spending his available time on getting 2.6.32 ready for our devices.
It's very obvious if you keep an eye on the repo: http://androidhtc.git.sourceforge.n....git;a=shortlog;h=refs/heads/htc-vogue-2.6.32
The very best thing to do right know is propably to not disturb dzo more than necessary. I'm sure he'll let us know when it's has evolved to a somewhat useable state.
loserskater said:
Our kernel is .25 I think. This is what's in the nbh regardless of whether we're running Donut, Eclair, or Froyo. Froyo is just the "top layer" if you will. The kernel is what makes the hardware work with Froyo.
*I'm not 100% on this:* dzo started with .25 and has just been hacking away at it to get it where we could get each piece of hardware working on our devices. Because he's been working so hard and altered so much, it's difficult to port all of his changes to a new kernel. That's why we haven't upgraded. If we could do what dzo has done for the past 2 years on the latest kernel I'm sure there would be much improvement on our devices, but there's a LOT that needs to be done.
Click to expand...
Click to collapse
You are correct that we are using an older kernal. .25 is from before cupcake, wow.
I guess what I saw on the web was that new devices with froyo are also going to already come with .32
I wonder if there is much difference for any phone
There's already nbh for vogue with kernel 2.6.32 posted yesterday. Do You think we can use it? Of course after customizing it to Kaiser with NBHEditor.
new kernal
voyteckst said:
There's already nbh for vogue with kernel 2.6.32 posted yesterday. Do You think we can use it? Of course after customizing it to Kaiser with NBHEditor.
Click to expand...
Click to collapse
Used kernel 2.6.32 after using nbheditor, boots fine running fine so far. Shows kernel version 2.6.32.9 in android settings using Fresh Froyo. Taking it to work tomorrow to test it more.
So far from some testing gps work, 3g work, wifi got error, video works
Sent from my Full Android on Vogue using XDA App
handle223 said:
So far from some testing gps work, 3g work, wifi got error, video works
Sent from my Full Android on Vogue using XDA App
Click to expand...
Click to collapse
From my tests:
- had to reinstall whole system because of force close errors after changing nbh...
- 3g works, camera works, bt probably works (it enables, so probably it works ;-) )
- cannot even enable wifi
- probably location don't work (I wait about 15 minutes without results)
- didn't check gps
for me on pola200 camera doesnt work... bt activates, but wlan as with all devices - not working. feeling pretty smooth with this kernel...
Wifi fix - new 26/08/2010 kernel
dzo said:
I've fixed wifi on the 2.6.32 kernel. Attached is the new module, put it in /system/lib/modules. You'll also need the very latest kernel. I made some very big changes to the sd driver so this could break other things..
Click to expand...
Click to collapse
http://forum.xda-developers.com/attachment.php?attachmentid=389254&d=1282909102
Try this...
tiagoclc said:
http://forum.xda-developers.com/attachment.php?attachmentid=389254&d=1282909102
Try this...
Click to expand...
Click to collapse
Thanks, now wifi can be enabled ;-)
hello all
maybe a stupid Question how can I put the wlan.ko in the lib module
kisses
Rose Red
Hi Rosered,
you must put it into androidinstall.tar(tgz) and reinstall it,(keep the data, don't wipe it).
That what I have done.
vArrow said:
Hi Rosered,
you must put it into androidinstall.tar(tgz) and reinstall it,(keep the data, don't wipe it).
That what I have done.
Click to expand...
Click to collapse
No, You don't have to reinstall. You can mount /system partition rw and replace old one wlan.ko in /system/lib/modules/
Use this android update
thx all for your help
kisses
Rose
haret
Did someone try haret already? I've problems with zimage 2.6.32 ...it hangs on startup...can someone drop here the haret.exe, initrd and default.txt ?
Hugs

[HOWTO] Build CM10 For The I957

First things first: THANK YOU to all those involved in the coding of this, especially the msm8660-common kernel that so many folks have put so much effort into, and Mr. Cyanogen for the device tree, etc etc. NONE of this would be possible without your efforts. I stand on the shoulders of giants in providing these instructions, the code is NOT mine, I'm just documenting this so you all can help contribute. Kindest regards to everyone who has contributed to make this possible. Your work has enabled the community to beat the vendor to the punch, yet again!
DISCLAIMER: This contains information on working with very early code as well as hacking together a completely unsupported Frankenstein build with some proprietary samsung binaries from another device (ATT Note) and I will warn you: If you aren't willing to risk bricking your device, don't even think about this. Also, I'm not so much a coder as I am a QA engineer, so I know enough to be dangerous, but I couldn't code C++ get myself out of a virtual crashing airplane if I had to. I also might not be able to help you out of a sticky situation, so... have fun at your own risk! But do have fun
Looking for binaries? See post #2
That said, it's honestly not likely any of this will brick your tab, if you know what you're doing, but... early software always carries danger, and using binaries from a similar yet different device can do who knows what.
Also of note: you should probably back up your EFS partition if you're going to hose with the radios to get cellular data working... hasn't been an issue for me, but... corrupt EFS partition = no more cellular data for you. ever.
Cyanogen has added initial support for the i957 to the CM10 repository, and it's looking good so far! But, there are no nightly builds yet, probably because Cyanogen would like to do some more work on it before handing out binary packages... Or maybe he hasn't figured out how to get things quite functional yet. I considered releasing a binary package for you to toy with, but then realized that would defeat the purpose of helping along the development of an official Cyanogen i957 (p5att) release, and lock you into something I already built from "pre-alpha" code. It's best to check out the latest source tree and do your own build, then you can easily test and contribute your modifications, should you find any.
So with that, here's some instructions on how to build CM10 for your SGH-I957 ("p5att") device from source code. This will also ensure time is spent doing development work, not hand-holding the faint of heart (sorry, sue me!)
These instructions assume you've successfully built Cyanogenmod for a supported device and understand the basics of getting things going. If not, start with that first, then come back to this. I'm also assuming you've got the android tools that you get from any build of cyanogen (like mkbootimg) in your path for some of the "optional" steps, which is of course elementary...
I'm also going to assume you know what to do with the resulting zip... You know... backup, factory reset, wipe system, flashy the zippy...
I really recommend doing the boot image modifications after the build, without ADB on boot, if something goes wrong, you'll have no way of knowing whats going on. If you get the boot image modified properly as detailed below, you will be able to ADB to the device as soon as the second boot logo disappears. Also, there's probably a cleaner way (like changing something somewhere to invoke one of the other case statements in init.qcom.usb.rc), but I didn't have any luck with that. Feel free to school me! :laugh:
EDIT: If you don't feel like hacking the boot image, just flash the one attached (ps: none of the zips below are TWRP/CWM flashable, just zipped up files.. dd if=bootimagefilename of=/dev/block/mmcblk0p8 from a root shell to flash the boot partition on the i957)
I've attached the initlogo.rle file to this post so you don't have to fish it out of the ramdisk embedded in the stock boot image. Adding initlogo.rle to the ramdisk gives you confirmation the kernel is bootstrapping, and it's disappearance indicates ADB is now available. Also, use a linux box for ADB! silly wabbit, windoze is for kids.
According to comments in system.prop, the cyanogenmod boot animation is disabled because the framebuffer is "weird". Strangely, it sometimes displays for me, one in 10 boots maybe. Weird!
Here goes.
----
Initialize Repo:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
Sync Repo:
repo sync -j6
... Coffee Break!
Breakfast for p5att:
. build/envsetup.sh && breakfast cm_p5att-userdebug
Modify device/samsung/p5att/BoardConfig.mk to clean up a few things:
Comment out:
#BOARD_SDCARD_DEVICE_PRIMARY := /dev/block/mmcblk1p1
#BOARD_SDCARD_DEVICE_SECONDARY := /dev/block/mmcblk0p28
#BOARD_SDEXT_DEVICE := /dev/block/mmcblk1p2
Add above these lines:
BOARD_HAS_SDCARD_INTERNAL := true
Modify device/samsung/p5att/device-proprietary-files.txt:
Comment out all the entries, because they aren't really needed and probably dont work with jellybean. Worry about this later, blah blah.
Modify device/samsung/msm8660-common/common-proprietary-files.txt:
Comment out all the WiFi stuff, that is, like:
# Wi-Fi
# etc/wifi/bcm4330_apsta.bin
#etc/wifi/wl
#etc/wifi/nvram_net.txt
#etc/wifi/wpa_supplicant.conf
#etc/wifi/bcm4330_p2p.bin
#etc/wifi/bcm4330_sta.bin
#etc/wifi/bcm4330_mfg.bin
#etc/wifi/nvram_mfg.txt
To get WiFi working later, you need /system/etc/wifi/* from your honeycomb image. Go save them to /sdcard/wifi or something like that now, so you can just copy them over after CM10 boots
Edit: attached the files
Extract proprietary files from i717 Note CM10 image, since I have no idea where else to get these files, and they work:
from device/samsung/p5att, run ./extract-files.sh <path to an extracted CM10 i717 nightly .zip>
... The path you provide should contain the "system" folder.. IE the root of the extracted nightly zipfile.
I had used the 0831 nightly with luck here.
Get prebuilts:
run vendor/cm/get-prebuilts
Do the build:
from the system directory of your CM10 source tree run:
. build/envsetup.sh && brunch p5att
Go find something or someone to do, this is going to take a while...
You'll end up with a .zip file to flash.
After you flash, you'll need to, manually:
1) Copy back the /system/etc/wifi/* files (wifi firmware/tools, the note ones dont seem to work).
2) Install a Skyrocket ICS AT&T radio if you want cellular data, the honeycomb radio doesn't seem to work with CM10. UCLF6 works for me, although it's slower to acquire LTE than the official samsung HC image... but it works great once it finds a cell, and HSPA comes up pretty fast.
3) Consider doing the stuff below to enable early ADB and add back the second samsung logo, for debugging purposes, if you care...
----
Things you might want to do after the build, start by unzipping the resulting .zip pacakge...
Edit: I attached a the resulting boot.img to this post so you don't have to do all this if you so desire. Bonus: working i957 JB kernel binary for whatever else you might want to do with it..
Remove the assert for platform type if your TWRP recovery, like mine, thinks it's a i717 Note:
Edit META-INF/com/google/android/updater-script, remove the assert lines (first two lines of that file)
Do some handy ramdisk hacks:
First, unpack the boot image. From the root of what you unzipped:
mkdir boot
unpackbootimg -i boot.img -o boot
cd boot
Then Unpack the initial ramdisk:
mkdir rd
cd rd
zcat ../boot.img-ramdisk.gz | cpio -id
Edit init.qcom.usb.rc to enable early adb:
Search for "on property:sys.usb.config=mtp", you'll find: (line 340, for me)
on property:sys.usb.config=mtp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/f_acm/acm_transports tty
write /sys/class/android_usb/android0/functions mtp,acm
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state $sys.usb.config
Make this section like:
on property:sys.usb.config=mtp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/f_acm/acm_transports tty
write /sys/class/android_usb/android0/functions mtp,acm,adb
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state $sys.usb.config
Add the glowing samsung initlogo:
Copy initlogo.rle from the root of a stock ramdisk to the root of this ramdisk
... So you'll get the second samsung logo, so you know the kernel is bootstrapping... if you care.
Turn off ro.secure:
Edit default.prop in the root of the ramdisk and change:
ro.secure=1
to
ro.secure=0
Repack the ramdisk:
find . | cpio -o -H newc | gzip > ../boot.img-ramdisk.gz
(you may want to save the original, if you care)
Make the new boot.img:
cd .. (ie get back to the directory with the files listed in the next line)
rm ../boot.img
mkbootimg --kernel boot.img-zImage --ramdisk boot.img-ramdisk.gz --cmdline "console=ttyHSL0,115200,n8 androidboot.hardware=qcom" --base 48000000 --ramdiskaddr 49400000 --pagesize 2048 -o ../boot.img
Repack the flashable zip:
cd .. (ie get back to where you unzipped the original flashable .zip)
rm -rf boot (remove the extracted boot.img and ramdisk under it, save it somewhere if you care)
(also remove the original .zip from here if you extracted it in the cwd)
zip -r ../somezipname.zip .
Then flash somezipname.zip or whatever you called it..
(Remember you'll need to put the Honeycomb files from /system/etc/wifi into /system/etc/wifi of the running image after you boot if you want wifi
(And flash a Skyrocket ATT radio if you want cellular data!)
WARNING: FOR SAMSUNG SGH-I957 NORTH AMERICAN DEVICES ONLY
GT-SERIES (IE: GT-7320, etc) ARE NOT SUITABLE FOR THIS RELEASE
UPDATE ZIP DOES _NOT_ CHECK YOUR PRODUCT CODE, WILL HAPPILY EAT OTHER DEVICES
THIS IS A TEST RELEASE FOR EXPERIENCED ANDROID HACKERS
SOME FEATURES MAY NOT BE USABLE OR WORK AS INTENDED
BOOTLOOP ISSUE? USE TWRP 2.1.4: https://www.dropbox.com/s/u07zrx808a5ae2z/i957_twrp_recovery.img.tar
Latest Flashable .ZIP, update 7: http://droid.arm.ee/957/cm10_p5att_nrvate_testrelease7.zip
Use TWRP, factory reset and wipe /system if you are coming from another ROM. Don't forget to install google apps http://wiki.cyanogenmod.com/index.php?title=Latest_Version/Google_Apps
Update 2
* h264 hardware decode fixes for youtube HQ and other hardware-decode enabled apps (vidc/yamato firmware update)
* camera fixes from kunals.shah -- thanks!! (camera library in system/lib/hw)
* wifi address fix - get MAC from EFS, no more random address (insert proper path to .nvmac.info in dhd.ko kernel module)
* move /mnt/secure to internal sdcard to fix asec apps (asec folder linked to /sdcard/.asec)
* disable adb on early boot -- fix mtp maybe? (change to init scripts in ramdisk)
* remove a couple of (probably) harmless references to sdcard1 in init scripts
* update vold.fstab with the correct partition for the sdcard (26), not sure if anything even uses that, but...
Update 3
* Kernel Lovins ->
--- Picked up slew of bugfixes from msm8660-common cyanogenmod jellybean kernel tree -- up to and including 09/13/2012 commits.
--- Enabled CONFIG_USB_ANDROID_SAMSUNG_MTP and CONFIG_SPI_QUP kernel options to match SHV-140 ICS samsung kernel config
--- Disabled CONFIG_XVMALLOC and CONFIG_ZRAM kernel options, also to match up to SHV-140 ICS samsung kernel config
--- Now compiled with newest Sourcery cross-compiler
--- Modified dhd.ko (Broadcom WiFi kernel module) -- you can now create file /data/.ranmac if you want your MAC address randomized on each reboot (ignores MAC on EFS partition, random generation expanded to 5 bytes)
* symlink for light sensor (/dev/i2c11 -> /dev/i2c-11) -- Doesn't fix auto brightness, but at least things that access the light sensor via the standard API will get values back now, FWTW.
* RIL stuff from SHV-140S (korean Tab 8.9 LTE) -- An attempt to resolve SIM_NOT_READY error -> Files replaced:
/system/lib/libril-qcril-hook-oem.so
/system/lib/libsecril-client.so
/system/lib/libreference-ril.so
/system/lib/libril.so
/system/lib/libril-qc-qmi-1.so
/system/bin/qmuxd
/system/bin/qmiproxy
/system/bin/netmgrd
* Update /system/etc/wifi stuff -- newer broadcom firmware images, wpa_supplicant.conf with p2p parameters
* Reenable early ADB since it appears MTP issues likely related to lack of CONFIG_USB_ANDROID_SAMSUNG_MTP kernel option -- Maybe someone who uses MTP can tell me whats up now?
Update 4
* Fix A2DP bitrate (48000 -> 44100 in /system/etc/audio_policy.conf)
* More invasive ASEC fix that might actually fix this jellybean nonsense (modified vold to use /data/secure locations, create /data/secure directory tree in init.emmc.rc)
* Revert SHV-140 RIL change, back to Note CM10 RIL libraries
Update 5
* Android 4.1.2 - Complete rebuild from CM10 tree retrieved on October 12th. Includes ASEC hack as in update4.
* SGH-i957 Radio Information Libraries (RIL) from official Telus ICS image - Thanks Dan!
Update 6
* Rebuilt from CM10 source code retrieved Nov 10 2012. ASEC hack applied.
* Update to latest msm8660-common kernel. Kernel unmodified (ie: no overclocking).
Update 7
* Rebuilt from CM10 source code retrieved Dec 20 2012. ASEC hack applied.
* Update to latest msm8660-common kernel. Kernel unmodified (ie: no overclocking).
Fantastic!
Are you saying everything seems to work pretty well except the 4G radio? (No guarantees, at my own risk, etc. etc. I know, I won't blame you)
If so, I'm going to try this right away. I don't have a data plan for my SIM, and haven't used the 4G yet. (Got a free upgrade from the wifi version after some shipping trouble with the vendor.)
The Galaxy Tab has been kind of a letdown when I have JB on my Galaxy Nexus and Kindle Fire both, and the "upgrade" is a bit disappointing since I checked on custom ROMs *before* I ordered, but the AT&T version is further behind.
Thanks for your hard work! I'll let you know what happens.
YellowRex said:
Fantastic!
Are you saying everything seems to work pretty well except the 4G radio? (No guarantees, at my own risk, etc. etc. I know, I won't blame you)
Thanks for your hard work! I'll let you know what happens.
Click to expand...
Click to collapse
I haven't had time to try "everything", but the stuff that I use on a regular basis is mostly functional. There's quirks, but... It's usable!
For example, one thing I just found out.. the Adreno (qualcomm MSM graphics) drivers aren't production-build.. There's no such thing available -- The current drivers available from qualcomm are "early sample" binaries for jellybean bringup testing, which is what this is... So, I've seen the random screen flicker, etc. Remember there are only a few devices with tested jellybean images, and most of them are google devices... And the i957 will probably never see an official JB release.
https://developer.qualcomm.com/mobi...phics-optimization-adreno/tools-and-resources
This release contains an early sample of the user-mode driver binaries for Qualcomm's Adreno 2xx GPU on Google Android 4.1 Jelly Bean. It has been tested with the CAF release M8960AAAAANLGD105210.1 and supports any Adreno 2xx GPU on Android 4.1 Jelly Bean. This release is intended only for developers that work on Jelly Bean bring-up work. It is an early release sample which will be replaced by a new driver binary in the future.
Click to expand...
Click to collapse
I'm sure there's plenty of little quirks you can find if you "twiddle all the knobs and flip all the switches" -- But it's certainly testable, and way closer to the "usable" end of the spectrum than the "barely functions" end.
Cheers!
PRE-ALFA CM10 Build
You did a great job nrvate !!. you inspired me to get ICS/JB on my SGH-i957. I did try your method and seems everything (3G, SMS, GPS, Bluetooth, Camera etc..) works except wifi. I am surprised that Voice calling is also working in this build !!! I will update you once I fix wifi issue. and also provide CWM/TWRP/ODIN flashable build if time permits.
Cheers !!
-KS
Its so exciting to see some real pregress.
Sent from my SAMSUNG-SGH-I957 using xda app-developers app
Ditto. This is really good news. Thanks.
Cheers, y'all!
Only thing I had to do to get wifi working was stuff the original stuff (from honeycomb) in /system/etc/wifi.
first thing I'd do is make sure the dhd module is getting loaded.. dmesg will print your kernel log that'll show problems with loading that module.. also, try rmmod dhd and insmod dhd, see what happens.
If the DHD module doesn't report symbol errors or some nasty like that, make sure it's loading the firmware -- That'll probably leave an error in dmesg also if it's broke.
also check logcat for wifi-related nastiness
If you can find a specific problem post it and I'll try to help reproduce/solve.
Also working on hacking together a build of ICS based on what's been done with JB, but no idea how that's going to turn out yet. It'd be nice to have as a daily until qualcomm releases production-grade adreno graphics drivers (and, the CM9 ICS tree is now "final", might as well build it!)
update: due to needing the "late model" msm8660-common kernel for proper i957 device support, the later qualcomm (JB) graphics drivers are required too.. drat! however, looks like I'll still be able to hack together a build of CM9 based on the current "final" ics branch using the JB kernel and beta qualcomm graphics. got 'er booted, working out the kinks now. I'll start another thread for that when it's done
i wish i knew half as much as you do, keep up the good work!
orlandoxpolice said:
i wish i knew half as much as you do, keep up the good work!
Click to expand...
Click to collapse
Thanks! Learning as I go with half this.. It's just bits, try one way, get dirt.. try another way, get bacon!
Some of this is so touchy.. ie kernel versions vs adreno drivers, blah blah.. seeing what the SHV-140 kernel does.. it boots CM9, now to see if it'll play nice with video decoders. might forget CM9, i <3 jelly beans anyways!
nrvate said:
Thanks! Learning as I go with half this.. It's just bits, try one way, get dirt.. try another way, get bacon!
Some of this is so touchy.. ie kernel versions vs adreno drivers, blah blah.. seeing what the SHV-140 kernel does.. it boots CM9, now to see if it'll play nice with video decoders. might forget CM9, i <3 jelly beans anyways!
Click to expand...
Click to collapse
Solid work/mashery my friend. This indeed great news. I am currently waiting for my zip file to spit out, do a few mods and then give it a flash when I complete those things.
As far as the adreno drivers have you checked the site for them? I recall reading about them on another msm8660 device and perhaps may pertain to this project as well. The screen flicker has a few work arounds based on other devices that may relate to this device as well. Either to get rid of the flicker entirely or at least minimize them. Worth trying (here are a few I have seen work on some devices.. dev options, disable HW overlay, another is adjusting the debug.mdpcomp.maxlayer value in build.prop from 3 to 2, another is to set the min CPU freq to 486mhz).. last but not least, this was posted on cyanogenmod review, and can be cherry picked if not merged already: http://review.cyanogenmod.com/#/c/22782/ and may work. As far as getting LTE to light up in a more prompt manner, it may be worth exploring different modems (I see you are using UCLF6 from the i717 note), there are many others from the i717 leaks (ie. UCLF5, UCLE2/3, etc etc) and also of course any other Skyrocket ICS+ modems, as well as i717m (canadian, rogers modems such as XLA2 (gingerbread but worked on the i717 note in the US) and various others. If you cannot located them I will post links when I have more time. This is a great start, and I will help out when I have time to contribute to this project (I have a few on my plate plus a full time job so sometimes having the time is a difficult venture). In any case, great start and I can see this will progress very well in due time. Congrats and thanks for your contribution to the base of this, as this progresses and we work to manage these small issues, we will have something even solid
Regards,
th3g1z
th3g1z said:
Solid work/mashery my friend. This indeed great news. I am currently waiting for my zip file to spit out, do a few mods and then give it a flash when I complete those things.
As far as the adreno drivers have you checked the site for them? I recall reading about them on another msm8660 device and perhaps may pertain to this project as well. The screen flicker has a few work arounds based on other devices that may relate to this device as well. Either to get rid of the flicker entirely or at least minimize them. Worth trying (here are a few I have seen work on some devices.. dev options, disable HW overlay, another is adjusting the debug.mdpcomp.maxlayer value in build.prop from 3 to 2, another is to set the min CPU freq to 486mhz).. last but not least, this was posted on cyanogenmod review, and can be cherry picked if not merged already: http://review.cyanogenmod.com/#/c/22782/ and may work. As far as getting LTE to light up in a more prompt manner, it may be worth exploring different modems (I see you are using UCLF6 from the i717 note), there are many others from the i717 leaks (ie. UCLF5, UCLE2/3, etc etc) and also of course any other Skyrocket ICS+ modems, as well as i717m (canadian, rogers modems such as XLA2 (gingerbread but worked on the i717 note in the US) and various others. If you cannot located them I will post links when I have more time. This is a great start, and I will help out when I have time to contribute to this project (I have a few on my plate plus a full time job so sometimes having the time is a difficult venture). In any case, great start and I can see this will progress very well in due time. Congrats and thanks for your contribution to the base of this, as this progresses and we work to manage these small issues, we will have something even solid
Regards,
th3g1z
Click to expand...
Click to collapse
Thanks for the input! The flicker, as is, is really minor. It only really seems to happen, for me atleast, in the main launcher window and sometimes when scrolling in maps. It's intermittent, actually. I will have a look at that change you linked, nice catch!
Qualcomm's dev site is linked in post #4, hopefully they will post the final drivers soon. Do they have another site that would receive them faster, or with incremental builds? I really wish OEMs would share engineering builds more openly with the community, but I guess I'm just used to being on an engineering team, lol. I've been spoiled with working for a few of the larger OEMs and getting all the cool toys first...hehe.
I tried a few of the note ICS radios, got nothing at all from them besides errors in logcat -b radio, wouldn't bring up the SIM.
All the skyrocket radios seem to work to varying degrees.
Also, it may be more of the RIL -- The UCLF6 skyrocket modem works very nicely on the stock honeycomb image, insta-LTE and everything.
I have not tried any of the non-ATT radios... wasn't sure how that'd work out. I'll give some of the non-ATT radios a go, why not! Besides Skyrocket or Note, any other similar devices? Only thing I can think of is the SGS II LTE HD (SGH-i757) but not much is available for that device as AT&T punted it for the S III (747) and it never got popular.. If you want the HD screen, you get a S-III, which came out about a month later, which is just why ATT punted it all together.
I hear you on the job. I've got an interview lined up for a better one, too! Man, I'm hoping that works out!
nrvate said:
Thanks for the input! The flicker, as is, is really minor. It only really seems to happen, for me atleast, in the main launcher window and sometimes when scrolling in maps. It's intermittent, actually. I will have a look at that change you linked, nice catch!
Qualcomm's dev site is linked in post #4, hopefully they will post the final drivers soon. Do they have another site that would receive them faster, or with incremental builds? I really wish OEMs would share engineering builds more openly with the community, but I guess I'm just used to being on an engineering team, lol. I've been spoiled with working for a few of the larger OEMs and getting all the cool toys first...hehe.
I tried a few of the note ICS radios, got nothing at all from them besides errors in logcat -b radio, wouldn't bring up the SIM.
All the skyrocket radios seem to work to varying degrees.
Also, it may be more of the RIL -- The UCLF6 skyrocket modem works very nicely on the stock honeycomb image, insta-LTE and everything.
I have not tried any of the non-ATT radios... wasn't sure how that'd work out. I'll give some of the non-ATT radios a go, why not! Besides Skyrocket or Note, any other similar devices? Only thing I can think of is the SGS II LTE HD (SGH-i757) but not much is available for that device as AT&T punted it for the S III (747) and it never got popular.. If you want the HD screen, you get a S-III, which came out about a month later, which is just why ATT punted it all together.
I hear you on the job. I've got an interview lined up for a better one, too! Man, I'm hoping that works out!
Click to expand...
Click to collapse
I hear you on OEM not releasing the drivers in a timely fashion, and it is frustrating when you have sources for it as "leaks" .. pertaining to your question I did see a link to update drivers but in my 5 min search (short on time atm, work early in the morning), I didn't find it yet, but I will look a bit deeper and hopefully can find it. I recall it related to CM10 and addressing said drivers for a particular device or devices. I will see what I can find tomorrow, and hope that it pertains.
No harm in trying a few other modems, I would look at the i717/i717m (m is the canadian model, same device though and the modems from rogers work with the i717 as well as the skyrocket).. and obviously the skyrocket various modems which it seems you have tried at least a few of. They vary so much and your location has a lot to do with it. Some work better in certain areas, and others in other areas as I'm sure you know already. Worst case, even after trying a few you can always go back to UCLF6. I found it a bit odd that the rogers modems worked with ATT but hey I'm not complaining about that one I believe you are correct, however, pertaining to the RIL as being the issue, not so much the modem's themselves. (no telling though without trial/error)
I'm not sure the i747 modems would work or not, but, it will not hurt to try, as you can return to UCLF6 if it is a dead end. the i757 I have yet to even see, so I can't comment on that in particular.
I'd like to chat a bit more when we both have some time, not sure if you get on IRC (freenode network) at all but if you do look me up, same handle as here on XDA. It would be easier to chat that way.
I have more to say but having to be away in about 4 hours, I will have to get back to you. Good luck w/ the interview bud.
Take care, we'll catch up soon.
~th3g1z
th3g1z said:
I hear you on OEM not releasing the drivers in a timely fashion, and it is frustrating when you have sources for it as "leaks" .. pertaining to your question I did see a link to update drivers but in my 5 min search (short on time atm, work early in the morning), I didn't find it yet, but I will look a bit deeper and hopefully can find it. I recall it related to CM10 and addressing said drivers for a particular device or devices. I will see what I can find tomorrow, and hope that it pertains.
No harm in trying a few other modems, I would look at the i717/i717m (m is the canadian model, same device though and the modems from rogers work with the i717 as well as the skyrocket).. and obviously the skyrocket various modems which it seems you have tried at least a few of. They vary so much and your location has a lot to do with it. Some work better in certain areas, and others in other areas as I'm sure you know already. Worst case, even after trying a few you can always go back to UCLF6. I found it a bit odd that the rogers modems worked with ATT but hey I'm not complaining about that one I believe you are correct, however, pertaining to the RIL as being the issue, not so much the modem's themselves. (no telling though without trial/error)
I'm not sure the i747 modems would work or not, but, it will not hurt to try, as you can return to UCLF6 if it is a dead end. the i757 I have yet to even see, so I can't comment on that in particular.
I'd like to chat a bit more when we both have some time, not sure if you get on IRC (freenode network) at all but if you do look me up, same handle as here on XDA. It would be easier to chat that way.
I have more to say but having to be away in about 4 hours, I will have to get back to you. Good luck w/ the interview bud.
Take care, we'll catch up soon.
~th3g1z
Click to expand...
Click to collapse
I'll hit you up on IRC at some point for sure
So I sort of figured it out... Found how to get the radio to play nice, still don't know why... The kernel! Went back to the 3.0.8 kernel as provided by samsung for the SHV-140 (replaced zImage in boot.img, reflashed mmcblk0p8) and BAM. Nice quick 4G. Nothing in /system changed (so a bunch of other stuff broke) but the radio sure got happy.
Not sure what the difference is, quite yet... Should be an interesting needle in the hackstack for sure.
Is the package manager a problem with this the same as cm9?
Sent from my SGH-I727 using xda premium
orlandoxpolice said:
Is the package manager a problem with this the same as cm9?
Click to expand...
Click to collapse
yes, the issue actually originated with jellybean -- since there's no device tree in the cm9 repo for the p5att, i jammed the cm10 p5att device tree into cm9 source to make it happen. the device tree includes the init scripts, so the problem actually originated from cm10, lol.
same fix works.. mount tmpfs on /mnt/secure (in addition to /tmp/asec) and use wide-open (777) permissions.
nrvate said:
same fix works.. mount tmpfs on /mnt/secure (in addition to /tmp/asec) and use wide-open (777) permissions.
Click to expand...
Click to collapse
Heh! Is it just me or does that feel a little less than 'secure'? :silly:
i feel like a english lit major walking into an advanced calculus class with this jargon
This is how the sausage gets made.
Speaking of making sausage, I'm starting to think this is stable enough to share a binary build...
1) Camera is borked. I'm at a bit of a loss to figure it out, maybe I'll try again next week -- Suggestions very welcome, I'd like to get this working for video chat ala skype / gtalk.
2) MTP is borked. Again, at a bit of a loss, I suppose I'd care if I used it... Silly MTP.
3) New kernel fixes radio issues (mostly) - I've had it completely refuse to come up, showing no signal, fixed by rebooting the tablet. Goes right to LTE, but defaults to HSPA only. Change to LTE / GSM / WCDMA in mobile network settings -> network mode.
4) /mnt/asec / /mnt/secure issue (play store install problems) resolved.
5) FC in Settings -> Storage resolved by removing sdcard1 (which will never exist) from the build config
6) Boot animation is disabled due to framebuffer problems (supposedly) -- i know the spinny thing is cool, but you'll have to live with a black screen. Strangely, it comes up on some boots. lol.
7) Qualcomm graphics drivers are still the pre-release version. They seem to work pretty nice though. Haven't seen any of the flickering since some mdp changes in the kernel.
8) Video codecs aren't as screwed up as they are in the ICS build I did -- IE youtube works for all the videos I tried and bsplayer for android nicely plays my favorite x264 720P tv shows (win! gotta keep myself entertained at work some how...)
9) overclocked kernel HACK WARNING for you purists -- Modifed the kernel slightly, it now recognizes all MSM8660's as having the higher binned speed (1.66 vs 1.50 ghz) -- I didn't touch the frequency tables or anything, since it made more sense to just recognize the parts as 1.66ghz parts. Also, removed the logic that limited single-core mode to 1.2ghz (why?!). Gabe put out a OC kernel and most people reported stability at 1.7+ ghz, so... 1.66 seemed good. Hasn't borked for me. If you want stock speeds bad enough or run into problems.. http://d-h.st/8mB
Usual procedure, TWRP.. factory reset, wipe system, flash zip, receive bacon.
Bacon: http://d-h.st/Klu
I've been using this as my daily the past few days, and unless it starts behaving badly for some reason, it's probably going to be my daily for the foreseeable future. Really want to get the cams working, though!
Please share other issues. There has to be something else horribly broken I haven't noticed.
Usual "may make zombies run out of your tablet" warning applies to this test software.
Enjoy!

[KERNEL][SOURCE][android_kernel_lge_msm7x27-3.0.x (3.0.8)]

I waited to post this over here until it was debugged and all the hardware works.
Even though this forum's been kinda dead quiet for a while, xda gets searched and I want this source code out there.
Derived from androidarmv6 project and tweaked over to thunderc from the p500 developers' awesome work getting it running on the Optimus One.
source:
https://github.com/bigsupersquid/and...7x27-3.0.x.git
(branch squid, for lack of imagination.)
make thunderc-test_defconfig
you'll want to change or remove the toolchain path in the config. it is highly unlikely that your cross toolchain is in the same path as mine.
I set it in the config to avoid having to add "CROSS_COMPILE=/blah/blah/etc" to the make command every time I rebuild the kernel.
it is for jellybean and kitkat roms.
use on older android versions messes up various things. Especially USB.
it conflicts with /sbin/chargerlogo or /sbin/charger for offline charging and bootloops unless that file is removed.
Use the attached removecharger.zip in recovery with signature verification off for that if you don't want to edit the ramdisk yourself.
md5sum b1a9f21285e09e06dc94422a8578dc98
enjoy
@bigsupersquid Know if anyone's willing to have a stab at building Firefox OS, now with the 3.x kernel?
EDIT: Well apparently there's no full ArmV6 support in it so, I guess not...

[KERNEL] TonoKrnl for Nexus 7 (2013)

EDIT: I want to remind everyone DO NOT FILE AN UBUNTU BUG REPORT WITH THIS KERNEL INSTALLED, ALWAYS REVERT BACK TO THE STOCK KERNEL IF YOU HAVE AN ISSUE BEFORE FILING
This is my first actual Kernel project, so please be gentle.
This kernel is ONLY for the Nexus 7 (2013) flo. I do not know if it boots on the deb, theoretically it should as I don't have any flo specific options and there are config options for Deb in the Kernel configuration. It should work for those on stable, rc or rc-proposed and may possibly work on devel (not sure) as long as devel has not released a new kernel package (3.4.0-5-flo+)
I have cherry-picked some battery optimizations from bricked-flo, elementalx-flo (4.4 branch) and some additional commits elsewhere in an attempt to not only improve battery-life but also to bring some Android features (DoubleTap2Wake) to Ubuntu Touch.
Currently it has the following:
- ROW I/O scheduler
- Beginnings of OCing (pulled from ElementalX, I think I'm missing some commits to make this relevant though)
- ElementalX's kernel thermal control
- binfmt_misc support
- CD/DVD Filesystem Support for external optical drives (ISO9660/UDF)
- Some Slimbus enhancements
- Battery life optimizations (changing default MHz, etc.)
- Default CPU governor changed from Performance to Interactive (yes, they had it set to Performance, not sure why.)
- Direct Rendering Interface/Direct Rendering Manager (XFree86 + msm_kgsl_drm)
- and more!
You can check my github for the items cherrypicked into it and there is even a current release which has seen my battery drop 4% in the last 30 minutes with the screen fully on (no autolock), WiFi on and Bluetooth.
The name of the kernel is still up for change, TonoKrnl is not going to be it's final name unless everyone likes it.
Repository is at: http://github.com/ShadowEO/TonoKrnl
Releases can be found: https://github.com/ShadowEO/TonoKrnl/releases
Status of Github Repo: It builds. It boots and it runs. I am trying my hardest not to push changes that break building.
Reserved for future use. Currently the status of the kernel's updates can be found on the issue tracker: https://github.com/ShadowEO/TonoKrnl/issues/5
Be patient, if you don't see new releases right away, it's because I'm still in the process of generating them, check back later.
-- Release 1.0.3-UBports (11/19/2017): A lot was done to bring this kernel back into usable state, see below:
Added OTG Charging
Added initscripts for turning on features (Requires the rootfs to be mounted read/write for manual installation, see my latest post #16 I think...)
Created patches to be applied against a clean UBports kernel tree for certain features (right now, only DT2W and USB Charging)
(USB Host Charging was pulled from flar2's ElementalX source code, it is not turned on by default and can be turned on with
Code:
echo 1 > /sys/module/msm_otg/parameters/usbhost_charge_mode
Feature is tested and does work.
Developers:
1.0.3 brought the kernel tree back into a buildable state and also cleaned up some problems with the previous releases. I am in the process of generating a kernel patchset which will be able to be applied to a clean kernel to bring those features to the stock UBports kernel source. After I complete generating the kernel patchset, I will be rebasing the entire kernel project onto a clean tree (As I am absolutely certain that I have problems like unfinished cherry-picks [missing commits] etc.). Be patient regarding these patches, as I am re-adding the features I pulled in originally by hand rather than cherry-picking them as I appear to have fuxxed up somewhere cherry-picking previously.
If you have any random reboots, try:
Code:
echo 1 >/sys/module/msm_watchdog/parameters/runtime_disable
If you still receive random reboots afterwards or if you received them previously but the above command fixes them, please open an issue on my project tracker with a copy of /proc/last_kmsg attached.
Kernel TODO:
Generate kernel patchset and then rebase onto clean kernel tree
Finish Kernel Feature Documentation and publish (these docs will give information on tweaking the changes to the kernel, such as readahead buffer, turning on/off DT2W, turning on/off usbhost charging, etc.)
Move TonoKrnl initscripts into ramdisk, should make them more robust and reliable.
Create ZIP installer for TWRP recoveries (this is needed for automatic installation of kernel modules, since /lib/modules is a read-only, bound mountpoint for the Android LXC container. To fix this, we just have to move /lib/modules out of the Android container.
Allow me two questions:
Which kernel repository is this branched off? Apologies if that is dumb question, my git and kernel knowledge is cursory at best, but I can't seem to figure this out looking through your github repo.
ShadowEO said:
- Direct Rendering Interface/Direct Rendering Manager (XFree86 + msm_kgsl_drm)
Click to expand...
Click to collapse
What's the intention behind this? Does this have anything to do with enabling the freedreno driver for the GPU and would that pave a way to a setup without Mir, but with wayland or X?
doniks said:
Allow me two questions:
Which kernel repository is this branched off? Apologies if that is dumb question, my git and kernel knowledge is cursory at best, but I can't seem to figure this out looking through your github repo.
What's the intention behind this? Does this have anything to do with enabling the freedreno driver for the GPU and would that pave a way to a setup without Mir, but with wayland or X?
Click to expand...
Click to collapse
This started off with the debian source package for linux-image-flo in the Ubuntu archives which is the kernel for our device. The reason you are having trouble with figuring it out is because I started with the base (Ubuntu's 3.4.0-5-flo+), pulled it into an empty git repo and then started cherry-picking features. It was originally going to be for my own personal consumption as I didn't know how well a custom kernel would be received by the touch community (so far, in all the communities I've posted it, you were the only one to ask any questions ), but since I already had a git repo up, figured that I may as well share it. So here I am, an amateur working on the Linux kernel, and learning a lot.
My full intent was to improve the experience (even marginally) on Ubuntu Touch for the Nexus 7 2013, I wanted to bring the mobile kernel features previously found on the desktop that myself or others may find useful (hence binfmt support for qemu-user), there really is no reason for me to turn on DRI/DRM except to allow playing with Wayland and X, yes, that part is correct, and I have tested the freedreno driver with it (Freedreno does get the KGSL DRI device and does start X)
In addition I found some interesting choices in the kernel in terms of battery life, it would seem that the CPU governor used by the default Ubuntu Kernel is Performance, which would explain why the battery dies so fast, I tried to pull in some battery optimizations from a couple other kernels around the Android scene for the device. So far I'm pleased with the results, and recently found that both the original cherry-picking done for DT2W worked along with the code to add fast charging.
I've had to put the project on hold due to work issues, but once I'm able to work on it again, I'm reverting the last 100 changes pulled in that broke my tree and going from there since my original targets in terms of features actually worked. (I'm pretty sure it was some recent changes to the CPU hotplug driver that killed it, I can no longer compile the kernel without mpdecision on, so that's my likely suspect.)
Thanks for your explanations!
ShadowEO said:
This started off with the debian source package for linux-image-flo in the Ubuntu archives which is the kernel for our device.
Click to expand...
Click to collapse
So something like apt source linux-image-flo? And then to build you use the instructions in the package also?
there really is no reason for me to turn on DRI/DRM except to allow playing with Wayland and X, yes, that part is correct, and I have tested the freedreno driver with it (Freedreno does get the KGSL DRI device and does start X)
Click to expand...
Click to collapse
Exciting!
In addition I found some interesting choices in the kernel in terms of battery life, it would seem that the CPU governor used by the default Ubuntu Kernel is Performance, which would explain why the battery dies so fast
Click to expand...
Click to collapse
I'm really only speculating, but my conjecture to previous mentions of odd govenor choices in android kernels was that the actual android power management magic is happening behind the backs of the governors. But, I'm really just babbling. I don't know much of anything about this. You seem to be getting impressive improvements!
I'm reverting the last 100 changes pulled in that broke my tree and going from there since my original targets in terms of features actually worked.
Click to expand...
Click to collapse
So, that means: "If you want to try it now, don't use v1.0.2, but use v1.0.2-alpha for now." Is that about correct?
doniks said:
Thanks for your explanations!
So something like apt source linux-image-flo? And then to build you use the instructions in the package also?
there really is no reason for me to turn on DRI/DRM except to allow playing with Wayland and X, yes, that part is correct, and I have tested the freedreno driver with it (Freedreno does get the KGSL DRI device and does start X) Exciting!
In addition I found some interesting choices in the kernel in terms of battery life, it would seem that the CPU governor used by the default Ubuntu Kernel is Performance, which would explain why the battery dies so fast
I'm really only speculating, but my conjecture to previous mentions of odd govenor choices in android kernels was that the actual android power management magic is happening behind the backs of the governors. But, I'm really just babbling. I don't know much of anything about this. You seem to be getting impressive improvements!
I'm reverting the last 100 changes pulled in that broke my tree and going from there since my original targets in terms of features actually worked. So, that means: "If you want to try it now, don't use v1.0.2, but use v1.0.2-alpha for now." Is that about correct?
Click to expand...
Click to collapse
I removed the problem download, the only ones available are the source tree downloads and the last known good build I had, I have also tested to ensure that the last build up there works as well as it's the one I'm running on my device until I have time to go through the tree again.
As for building, essentially yes, but you have to build the image separately. Due to how Ubuntu currently has the filesystem set up and with Android's boot images, its not feasible to really package it in a traditional sense. Essentially what I did was create a chroot, apt-get source linux-image-flo and then to get a working defconfig I used the config.* files found in Debian.flo and Debian.master, from there was the tree that I used as my base.
Then run make with the following to customize:
Code:
ARCH=arm make menuconfig
ARCH=arm make -j <number of processors>
To build the image, you'll need to grab the boot image from your device and tear it apart using a abootimg them rebuild it with the Ubuntu ramdisk. If you are using MultiROM, you can just drop it in the folder for your ROM.
Edit: As for the weird choice of governors, I noticed during my investigations (via the cpufreq-info package) that while Android is managing the CPUs that are online (I found it's running it's own version of mpdecision behind the scenes inside the LXC container), it's not doing anything to the CPU governor. That's all managed in the kernel right now through CPUFreq it appears and in the stock kernel it's set to performance, as for the reason for it, I'm not sure myself.. The other governors ARE there though, just unused right now.
ShadowEO said:
This kernel is ONLY for the Nexus 7 (2013) flo. I do not know if it boots on the deb, theoretically it should as I don't have any flo specific options and there are config options for Deb in the Kernel configuration.
Click to expand...
Click to collapse
Jup, it does boot on my deb! I've downloaded the .img, put the tablet in bootloader mode and did
fastboot boot TonoKrnl-1.0.2-flo.img
It booted without problems, and so far it's running for about half an hour or so without any problems. Wifi, sound, video, usb mouse, all work fine.
doniks said:
Jup, it does boot on my deb! I've downloaded the .img, put the tablet in bootloader mode and did
fastboot boot TonoKrnl-1.0.2-flo.img
It booted without problems, and so far it's running for about half an hour or so without any problems. Wifi, sound, video, usb mouse, all work fine.
Click to expand...
Click to collapse
Wow, that's great to hear, I wasn't sure but I was definitely curious since I had seen options for both Deb and Flo in the makeconfig page.
If you can script it in (or edit sysfs.conf) to have it write a 1 to /sys/android_touch/doubletap2wake while it's booting, you can have working DT2W and there's quite some others to mess around with under /sys :3 CPU governors are somewhere there too, just don't have it offhand.
Since you are testing it out, have you noticed any changes in the device's normal battery life? The stock kernel seems to drain 1% every 1 1/2 minutes on my Flo, not doubting that the power optimizations ARE working (I know I'm getting much better life), I'm just wanting to ensure that it's not a placebo effect that I'm experiencing.
ShadowEO said:
If you can script it in (or edit sysfs.conf) to have it write a 1 to /sys/android_touch/doubletap2wake while it's booting, you can have working DT2W
Click to expand...
Click to collapse
After
Code:
echo 1 | sudo tee /sys/android_touch/doubletap2wake
I can indeed (sometimes) wake it with double tapping. I have since quite a while (with the standard kernel) the situation that its really hard to wake up. I have to press the powerbutton many many times. Feels like it is sleeping really deeply.
Since you are testing it out, have you noticed any changes in the device's normal battery life? The stock kernel seems to drain 1% every 1 1/2 minutes on my Flo, not doubting that the power optimizations ARE working (I know I'm getting much better life), I'm just wanting to ensure that it's not a placebo effect that I'm experiencing.
Click to expand...
Click to collapse
Well, I haven't noticed anything. I might just not be in the best position to judge. I rarely have it unplugged for more than a couple of hours at a time and I don't generally monitor the battery status closely. That being said though, I have very definitely never experienced anything remotely close to 1% per 1.5 min!
If you have a particular test/measurement you'd like to see - let me know.
doniks said:
After
Code:
echo 1 | sudo tee /sys/android_touch/doubletap2wake
I can indeed (sometimes) wake it with double tapping. I have since quite a while (with the standard kernel) the situation that its really hard to wake up. I have to press the powerbutton many many times. Feels like it is sleeping really deeply.
Well, I haven't noticed anything. I might just not be in the best position to judge. I rarely have it unplugged for more than a couple of hours at a time and I don't generally monitor the battery status closely. That being said though, I have very definitely never experienced anything remotely close to 1% per 1.5 min!
If you have a particular test/measurement you'd like to see - let me know.
Click to expand...
Click to collapse
I may be exaggerating slightly, but normally my tablet goes from 100% to 95% in about 5 minutes while I'm using it after taking it off the charger (in Ubuntu only, may be an rc-proposed thing too). I haven't seen that behavior since changing kernels. I'm gonna see if I can go ahead and start reverting commits today or possibly reset back to the last known good commit.
As for the screen problems, I think there is a bug in the current doubletap2wake driver, if you look at dmesg after using DT2W for a while, you'll see it being spammed with error messages from the touchscreen driver.
That could possibly be related. Additionally, I think the minimum processor speed defaulted to 384MHz (I didn't touch any processor clock speeds in here) which the Performance governor would never had let the processor hit. So it's likely that the minimum processor speed will need bumped up at least one step there, I get some stuttery behavior on the command line when the screen is off which I hadn't received on the stock kernel.
Edit (07/01/16): I'm not sure what else I can really bring to the table here, mpdecision running in the android LXC container defeats any meaningful changes to the clock speed. I also noticed mention that you shouldn't have two hotplugging daemons running at the same time, effectively that is what the new developments would've brought in. I think my best option to continue this would be to wait until the Xenial transition and see if they make any changes for me to update on.
I'm also quite a novice, so besides cherry picking commits, I'm not sure what else I can do.
ShadowEO, is bluetooth working on your device? With your kernel or with the one from Canonical?
I can't seem to get anything at all to show up on my deb.
I am so embarrassed that I didn't check this thread in so long. Ya, Bluetooth still works on my device with either kernel. Sometimes it doesn't seem to like to power on, so if you are having trouble, try this.
Open Terminal,
do sudo bluetoothctl and see if Nexus 7 (2013) shows up in there. If it does, type power on and hit enter. You should see the bluetooth indicator show up in the status bar. If it doesn't, exit bluetoothctl and do these from a root prompt:
start bluetooth-touch
start bluetooth-touch-flo
Sometimes the commands may take a little bit of time (no idea why honestly), but after those, you should see bluetooth start. At that point, if you still don't, fully power the device down and try again.
For whatever reason, the bluetooth scripts fail every so often, haven't been able to look into it much due to personal things IRL taking up all my time the last few months.
It's been a long while since I touched this project, but I have finally cleaned up the kernel source tree and ensured that it builds properly!
Two features that must remain disabled however are GOVERNOR_ELEMENTALX and MSM_SLEEPER as they are currently broken and do not function as of right now. The defconfig for flo also has sane defaults for the UBports Ubuntu Touch distribution (installable via the UBports installer application) and has DT2W enabled (but not turned on, that requires some extra work) by default.
You should also no longer need to disable the MSM watchdog using the instructions in the OP, running the kernel now and haven't experienced near as many random reboots I used to with the previous version! (I wonder if that was a UTouch problem, because I DO get random reboots sometimes using certain apps, but they're very rare... Then again, I'm not sure if UBports made any initramfs changes for the Flo when they added it to their system-image server, which they may have, since it's in the ubports-touch/15.04 distribution instead of their ubuntu-touch mirror for older, no-longer supported devices)
To turn on DT2W, you must follow the instructions on the github page for the 1.0.2 release.
NOTE: I highly recommend building the kernel from source rather than downloading a release! I have yet to add the current stable release to the github releases page! I also have a zip file with some helper scripts and configuration that can be installed into the UBports rootfs to turn DT2W and Kernel Samepage Merging on at startup. In case that's useful, I'm adding the zip to this post. To install, simply remount your root as read/write, extract the ZIP to / and then "chmod +x /sbin/tonokrnl-init" and reboot. Upon reaching the lightdm greeter, you should be able to shut the screen off, then double tap it to wake.
The files contained in the zip are:
/sbin/tonokrnl-init - Helper Script to start DT2W and KSM
/etc/sudoers/tonokrnl - Allows the user-session upstart config to run the helper script, which requires root.
/home/phablet/.config/upstart/tonokrnl.conf - Upstart configuration to run /sbin/tonokrnl-init using sudo (requires the sudoers file)
Off-topic slightly: The reason this project got set aside, was due to my IRL work, and because I had stopped using Ubuntu Touch and was testing out other ways of getting Linux onto the N7 'flo'. I messed with the Sailfish distribution found in the Nexus 7 2013 forum, then went to postmarketOS and messed with that (it's cool, but rather bare, not enough desktop packages to make it useful [no osk, etc]), then attempted to boot a debian distribution with the Linaro mainline kernel from John Stultz (couldn't even get X11 to start, the system did boot though! Perhaps mesa/libdrm needed recompiling with freedreno support...) and then finally came back to Ubuntu Touch via UBports!
Back on Topic, if you decide to use this kernel (either by building it yourself, or using the new UBports-1.0.3 release that will go up soon!) and install the attached helper scripts (or even find your own solution to on-boot DT2W, KSM, and the Interactive governor) please let me know your experiences! I noticed after turning KSM on that the web browser didn't crash as much, but I'm not sure if it's a placebo effect or not.
(I wonder if @flar2 has a 3.4.0 patchset I can apply rather than attempting to cherry-pick ElementalX into the kernel... That would be amazing to have ElementalX's additions to the kernel under Ubuntu Touch. [Please don't be angry I used a mention flar, I just wanted to ask if you had a patchset for the flo's kernel [version 3.4.0])

Categories

Resources