Related
Many people want to run a working froyo on their devices.
This won't be possible in a clean way without compiling a new kernel.
To archive this goal, we need to merge the Huawei specific device drivers (which are for 2.6.29) into a new kernel tree, the 2.6.32.9 one (or even 2.6.35 but 2.6.32.9 comes first since it is stable and thus important to us).
I did some research and preliminary work which I will explain here:
- The base kernel Huawei started with is available here (gitweb) - also check their wiki.
- Huawei started with the Q8650BSDCANLYA324020 tag on the donut_glazed branch (see instructions at the end of the post)
- Huawei has written it's own board driver (note they have used a Q8650 kernel release not a MSM7x25 one, most likely because this board driver is a little older and was not available for the version they wanted)
- After they were finished writing their drivers they released the kernel source (as you can download it from Huawei)
I have checked out the Q8650BSDCANLYA324020 base kernel version and diffed it against the kernel release of Huawei, generated a patch file (and stripped out the DOS linebreaks wtf) which can be applied to the base kernel.
Applying this patch to a more recent kernel (2.6.32.9) is not possible without merging the code into the new kernel tree (and since I'm not a programmer I can't do it - this is were your help is needed).
The other question is in which kernel tree we can port the patch I have extracted. I think we can use Q8650BSDCANLYA504005 on the froyo_almond branch since Huawei used an older version of it. Merging it into the AOSP msm-2.6.32.9 tree may be possible too (but the code aurora msm kernel is an improved AOSP version, so I guess we want that one).
My patch (and some non-pulse-mini fixup patch) alongside with a freshly extracted and fixed .config for the U8120 can be found at http://nico.core.ws/misc/huawei_kernel_u8100_8110_8120/
To port the source you need to checkout the original source (Q8650BSDCANLYA324020), create a new branch in which you apply the Huawei patch, then checkout the froyo kernel (Q8650BSDCANLYA504005) and merge your branch containing the changes from the patch into it.
Another way may be porting the froyo kernel tree back to the eclair one with Huawei patches.
Please post any results/questions/etc. here!
If we should get this working we can also enable the GPU driver (Adreno 200) as requested by many people (and much more (CyanogenMOD anyone? )).
Appendix:
Instructions on how to get the original source:
$ git clone git://codeaurora.org/kernel/msm.git
$ git checkout Q8650BSDCANLYA324020
Instructions on how to apply the patch (assuming "msm" is the kernel tree):
$ cp diff_kernel_msm_aurora_Q8650BSDCANLYA324020.diff msm/
$ cd msm/
$ patch -p1 < diff_kernel_msm_aurora_Q8650BSDCANLYA324020.diff
If you are compiling for U8100 or U8120 phones, you need to apply another
patch which fixes sensors (otherwise your phone won't be able to read battery
level and stuff):
$ cp needed_fixes_for_non_u8110_devices.diff msm/
$ cd msm/
$ patch -p1 < needed_fixes_for_non_u8110_devices.diff
Note that the above instructions will get you nothing new, only the kernel already running on your device.
This thread is about porting the Huawei patch to a froyo kernel.
Very nice! Thank you for this topic!
I hope this will be successfull
Are the Atheros sources included aswell?
[GER]Roxxor said:
Are the Atheros sources included aswell?
Click to expand...
Click to collapse
To be honest, I don't know. They should be in there though (maybe under a more generic driver name or integrated in the board driver) otherwise Huawei would have violated the GPL.
The problems with the fixes:
wifi
They got almost wifi working in other post
radio
FM radio too with an 3rd party app
dpad
dpad crash in this post too 2 pages back just disable this
screen calibration
calibration fix can meaby be fixed with HTC calibrate??(its an calibration app)
sound
I solve the sound problem with my phone is to replace the libaudio.so from 2.1rom,maybe you can try.\
cedric123 said:
here is an source for the adreno drivers.
https://www.codeaurora.org/gitweb/q...b819424af4be;hb=refs/heads/android-msm-2.6.32
Click to expand...
Click to collapse
Basically this is the complete kernel source for froyo without Huawei patches (it's the wrong tag too).
When we have ported the drivers we easily can enable that driver.
cedric123 said:
the froyo kernel source: http://www.huaweidevice.com/tcpsdow...&attachmentName=kernel-2.6.32-U8150-Froyo.zip
Click to expand...
Click to collapse
Thats the source for the U8150, not the ones we want. The only thing which may help us at a future point in there is the kernel config.
cedric123 said:
If you compile a kernel right now you'd get a kernel that won't read the batterylevel and the magnetic compass won't work so we need to make a few adjustments.
Click to expand...
Click to collapse
This is in needed_fixes_for_non_u8110_devices.diff
So nothing new here.
So what can we do to help?
Is there a way to chat in XDA?
Any news on this?
cedric123 said:
here is an source for the adreno drivers.
LINK REMOVED
Here are some are adreno 200 drivers from a Custom nexus one ROM:
Areno Drivers package contains the adreno rivers only(i could miss some drivers here so look for the package above contains all drivers from the nexus rom
LINK REMOVED
Click to expand...
Click to collapse
Possible to make an update.zip for this Adreno 200 driver on 2.1 while 2.2 is not working?
editeditediteditediteditedit
Maybe he's working on the project.
Leito92 said:
Maybe he's working on the project.
Click to expand...
Click to collapse
I dont think so he's not saying anything about it for 1 week now...
But even if he doesnt say anything, this topic can be useful.
Someone with git/kernel/c knowledge need to port the patch.
nicoderboss said:
Someone with git/kernel/c knowledge need to port the patch.
Click to expand...
Click to collapse
Who can do That?
Kallt_kaffe meaby?
nicoderboss said:
Someone with git/kernel/c knowledge need to port the patch.
Click to expand...
Click to collapse
You need some elemental knowledge in C and then simply cut and paste the text in the files.
However, I think that it is more important to be able to compile from source and install the existing Huawei Linux kernel for the U8120. That is, can we compile from source all the code for Android 2.1-update1 and install on the U8120?
It might be good to try to get CyanogenMod on the U8120 for the kernel version that Huawei provides. Then, we can cut down the 1.5MB patch into smaller parts, and even try to get the drivers included in the Linux kernel.
I have not idea how to compile Android 2.1-update1 and get the plain old android source on the phone. I am willing to invest the CPU clocks to compile it, though.
cedric123 said:
Who can do That?
Kallt_kaffe meaby?
Click to expand...
Click to collapse
Dunno, it's quite a huge and advanced task.
Sent from my Vodafone 845 using XDA App
maybe we can get some kernel developers from the desire topic to help us?
I have send Benee, deovferreira, Kali- a PM maybe they could help us
nicoderboss said:
Dunno, it's quite a huge and advanced task.
Sent from my Vodafone 845 using XDA App
Click to expand...
Click to collapse
Can we just replace the normal kernel in the command list for the new kernel so you apply patch in the new kernel(u8150)froyo kernel?
I have had contact with benee a kernel developer for the htc desire. He is willing to help but he needs a device so he can test kernels he build. It is not possible to build kernels without a device because this is a huge project without a good base.
Maybe we can setup a fund raiser to get him a device?
*** THIS IS NOT JUST ANOTHER EFFORT TO CREATE YET ANOTHER CUSTOM ROM***
Though Android is opensource, a lot of things are unknown regarding ROM development/modification. There are many custom ROMs available for Galaxy 3 (and also other phones) and lot of people are flashing them and making their phone more responsive, productive and faster; but very few people actually knew how to go about developing the ROM.
What I intend here is to find out and document correct way to build ROM for our favorite Galaxy 3, which is very popular in India.
The goal will be to develop the ROM from Android source + Drivers from stock ROM while documenting the process so that large number of people can contribute to the development.
I will shortly update the posts with what I have done.
Reserved
Can anyone help me convert system.img and userdata.img file into files flash-able by ODIN?
Thanks
Third post
Reserved for future use
Fourth post
Fourth post.. reserved
Fifth post
Reserved 5th post goes here...
looking forward to what you come up with
Making one aint difficult keeping it bug free might get sometimes
Thanks rudolf895
I have experience in Android SDK and NDK development, but I am a noob when it comes to ROM development. Thats why this effort.
I have fetched android source using repo as well as I have also downloaded source for I5801 from Samsung open source website. After this I will look into extracting drivers from stock ROM and successfully compiling it for Galaxy 3.
rudolf895 said:
looking forward to what you come up with
Making one aint difficult keeping it bug free might get sometimes
Click to expand...
Click to collapse
abhijeet.pathak said:
thanks rudolf895
i have experience in android sdk and ndk development, but i am a noob when it comes to rom development. Thats why this effort.
I have fetched android source using repo as well as i have also downloaded source for i5801 from samsung open source website. After this i will look into extracting drivers from stock rom and successfully compiling it for galaxy 3.
Click to expand...
Click to collapse
best of luck
Looking forward to it!
abhijeet.pathak said:
Thanks rudolf895
I have experience in Android SDK and NDK development, but I am a noob when it comes to ROM development. Thats why this effort.
I have fetched android source using repo as well as I have also downloaded source for I5801 from Samsung open source website. After this I will look into extracting drivers from stock ROM and successfully compiling it for Galaxy 3.
Click to expand...
Click to collapse
Do not fell shy to ask for help u need. Together we can make it better. We are with you whenever u need us.
ARMVK Dev Team
Thanks!
Thanks a lot for your support guys..
arunmcops said:
Do not fell shy to ask for help u need. Together we can make it better. We are with you whenever u need us.
ARMVK Dev Team
Click to expand...
Click to collapse
hehe, cant wait to see what you come up with, sounds promissing btw... i am also willing to help whereever i can, whereas this wont be too much in this case i guess.
good luck and thanx...
TY ..!
Thanx alot
This would be really helpful to alot of members here
interesting ! waiting ....
I applaud your thread, I myself was thinking about such a concept.
I wanna help, but I cant do that much (basic knowledge of C and basic/little knowledge of linux and adb).
I think first there should be a list of basic stuff. Like compiling the sources, extracting factoryrfs and co from your phone etc... Sometimes if you wanna start doing something and you dont know the basics you get scared off because of their apparent tremendous lack of knowledge.
I'd probably start dabbling if somebody told me how to compile the sources.
can you also specify your work environment, toolchain and such stuff, so anyone can start from zero? there is a kernel building vm image with all tools by sztupy somewhere on the forum that is eventually of interest, and there is also an extended version containing eclipse and some more tools for full android development:
http://forum.xda-developers.com/showthread.php?t=882010
hope this helps somebody...
Did you try using it? I think the scripts are specific and cant be used by us (without altercation)
no, i have absolutely no idea of kernel compilation and all that advanced stuff, but i guess it can be adapted for our use
Yup...me too in waitin line...Now i can say i dint made a mistake by buying it...
Sent from my GT-I5801 using XDA App
abhijeet.pathak said:
Can anyone help me convert system.img and userdata.img file into files flash-able by ODIN?
Thanks
Click to expand...
Click to collapse
maybe you can create a ".tar" package including all those files.. .tar is flashable in odin..
First post in the Dev section but this seemed to be the place to talk about kernel compilation and module development.
I have twice now, and am working on my third kernel compilation for the purposes of custom module building for the TF700 and the TF201.
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all. Is this normal for kernel compilations? I would have thought that it would be fully compilable out of the box ( so to speak). Is it ASUS or just android/Linux in general that works out this way?
Is there a better way to do it? Should I use some generic source with the same version numbers? The current source is just not working at all. I am using an Ubuntu distro. Have the cross compile tools etc... but it just fails. I have already resolved two missing definition references and it just keeps on failing in new places
Hopefully this question doesn't offend developers. I have moved from WinPhone to here and want to better my understanding of how this should all work but need to start with some basics before I can make a meaningful contribution.
Thanks.
P.S... I looked and didn't find a "Compiling android kernels for dummies" book
hx4700 Killer said:
I looked and didn't find a "Compiling android kernels for dummies" book
Click to expand...
Click to collapse
"Dummies" doesn't write a book on kernel dev. Too wrapped up in telling people how to download iTunes.....
Use your "Google". And when you find it, Google XDA University.
There, you will find steps for setting a build environment and kernel and cross arm.
Understand, all kernels are different, but a good place to start. Plus, you learn how to use Google. An added bonus.
Oh... and... as an extra bonus, I will move this to Q & A, as this post has no development work attached. :silly:
MD
My question wasn't HOW to cross compile. I have done it.
My question is WHY are there so many errors that need correcting when compiling the ASUS downloadable kernels and if this is typical of the source from any device or just ASUS?
hx4700 Killer said:
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all.
Click to expand...
Click to collapse
I had to fix exactly one pair of quotes vs. angle brackets somewhere in the RIL - get the patch pack from my kernel and apply the ril include fix. Then it should compile. If not, you are doing something wrong.
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
alexcass4 said:
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
Click to expand...
Click to collapse
Step 1: Get a suitable ARM toolchain. I can't help you here with Ubuntu because I'm using Gentoo and their crossdev tool (http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1).
Step 2: Cross-compiling the kernel works just as for native kernels (make menuconfig, make), but you have to pass parameters to each make, e.g. make ARCH="arm" CROSS_COMPILE="arm-gentoo-linux-gnueabi-" (or whatever your toolchain is called)
Step 3: For the TF700-specific blob stuff I have written a detailed tutorial here: http://forum.xda-developers.com/showpost.php?p=36925180&postcount=4
im trying to build the kernel from androids googlesource website, and want to know which defconfig i need to use to start the build
tegra3_android_defconfig
tegra_android_defconfig
tegra3_defconfig
tegra_defconfig
i couldnt find a grouper specific one
azoller1 said:
im trying to build the kernel from androids googlesource website, and want to know which defconfig i need to use to start the build
tegra3_android_defconfig
tegra_android_defconfig
tegra3_defconfig
tegra_defconfig
i couldnt find a grouper specific one
Click to expand...
Click to collapse
tegra3_android_defconfig seems to be the one.
Yes, I am trying to rebuild their from source. But, when I have testing on running. There are found red splash when I click them on screen. May I know what the caused of this ?
Thanks.
Ok, The problem has resolved now .
AOSP's guide to building kernels is quite useful. I actually used it earlier today.
http://source.android.com/source/building-kernels.html
It contains building instructions (obviously) as well as the proper defconfig for all AOSP devices.
The developer site is still listing KitKat as the newest build, so here are the links to the instructions to build Lollipop using the official source:
Lollipop 5.0: http://nv-tegra.nvidia.com/gitweb/?...a=blob_plain;f=README;hb=rel-st8-l-r1-partner
Lollipop 5.0.1: http://nv-tegra.nvidia.com/gitweb/?...a=blob_plain;f=README;hb=rel-st8-l-r2-partner
Cheers mate. It is still listing the 1.2.1 OTA as the latest but just by changing the branch url i was able to find the newest.
Lets hope for some more development on this device. I'm going to PM you soon - I will be building my own ROM and/or Kernel.
berryman13 said:
Cheers mate. It is still listing the 1.2.1 OTA as the latest but just by changing the branch url i was able to find the newest.
Lets hope for some more development on this device. I'm going to PM you soon - I will be building my own ROM and/or Kernel.
Click to expand...
Click to collapse
You do realize those are the links posted above. There is no need to switch branch names or search for the current files. Just click the one you want.
twistedumbrella said:
You do realize those are the links posted above. There is no need to switch branch names or search for the current files. Just click the one you want.
Click to expand...
Click to collapse
Of course, mate!
I was saying that I found the proper page by changing the URL to hb=rel-st8-l-r2-partner, before this thread was posted. So I appreciate you enlightening other folks about it!
berryman13 said:
Of course, mate!
I was saying that I found the proper page by changing the URL to hb=rel-st8-l-r2-partner, before this thread was posted. So I appreciate you enlightening other folks about it!
Click to expand...
Click to collapse
Even without already having the branch name, it's just a matter of going to http://nv-tegra.nvidia.com/gitweb/?p=manifest/android/binary.git;a=summary to find it
Hi, @twistedumbrella could you please spare a second to help (or point me in the right direction) I've successfully built Lollipop for my Oneplus One using Ubuntu, but when I try to set up first repo sync; well see below:
When I run: repo init -u git://nv-tegra.nvidia.com/manifest/android/binary.git -b rel-st8-l-r2-partner -m tlk/shieldtablet.xml
I get: fatal: manifest 'tlk/shieldtablet.xml' not available
fatal: remote github not defined in /home/diigimatrix/.repo/manifests/tlk/shieldtablet.xml
Please could you get me on my way. I love all your work and hope to gain further knowledge through your support.
Thanks in advance
Phil from Blackpool
diigibio said:
Hi, @twistedumbrella could you please spare a second to help (or point me in the right direction) I've successfully built Lollipop for my Oneplus One using Ubuntu, but when I try to set up first repo sync; well see below:
When I run: repo init -u git://nv-tegra.nvidia.com/manifest/android/binary.git -b rel-st8-l-r2-partner -m tlk/shieldtablet.xml
I get: fatal: manifest 'tlk/shieldtablet.xml' not available
fatal: remote github not defined in /home/diigimatrix/.repo/manifests/tlk/shieldtablet.xml
Please could you get me on my way. I love all your work and hope to gain further knowledge through your support.
Thanks in advance
Phil from Blackpool
Click to expand...
Click to collapse
I'm trying to figure out what's up with it now. I know when I synced it was r1, and tlk/shieldtablet.xml was valid.
Hopefully I can track down why it is coming back invalid in r2.
Thanks @twistedumbrella, glad in a way its not just me. Thought I was running the wrong command. . Happy New Year!
diigibio said:
Thanks @twistedumbrella, glad in a way its not just me. Thought I was running the wrong command. . Happy New Year!
Click to expand...
Click to collapse
Same to you. It updated ok but now I have to see if it'll re-init. It may be a delay on their end. The readme for the portable was up a week before the source.
Cool. I'll give it another try once I've finished work. Been a member for years and helped a lot in the old windows phone days. But thought enough of just relying on other people, time to start getting my hands dirty again. But new to building Android. Need to read up on manipulation of ROMs rather than just building a stock ROM. Any tips on tools to manipulate ROMs? Am i right by merging commits then build, then manipulate ROM? I will read up on it but just thought you might have some pointers. Thanks
diigibio said:
Cool. I'll give it another try once I've finished work. Been a member for years and helped a lot in the old windows phone days. But thought enough of just relying on other people, time to start getting my hands dirty again. But new to building Android. Need to read up on manipulation of ROMs rather than just building a stock ROM. Any tips on tools to manipulate ROMs? Am i right by merging commits then build, then manipulate ROM? I will read up on it but just thought you might have some pointers. Thanks
Click to expand...
Click to collapse
Best bet is to either find something you like and merge it or try to find something similar and recreate it to start. Once you get comfortable, then start coming up with your own.
Building from source is mostly Java for modifying with some C for drivers and such. Usually when you have a device configuration already set up, though, the C part is already done.
Just wanna say a big thanks to @twistedumbrella. I set up a new ubuntu build environment and I'm now compiling my first Android build for Nvidia Shield Tablet EU-LTE. No mods yet other than stock, but hopefully with time.
diigibio said:
Just wanna say a big thanks to @twistedumbrella. I set up a new ubuntu build environment and I'm now compiling my first Android build for Nvidia Shield Tablet EU-LTE. No mods yet other than stock, but hopefully with time.
Click to expand...
Click to collapse
Glad to hear it's all up and running. Best of luck!
twistedumbrella said:
Glad to hear it's all up and running. Best of luck!
Click to expand...
Click to collapse
Hi! I'm trying to compile but get error trying no find:
./packages/apps/UnifiedEmail/src
After repo sync, I don't have "src" directory for this package.
Thnx in advance.
entelekia said:
Hi! I'm trying to compile but get error trying no find:
./packages/apps/UnifiedEmail/src
After repo sync, I don't have "src" directory for this package.
Thnx in advance.
Click to expand...
Click to collapse
It looks like they are still working out a few issues with new updates. I don't maintain the source, so the only advice I can provide is to keep on eye on nvidia's gitweb for when they publish a solution (or occasionally sync and try over), or attempt to fix it yourself (which usually only works if there is an issue with the code, not code missing altogether).
Compiled! I have resynchronized all the project from scratch from git repository.
I'm going to test the compiled ROM in my tablet, but I suppose, I have to provide almost the essential pack of Google apps (basic providers and play services).
I think to flash *.img files, except recovery.img (I'm on TWRP), and then install from TWRP PA Gapps. Is this approach correct?
Thnx in advance and regards.
EDIT: No luck booting custom rom (TWRP nor stock recovery...)
Seem's like there's a new source three version out:
repo init -u git://nv-tegra.nvidia.com/manifest/android/binary.git -b rel-st8-l-r3-partner -m tlk/shieldtablet.xml
GethPrime said:
Seem's like there's a new source three version out:
repo init -u git://nv-tegra.nvidia.com/manifest/android/binary.git -b rel-st8-l-r3-partner -m tlk/shieldtablet.xml
Click to expand...
Click to collapse
Anyone managed to build this one yet? Its not working for me..