Related
Hi hackers,
i know about the common method described by chulri, to compile custom kernels and it works well.
Anyway for kernel only experiments this way is little too bloated.
EDIT3:
So here's my standalone toolchain for archos (build with modified buildroot system for 32Bit linux OS):
arm-archos GCC4.4.1 for ARM uClinux (uClibc C library 0.9.30 with Archos specific tweaks and bugfixes)
http://dl.dropbox.com/u/8815400/arm-archos.tar.gz
EDIT5:
The toolchain does not work on a 64Bit OS.
I'll post a link for the 64Bit version soon.
Only for reference:
There are a lot of external solutions to be found in the web.
E.g. there are different flavoured toolchains based on gcc 4.4.1 from Mentor Graphics (formerly known as Codesourcery):
Sourcery G++ Lite 2010q1-188 for ARM EABI (Newlib C library 1.17.0)
Sourcery G++ Lite 2010q1-189 for ARM uClinux (uClibc C library 0.9.30)
Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux (GNU C library 2.11)
So if i restrict my activities on kernel compilation all three should do the job.
I made a custom kernel using the above mentioned GNU C toolchain, all compiles fine, but did not test it yet.
This is next... i need to find an easy way to test my tweaked kernels.
So far i would recommend UrukDroid running and use the recovery menu to exchange the kernel & ramdisk.
Any comments are welcome.
Unfortunately our devices use also some binary only kernel modules which are not supported by this method:
hmditx.ko (though marked as GPL, we got no sources)
hdmicec.ko (same here)
UPDATE: Sources had been published by Archos at gitorious.
nwolc.ko (proprietary module from NXP)
BTW, someone should contact the author Andre Lepine to hand out the GPL'ed source code
If i got it right, all custom kernels had been build using the buildroot system because of these.
AFAIK using another toolchain would result in a completely different system map and prevent the modules to load.
Anyway if we exclude HDMI and tweak some start scripts to prevent the modules to get loaded, we'll be fine.
Would be nice to start some discussion up here or leave a comment.
I'd also like to get some tricks form the cracks
EDIT:
Sure there's also Ti's wireless driver package which has to be integrated to compile tiwlan_drv.ko.
Need to do some research to find the correct package.
Any hints are welcome!
EDIT2:
Anyone tried to compile a gen8 kernel using the new gen9 kernel source?
Everything seems to be there...
EDIT4:
See above! The toolchain works very nice.
It had been specially compiled for external use and in the meantime it was tested on many different hosts.
Instructions how to install and use it could be found here:
http://forum.xda-developers.com/showpost.php?p=19134490&postcount=8
Thanks a lot for your attention!
Regards,
scholbert
One question: What's so much better about that toolchain to throw away the Archos-compatible toolchain and deal with the hassle of excluding features to build compatible binaries? I guess I didn't get the point
chulri said:
One question: What's so much better about that toolchain to throw away the Archos-compatible toolchain and deal with the hassle of excluding features to build compatible binaries? I guess I didn't get the point
Click to expand...
Click to collapse
Like i tried to point out:
Anyway for kernel only experiments this way is little too bloated.
Click to expand...
Click to collapse
A neat little cross toolchain environment would be enough for kernel experiments.
I'm working on different platforms e.g. old Debian 4.0 workstation, Netbook with UNR 11 but limited space, other linux machines i don't like to run entire process.
You need a lot of disk space and time (at least first time to build the whole environment).
The other thing is that everything is built into the buildroot structure, you could barely locate the toolchain itself...
Sure your right, if you say everthing works out of the box, but i don't like all these automated procedures, to build my own kernel.
In fact that's just it and i wonder if there's another way.
Just kernel source + cross-toolchain...
Apart from that, the toolchain Sourcery G++ Lite 2010q1-189 for ARM uClinux (uClibc C library 0.9.30) is very close to the Archos one.
BTW, anyone tried to tweak the Archos build script to built the toolchain for external use?
Cheers,
scholbert
scholbert said:
So if i restrict my activities on kernel compilation all three should do the job.
I made a custom kernel using the above mentioned GNU C toolchain, all compiles fine, but did not test it yet.
Click to expand...
Click to collapse
Hi Scholbert!
I've been doing the same for my kernels, it compiles and runs fine, wifi loads without any particular tweak with the original Archos compiled module, but I didn't check hdmi as I don't have cable for it. I'm using a cm7 toolchain to build it (arm-eabi-4.4.3) though.
scholbert said:
This is next... i need to find an easy way to test my tweaked kernels.
So far i would recommend UrukDroid running and use the recovery menu to exchange the kernel & ramdisk.
Click to expand...
Click to collapse
My setup is a bit different since I patched bootloader: I have my "stable" build on normal boot (/rawfs/init) and my dev build on sde (/rawfs/custom), and I flash my kernel directly from my stable build without going through recovery.
I just do adb push kernel and initrd, then directly on device a "kd_flasher -k kernel -i initrd", and I reboot from normal to sde with a "reboot_into sde". It's really quick this way, I just have a script on my linux box to do all this.
I believe you can do the same without patched bootloader with a temproot on secure archos build.
scholbert said:
EDIT2:
Anyone tried to compile a gen8 kernel using the new gen9 kernel source?
Everything seems to be there...
Click to expand...
Click to collapse
Yes, I'm playing with it. I don't know what device you have, but mine (A70S) was not finished in Archos sources: board-archos-a70s is almost empty, panel wasn't finished... I add stuff slowly (still learning Omap, I know Qualcomm better), my kernel boots, I currently have framebuffer, internal mmc and usb working.
Hi letama!
letama said:
I've been doing the same for my kernels, it compiles and runs fine, wifi loads without any particular tweak with the original Archos compiled module, but I didn't check hdmi as I don't have cable for it. I'm using a cm7 toolchain to build it (arm-eabi-4.4.3) though.
Click to expand...
Click to collapse
Cool that's nice information.
Interesting that the tiwlan_drv.ko loads without problems.
Just to start an experiment, i started to shrink down the buildroot setup from Archos and built the gcc 4.4.1 toolchain only.
But it's not finished yet...
letama said:
My setup is a bit different since I patched bootloader: I have my "stable" build on normal boot (/rawfs/init) and my dev build on sde (/rawfs/custom), and I flash my kernel directly from my stable build without going through recovery.
Click to expand...
Click to collapse
O.k. i see, sounds like a clean environment this way.
In fact there's no need for this sqashfs thing anymore...
I already got the SDE's avboot version installed. This version is little bigger in size and obviously got some add-on's.
The same byte signature could be found here, so i guess the hack would match this avboot version as well.
Maybe i give it a try.
letama said:
I just do adb push kernel and initrd, then directly on device a "kd_flasher -k kernel -i initrd", and I reboot from normal to sde with a "reboot_into sde". It's really quick this way, I just have a script on my linux box to do all this.
Click to expand...
Click to collapse
Cool, sounds like a nice development platform this way.
letama said:
I believe you can do the same without patched bootloader with a temproot on secure archos build.
Click to expand...
Click to collapse
Mmmh i thought about using it from UrukDroid...
Anyway, the way you do it sounds more elegant.
letama said:
Yes, I'm playing with it. I don't know what device you have, but mine (A70S) was not finished in Archos sources: board-archos-a70s is almost empty, panel wasn't finished... I add stuff slowly (still learning Omap, I know Qualcomm better), my kernel boots, I currently have framebuffer, internal mmc and usb working.
Click to expand...
Click to collapse
I got an A101... looks little better here, but i did not compile the kernel yet.
Anyway, would be nice to have a complete kernel (incl. wireless and HDMI base code) in the end which compiles fine with latest gcc and runs out of the box
Thanks a lot for your extensive reply!!!
Regards,
scholbert
scholbert said:
I already good the SDE's avboot version installed. This version is little bigger in size and obviously got some add-on's.
The same byte signature could be found here, so i guess the hack would match this avboot version as well.
Maybe i give it a try.
Click to expand...
Click to collapse
Yes, it's the same signature, I verified it with IDA before installing sde, only location differs. You should be fine as long as you don't have multiple matches. If you want my code to patch it, let me know... You'd have to adapt the offsets but it would be probably safer than doing it manually.
Regarding kernel development, I forgot one big advantage to have patched bootloaders: ram_console! I built my "stable" and "dev" kernels with it, so I just have to make my dev kernel to crash to reboot and get the full dmesg with "cat /proc/last_kmsg" even if framebuffer or usb don't work .
scholbert said:
I got an A101... looks little better here, but i did not compile the kernel yet.
Anyway, would be nice to have a complete kernel (incl. wireless and HDMI base code) in the end which compiles fine with latest gcc and runs out of the box
Click to expand...
Click to collapse
Yes, gen9 sources look better for A101, I took them as base for my A70 and it's almost ok. I took away hdmi as it seems a bit too hackish, I'll see later . I also had some issue with gp timers that wouldn't use 32K clock, I'd be curious to see a dmesg on a gen9 tablet.
Right now I'm fighting with usb that kills video driver looonng way to go before having a fully functional kernel.
letama said:
Yes, it's the same signature, I verified it with IDA before installing sde, only location differs. You should be fine as long as you don't have multiple matches. If you want my code to patch it, let me know... You'd have to adapt the offsets but it would be probably safer than doing it manually.
Click to expand...
Click to collapse
Thanks for offering your tool.
Guess it's the same you once posted in that thread about changing bootlogo.
I had a look at the soruces once.
Anyway i already prepared a patched bootblock. Did not re-write it yet
Time is lacking...
letama said:
Regarding kernel development, I forgot one big advantage to have patched bootloaders: ram_console! I built my "stable" and "dev" kernels with it, so I just have to make my dev kernel to crash to reboot and get the full dmesg with "cat /proc/last_kmsg" even if framebuffer or usb don't work .
Click to expand...
Click to collapse
Yupp that's nice... have you seen my UART hack?
letama said:
Yes, gen9 sources look better for A101, I took them as base for my A70 and it's almost ok. I took away hdmi as it seems a bit too hackish, I'll see later . I also had some issue with gp timers that wouldn't use 32K clock, I'd be curious to see a dmesg on a gen9 tablet.
Right now I'm fighting with usb that kills video driver looonng way to go before having a fully functional kernel.
Click to expand...
Click to collapse
Guess i will try to compile this kernel soon.
No time for that right now.
Made some efforts to built special toolchain.
See the upcoming post...
Big thanks for participating!!!
Regards,
scholbert
Ready to use Archos specific toolchain
Hi again,
three simple steps to build UrukDroid custom kernel/modules:
1. Grab my customized toolchain and install it (see first post).
The toolchain is configured to work on mostly any 32Bit linux host (min. libc 2.3.6, should work down to Debian 4.0, Ubuntu 8.04 and similar).
The toolchain must be extracted and placed at /opt on your host machine (x86).
To run it as a user you might change the properties for /opt directory to match the user's rights.
You also could extract the archive as root and run:
chown -R 1000:1000 /opt/arm-archos
To make it more comfortable:
Modify user's .bashrc file to include the path to the toolchain:
export PATH=$PATH:/opt/arm-archos/usr/bin
2. Grab UrukDroid kernel sources and compile.
UrukDroid kernel sources could be found here:
http://sauron.pourix.com/UrukDroid/UrukDroid-1.5/UrukDroid-1.5.1-kernelsrc.tar.bz2
You might extract the sources anywhere you like.
After this has been done, step into the kernel source root directory.
Modify Makefile to use the Archos toolchain (line 199):
Code:
...
# Alternatively CROSS_COMPILE can be set in the environment.
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= arm-linux-uclibcgnueabi-
...
cp linux.config .config
make oldconfig
make zImage
make modules
make modules_install INSTALL_MOD_PATH=/my_kernel/modules/
3. Transfer the binaries to your Archos device.
Right now there's no need to exchange the kernel, because we use $auron's base setup for the kernel.
Place your custom modules at /lib/modules
TBC
scholbert
scholbert said:
Thanks for offering your tool.
Guess it's the same you once posted in that thread about changing bootlogo.
I had a look at the soruces once.
Anyway i already prepared a patched bootblock. Did not re-write it yet
Time is lacking...
Click to expand...
Click to collapse
Yes, it's roughly the same code. You did patch both location ?
scholbert said:
Yupp that's nice... have you seen my UART hack?
Click to expand...
Click to collapse
Yes, saw it, it would be very nice to have console on serial, but I don't want to open my A70 yet as it's still has warranty running. I may try that if I can find parts and if I get a gen9 as "main".
scholbert said:
Guess i will try to compile this kernel soon.
No time for that right now.
Click to expand...
Click to collapse
Great! Let me know if you have something, I'd be very interested in a dmesg.
I somehow "fixed" my video driver problem (well, not really fixed, adding traces made it go away ), now I'm trying to get SurfaceFlinger works. Sgx driver doesn't seem to play nice with .29 userspace binaries, I'm not sure I'd be able to go much further without new binaries.
scholbert said:
Made some efforts to built special toolchain.
See the upcoming post...
Click to expand...
Click to collapse
Nice! I'll try to take a look at it when I find some time.
Hey letama,
sorry for the delay...
letama said:
Yes, it's roughly the same code. You did patch both location ?
Click to expand...
Click to collapse
Yepp, both locations are patched.
As we already pointed out, there the rawfs header contains some checksums and avboot is the first file in there.
What do you think, if i manually change some bytes in avboot and leave the checksum untouched, will there be any problems?
letama said:
Yes, saw it, it would be very nice to have console on serial, but I don't want to open my A70 yet as it's still has warranty running. I may try that if I can find parts and if I get a gen9 as "main".
Click to expand...
Click to collapse
O.k. if there's warranty on your device, i totally agree.
letama said:
Great! Let me know if you have something, I'd be very interested in a dmesg.
Click to expand...
Click to collapse
Need more time
letama said:
I somehow "fixed" my video driver problem (well, not really fixed, adding traces made it go away ), now I'm trying to get SurfaceFlinger works. Sgx driver doesn't seem to play nice with .29 userspace binaries, I'm not sure I'd be able to go much further without new binaries.
Click to expand...
Click to collapse
Yeah guess there are some changes in the drivers API.
letama said:
Nice! I'll try to take a look at it when I find some time.
Click to expand...
Click to collapse
So far i tested it, the toolchain works out very nice.
Concerning kernel compilation:
It seems the binaries are quite well optimized in size. No problems so far.
I found out that in stock ROM they used some strip command to make the modules even smaller.
Anyway won't speed things up significantly i guess...
Concerning userland apps:
Though my genereated uClibc is little bigger in size, i noticed no problems so far. A binary comparison between the libaries (stock vs mine), shows little differences though.
Anyway, would be nice if people use it and report...
Have a nice day!
scholbert
Hi Scholbert!
scholbert said:
sorry for the delay...
Click to expand...
Click to collapse
No problem, I'm also busy as hell...
scholbert said:
Yepp, both locations are patched.
As we already pointed out, there the rawfs header contains some checksums and avboot is the first file in there.
What do you think, if i manually change some bytes in avboot and leave the checksum untouched, will there be any problems?
Click to expand...
Click to collapse
Well, I didn't touch checksums either, and it seems they're not checked anywhere else, so you should be good. As long as you patched both location before reboot, you should be ok.
scholbert said:
Yeah guess there are some changes in the drivers API.
Click to expand...
Click to collapse
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
scholbert said:
So far i tested it, the toolchain works out very nice.
Click to expand...
Click to collapse
I tried it briefly yesterday as I borked my kernel config at some point and it was crashing my usual toolchain, it doesn't run on my comp: "error while loading shared libraries: libmpfr.so.1: wrong ELF class: ELFCLASS64". Ubuntu 11.10 64 bits...
Best,
LeTama
letama said:
Well, I didn't touch checksums either, and it seems they're not checked anywhere else, so you should be good. As long as you patched both location before reboot, you should be ok.
Click to expand...
Click to collapse
Yeah guessed so... the russian guy who first tried this hack also never mentioned anything like this. So it'll be safe then.
letama said:
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
Click to expand...
Click to collapse
Wow sounds pretty like a "frankengenius" software design.
Good work!
Have you seen that Archos released part of the hdmi code as external driver code. So the kernel is even more open now (speaking of 2.6.29).
Sometimes their cooperation is very nice.
About two weeks ago i contact the author at NXP, then last week i wrote to Archos and on thursday they released it. Not bad...
Anyway they ought to release the source, even without mentioning it.
It's just GPL code.
letama said:
I tried it briefly yesterday as I borked my kernel config at some point and it was crashing my usual toolchain, it doesn't run on my comp: "error while loading shared libraries: libmpfr.so.1: wrong ELF class: ELFCLASS64". Ubuntu 11.10 64 bits...
Click to expand...
Click to collapse
Sure the toolchain is compiled for 32Bit systems, forgot to mention this.
So it will never work on a 64Bit system.... sorry
Cheers,
scholbert
scholbert said:
Have you seen that Archos released part of the hdmi code as external driver code. So the kernel is even more open now (speaking of 2.6.29).
Click to expand...
Click to collapse
Didn't see it, very nice! HDMI is a low on my priority list, but it's good to have source code, it will help porting it. Even though my efforts on this kernel will slow a bit as I purchased today a gen9 and ICS source code is out .
At first glance, boot process and layout looks very similar to our gen8, same rawfs, a custom file that would indicate that we should get SDE, so far so good. Need to spend some quality time with hex editor and IDA now .
Damn work, I need 72 hours days!
scholbert said:
Sure the toolchain is compiled for 32Bit systems, forgot to mention this.
So it will never work on a 64Bit system.... sorry
Click to expand...
Click to collapse
No problem, just wanted to give a bit of feedback.
@letama:
Wouldn't it be alot more productive for you and us if you would somehow join your affort with the guys from openaos?
cm7 and then cm9 would be here faster the more experienced devs are helping.
fzelle said:
@letama:
Wouldn't it be alot more productive for you and us if you would somehow join your affort with the guys from openaos?
cm7 and then cm9 would be here faster the more experienced devs are helping.
Click to expand...
Click to collapse
Hi fzelle,
Well, I'm only learning slowly, they're far more experienced than me on Archos. My main goal is to understand omap platform, that's why I'm toying with the 2.6.35 kernel. Cm7 is only a convenient for way me to make sure the kernel behaves well. I don't seek a perfect cm7/archos experience for all devices as they do, but if at some point I learned enough, I may try to help if I can.
LeTama
CM7 for Archos atm is based on the 2.6.29 kernel delivered from Archos, so your kernel is far more advanced.
And if you got 2.6.35 to work properly, the guys over at openaos would probably be happy to use that.
fzelle said:
CM7 for Archos atm is based on the 2.6.29 kernel delivered from Archos, so your kernel is far more advanced.
And if you got 2.6.35 to work properly, the guys over at openaos would probably be happy to use that.
Click to expand...
Click to collapse
Yes, 2.6.35 should match better gingerbread code. If I can go somewhere, I'll share it. Currently, I'm far from that, still having troubles with usb and a big piece will be power management. We'll see, but I'm a bit out of free time.
Hey letama,
i guess fzelle is right.
AFAIK, the openaos developers concentrate on the Android part for gen8. As stated they still use 2.6.29 and this no problem so far.
But a kernel project might run in parallel.
Would be nice to get the new kernel working at least for A70 and A101.
I started a build for A101 (...and still compiling), maybe we could share our .config file
EDIT: Aaaaaargh, still fighting with the kernel config/compile errors.
Wifi/BT framework issue.... RFKILL_STATE_UNBLOCKED etc. seems not to be implemented anymore...
letama said:
I made some progress there, I took LG P970 3D binaries with driver source code from their cm7 kernel (they also have a 2.6.35) and I was able to boot up to launcher. I had to fiddle a bit with audio runtime as phone audio won't work, but low level audio driver is working too. Next step is touchscreen... And probably doing a proper cm7 build, I'm running a frankenstein mix of cm7 for nook tablet
Click to expand...
Click to collapse
The SGX part is an open issue i guess, but there's some support form Ti as well. E.g.: https://gforge.ti.com/gf/project/openmax/frs/
Remember the Beagleboard-XM is very similar to what we got on our devices.
Also Zoom3 platform, so maybe their repository is a good starting point for these addon's as well.
In fact using the OMAP might be a benefit in general, because there are so many opensource projects covering this architecture
Happy hacking!
scholbert
Hi Scholbert,
scholbert said:
i guess fzelle is right.
AFAIK, the openaos developers concentrate on the Android part for gen8. As stated they still use 2.6.29 and this no problem so far.
But a kernel project might run in parallel.
Would be nice to get the new kernel working at least for A70 and A101.
Click to expand...
Click to collapse
Agreed! It would be nice if we could develop both A70 and A101 in parallel, sharing will speed things up.
scholbert said:
I started a build for A101 (...and still compiling), maybe we could share our .config file
Click to expand...
Click to collapse
I attached my current one, I added one config option that you don't have, CONFIG_MUSB_ERRATA_445, you can remove the line. I'm not sure I have the config right, but it boots and has quite a lot of stuff working. You need to re-add A10IT board though.
scholbert said:
The SGX part is an open issue i guess, but there's some support form Ti as well. E.g.: https://gforge.ti.com/gf/project/openmax/frs/
Click to expand...
Click to collapse
Well, for me it's no longer an issue, I think what I did is the best we can do until we can get a hand on Archos binaries for 3630. The issue is that you have to have proprietary binaries, they must match driver version, and the binaries I have from P920 works fine even though maybe not as recent as Archos ones. There is no open source implementation afaik. OpenMax is only for video codec, not 3D.
scholbert said:
Happy hacking!
Click to expand...
Click to collapse
Thanks, you too! You have a mission now! Let's get this kernel running on A101
Hi letama!
letama said:
Agreed! It would be nice if we could develop both A70 and A101 in parallel, sharing will speed things up.
Click to expand...
Click to collapse
To be honest i meant developing openaos and kernel in parallel. Who ever does it
Anyway, as i wrote it... i started to play around with the new kernel.
It's hard for me these days to find some time for hacking and i'm not a genius in modifying kernel drivers and stuff.
So in fact i don't know how far i will get things rollin'
letama said:
I attached my current one, I added one config option that you don't have, CONFIG_MUSB_ERRATA_445, you can remove the line. I'm not sure I have the config right, but it boots and has quite a lot of stuff working. You need to re-add A10IT board though.
Click to expand...
Click to collapse
Thanks a lot. I will compare your config with my setup.
Already found some missing parts in the board file...
letama said:
Well, for me it's no longer an issue, I think what I did is the best we can do until we can get a hand on Archos binaries for 3630. The issue is that you have to have proprietary binaries, they must match driver version, and the binaries I have from P920 works fine even though maybe not as recent as Archos ones. There is no open source implementation afaik. OpenMax is only for video codec, not 3D.
Click to expand...
Click to collapse
Ah i see, so i'll take a look at the binaries.
I guess you meant P970, as stated earlier.
letama said:
Thanks, you too! You have a mission now! Let's get this kernel running on A101
Click to expand...
Click to collapse
Haha, as stated above... nice mission anyway
BTW, did you see there are some nice projects at gitorious.
A 2.6.37 kernel port for A43 and A101 had also been started already.
I had a short look at some parts... don't know about the exact state of the code.
Let's stay in touch!
Best regards,
scholbert
Xperia Play Users,
I am currently working on bringing CM10 to the Play, and I'm looking for input from anybody else who has ideas.
The Rules:
Post something constructive, no "Good Luck" "reserved" etc. this thread is for working through problems when building CM10
That said.
Update: I'll be posting errors here, so it'll be easy to keep track of.
First error I hit (& fixed? (compiler hasn't failed yet on this one)) deals with hardware/qcom/display/libcopybit where copybit_c2d.cpp fails to compile with a couple of errors related to "KGSL_USER_MEM_TYPE_ION" is not declared. (iirc)
I fixed this (I think) by replacing CM10's qcom/display with caf's qcom/display
Second error: (Erroring out right now)
In-line kernel building. I'm getting a (possible) GCC compiler false error where it says
Code:
/home/paxchristos/Android_Source/cm10/kernel/semc/msm7x30/drivers/net/wireless/bcm4329/wl_iw.c: In function 'wl_iw_set_pmksa':
/home/paxchristos/Android_Source/cm10/kernel/semc/msm7x30/drivers/net/wireless/bcm4329/wl_iw.c:5335:5: error: array subscript is above array bounds [-Werror=array-bounds]
/home/paxchristos/Android_Source/cm10/kernel/semc/msm7x30/drivers/net/wireless/bcm4329/wl_iw.c:5338:5: error: array subscript is above array bounds [-Werror=array-bounds]
/home/paxchristos/Android_Source/cm10/kernel/semc/msm7x30/drivers/net/wireless/bcm4329/wl_iw.c: At top level:
cc1: error: unrecognized command line option "-Wno-unitialised" [-Werror]
Possible fix: for now turn off in-line kernel building until either error is solved.
Error 3 -- Removed in-line kernel building, but forgot to set device/semc/zeusc/prebuilt/kernel to copy to out/target/product/zeusc/kernel ... whoops
Error 4 -- The way things are sent to logcat has been changed from ICS
Code:
/home/paxchristos/Android_Source/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/zeusc/obj/SHARED_LIBRARIES/lights.semc_intermediates/lights.o: in function write_string:device/semc/msm7x30-common/liblights/lights.c:87: error: undefined reference to 'LOGE'
/home/paxchristos/Android_Source/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/zeusc/obj/SHARED_LIBRARIES/lights.semc_intermediates/lights.o: in function write_int:device/semc/msm7x30-common/liblights/lights.c:66: error: undefined reference to 'LOGE'
/home/paxchristos/Android_Source/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/zeusc/obj/SHARED_LIBRARIES/lights.semc_intermediates/lights.o: in function set_light_backlight:device/semc/msm7x30-common/liblights/lights.c:131: error: undefined reference to 'LOGV'
Fixed by copying over liblights/ from jellybean version of msm7x30-common/
Error 5 -- Same error happens with msm7x30-common/libsensors/
Fixed the same way as error 4
Error 6 -- Last error I'm gonna talk about tonight:
I did (apparently) a half baked revert to using a prebuilt kernel & it just bit me in the butt. I'll fix it tomorrow & keep updating this.
Fixed it by using half of FXP's custombootimg.mk where it calls (PRODUCT_OUT)/kernel instead of (TARGET_PREBUILT_KERNEL)
Anybody else up for learning with me & briniging JB to the Play?
Pax
UPDATE: Pre-alpha release are available here: http://www.mediafire.com/?6ggud46a7c6cq
Latest kernel is here: http://forum.xda-developers.com/showpost.php?p=29498363&postcount=233
Remember, this is an alpha, a lot of stuff does not work. Please logcat any errors you find, otherwise (unless it's something like baseband unknown) I WILL IGNORE THEM
What Works:
CDMA Data
Calls
SMS
AUDIO!!
HW Video
GPS
What Doesn't Work:
Haven't tested to much, you guys tell me
I came across this by googling, hope that helps :
http://forum.xda-developers.com/showthread.php?t=1104142&page=4
Cheers, I'm willing to learn if you don't mind teaching a newbie in dev
Sent from my Play using xda app-developers app
sasukekun67 said:
I came across this by googling, hope that helps :
http://forum.xda-developers.com/showthread.php?t=1104142&page=4
Cheers, I'm willing to learn if you don't mind teaching a newbie in dev
Sent from my Play using xda app-developers app
Click to expand...
Click to collapse
Thank you, I think for JB CM wants to use -O2 when compiling so I'm not gonna touch that one (for now)
A Good place to start would be with Keiran's building ICS tutorial with some changes.
First off, I'm using Ubuntu 10.04 LTS, but Ubuntu 12.04 LTS *should* work (no guarantees)
To download the vendor tree (vendor/semc)
use this instead of what Keiran has (koush cleaned out a lot of the vendor trees out of his git, and mine is outdated)
Code:
git clone https://github.com/kali-/proprietary_vendor_semc.git -b ics semc
also, I'm using the ICS device tree (same as keiran) instead of JB because the JB tree's are not 100% functional right now.
Pretty much if you follow that (& I suggest instead of doing make -j# bacon do mka bacon) & run into any errors, i'll help with whatever suggestions I might have (or anybody else)
Note: If somebody needs help trying to build AOKP, I'll help, but I'm not as familiar with the source as I am with CM
Pax
Also, before I forget, here a how-to sync caf's (code aurora forums) repo (similar to cm/AOSP/etc)
https://www.codeaurora.org/xwiki/bin/QAEP/
The branch I synced was jb.
Pax
Sent from my R800x using Tapatalk 2
First build is complete, I'm need to make a nanadroid & flash a new kernel (I'm on keics/CNA right now so it'll be a little bit before I post results )
Pax
hi,
it won't boot on sony ericsson hdpi devices without msm.... changes (look at mini pro thread you will find a lot of usefull information about it)
you need to enable triple buffer in the kernel
Thanks Nickholtus, i'll look into it.
Status 6 error in the update-script (really? off the cm-10 building ?!?!) so i'm working on that now...
if you can fix the framebuffer error in the kernel we have a fully booting rom
kamarush made a build for me (from cm10 sources) with play device tree (his own)
only that error is preventing a boot
edit: can you upload your current kernel?
i know a ugly fix to get it at least booting, but i am on holiday now and i only have a windows pc with slow internet and no kernel
nickholtus said:
if you can fix the framebuffer error in the kernel we have a fully booting rom
kamarush made a build for me (from cm10 sources) with play device tree (his own)
only that error is preventing a boot
edit: can you upload your current kernel?
i know a ugly fix to get it at least booting, but i am on holiday now and i only have a windows pc with slow internet and no kernel
Click to expand...
Click to collapse
I'll probably base it off either FXP or Mjolnir's kernel (sorry Lupus)
[sritke]Do you have a link with a how-to add in triple buffer? [/strike] CAF!! - https://www.codeaurora.org/gitweb/q...it;h=50c3bc621e2cf0c3587b1827d931738d148c33d8
UPDATE: Nickholtus, it's not this easy, is it?!?! https://www.codeaurora.org/gitweb/q...;hpb=1125e58c5744e1ad833e30e5d2a74eb6dca1ca20
Also, if anybody wants to try to fix the update-script, i've attached it
no i don't know, we think it is in msm_fb.c in the kernel source
see this post for more info: http://forum.xda-developers.com/showpost.php?p=29062634&postcount=177
edit:
i don't think so, but i can't try it.
kamarush couldn't find it (how to enable triple buffer) but if that's it it is an easy fix
nickholtus said:
no i don't know, we think it is in msm_fb.c in the kernel source
see this post for more info: http://forum.xda-developers.com/showpost.php?p=29062634&postcount=177
---------- Post added at 09:03 PM ---------- Previous post was at 08:58 PM ----------
i don't think so, but i can't try it.
kamarush couldn't find it (how to enable triple buffer) but if that's it it is an easy fix
Click to expand...
Click to collapse
Here's the best diff (all 3) i've found for the commit
https://www.codeaurora.org/gitweb/q...ff;h=acffb1675f468a85f528e01707f3fa98f45b77f8
i am going ask kamarush and see what he thinks
he thinks it can probaply fix it
While I'm no help for this, for the script stuff, can't you enlist the help of the supercharger guy? He seems to be pretty adept with script lark.
Obviously, that's coming from an outsider.
Sythedragon said:
While I'm no help for this, for the script stuff, can't you enlist the help of the supercharger guy? He seems to be pretty adept with script lark.
Obviously, that's coming from an outsider.
Click to expand...
Click to collapse
hahaha, different type of scripts, but thanks for the idea
Pax
Also: Made the changes in the kernel I have on hand, fxp's from cm9/10 source. I've added in the correct stuff to cyanogen_zeus_defconfig & mach-msm/board-semc_zeus.c as soon as I'm done downloading Doom's ndk, i'll try & build it & see if it works
Pax
kamarush is making the kernel for me, with triple buffer enabled
edit: haha you was faster
nickholtus said:
kamarush is making the kernel for me, with triple buffer enabled
edit: haha you was faster
Click to expand...
Click to collapse
I was, then I got arrowed in the knee
Or i would be, but then my git clone downloads at ~200 kb/s
Nickholtus,
Here's a test kernel, the changes are in the zImage, the ramdisk is FXP's from well, it's a source build off code from yesterday.
thanks
going to try it now
still the same error
edit: i need to get adb working
doesn't find the device
Lemme look into it, i'll test it out shortly (trying to get my build of cm10 to install )
Pax
Edit: Nickholtus, could you post a link to your build, mine just doesn't want to work
Pax
Edit 2: I think it's because i'm coming from CNA to CM10, i'm gonna build cm9 then retry with that
Pax
i can't upload my build, the upload speed here is 15kbps atm
Hi,
I've got Ubuntu Touch running on my Xoom, not perfectly. I have an LTE Xoom, but I'm building as if it is Wifi Only (I no longer have service on LTE).
Issues:
Font rendering in some places is unreadable.
Display settings have to be manually tweaked in /usr/bin/ubuntu-session to set GRID_UNIT_PX=10
Have not tested sound at all
Camera doesn't seem to work
Haven't tested GPS
Installation instructions:
reboot in recovery
wipe
install base Xoom (Wingray) Image: cm-10.1-20130228-UNOFFICIAL-wingray.zip md5: b1391ff076e67f68f89606c2ae349986
install the Ubuntu 12.10 Touch Preview, daily build quantal-preinstalled-phablet-armhf.zip*
reboot
use ubuntu_chroot to edit /usr/bin/ubuntu-session and set GRID_UNIT_PX=10
reboot
Fixed:
I'm able to connect to my wifi and use the internet via an adb (ubuntu_chroot shell), but apps including the browser used from the device don't seem to have connectivity.
*This download is a daily snapshot, the latest version may or may not work, I've only tested using the version from 20130228.
Reserve a spot for some more technical details.
Could i get a link? I would love to give this a try! :good:
mikedmor said:
Could i get a link? I would love to give this a try! :good:
Click to expand...
Click to collapse
PM with the link sent, when I get to 10 posts or get moderator approval, I'll edit the original post to include the download link.
Please keep me posted on how it goes. I'll try to document the steps I took to get it running soon (very minimal, just followed the official porting guide)
Just finished building it as I have seen Xoom support removed from the wiki yesterday. Did you unset CONFIG_ANDROID_PARANOID_NETWORKS to make apps work?
dreamcwli said:
Just finished building it as I have seen Xoom support removed from the wiki yesterday. Did you unset CONFIG_ANDROID_PARANOID_NETWORKS to make apps work?
Click to expand...
Click to collapse
I did not unset CONFIG_ANDROID_PARANOID_NETWORKS as it broke the build and I have not had time to investigate it further. Were you able to build with it unset? Is the networking in the apps working for you?
skippyishappy said:
I did not unset CONFIG_ANDROID_PARANOID_NETWORKS as it broke the build and I have not had time to investigate it further. Were you able to build with it unset? Is the networking in the apps working for you?
Click to expand...
Click to collapse
I comment several lines in the kernel source code so I can build it with the flag unset. I still can't fully boot Ubuntu Touch as the libraries used are not in the runtime path so I need to fix it. Will report here when I have time to work on it.
Good luck on the development
Sent from my GT-N7000 using Tapatalk 2
Thx dreamcwli and OP
This project sounds like it will be good for devs and enhanced users and it keeps the hopes of the xoom staying around for a few more years.
Keep up the work and give us hope.
Did you symlink libraries under /data/ubuntu/usr/lib/armeabihf to /system/lib to boot the system?
...
CBDSonline said:
Thx dreamcwli and OP
This project sounds like it will be good for devs and enhanced users and it keeps the hopes of the xoom staying around for a few more years.
Keep up the work and give us hope.
Click to expand...
Click to collapse
+1
dreamcwli said:
Did you symlink libraries under /data/ubuntu/usr/lib/armeabihf to /system/lib to boot the system?
Click to expand...
Click to collapse
I did no modifications to the ubuntu partition other than changing the GRID_UNIT_PX to make the layout fit the screen better. On my first attempt the screen was black, so I took a look using adb logcat and saw:
I/SurfaceFlinger( 1064): SurfaceFlinger is starting
I/SurfaceFlinger( 1064): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/libEGL ( 1064): eglGetDisplay:121 error 300c (EGL_BAD_PARAMETER)
E/libEGL ( 1064): eglInitialize:137 error 3008 (EGL_BAD_DISPLAY)
Click to expand...
Click to collapse
This made me suspect it was missing some binaries (the only ones I'm using are from the Google binaries page for the Wifi Xoom).
device/moto/wingray/device_base.mk is looking for the vendor directories which do not match the directories I had after extracting them.
mv vendor/moto/ vendor/motorola
mv vendor/motorola/stingray/ vendor/motorola/wingray
Click to expand...
Click to collapse
Then rebuild with brunch and the error was gone and the screen lit up with Ubuntu touch.
skippyishappy said:
I did no modifications to the ubuntu partition other than changing the GRID_UNIT_PX to make the layout fit the screen better. On my first attempt the screen was black, so I took a look using adb logcat and saw:
This made me suspect it was missing some binaries (the only ones I'm using are from the Google binaries page for the Wifi Xoom).
device/moto/wingray/device_base.mk is looking for the vendor directories which do not match the directories I had after extracting them.
Then rebuild with brunch and the error was gone and the screen lit up with Ubuntu touch.
Click to expand...
Click to collapse
I have updated the location path for proprietary blobs. What I got is linker.c can't load /system/lib/libubuntu_application_api.so. Did you use Ubuntu-specific tools to build it? I am on Arch Linux so I am thinking about it those tools make different result.
dreamcwli said:
I have updated the location path for proprietary blobs. What I got is linker.c can't load /system/lib/libubuntu_application_api.so. Did you use Ubuntu-specific tools to build it? I am on Arch Linux so I am thinking about it those tools make different result.
Click to expand...
Click to collapse
To setup my environment, I created a new VM using Ubuntu 12.04 LTS and followed the steps in "Set up your development environment" in the porting guide.
skippyishappy said:
To setup my environment, I created a new VM using Ubuntu 12.04 LTS and followed the steps in "Set up your development environment" in the porting guide.
Click to expand...
Click to collapse
Now this is interesting!!!! Xoom is not officially supported by canonical, a 14year old was trying to port it. Even if the device is not listed anymore you can send an email to canonical and tell that you will be the one to port it to xoom! Keep up the good work. i am willing to test your work! I have a UMTS_Everest xoom. If you are interested please PM the links to me
Cheers!
darksnoopy said:
Now this is interesting!!!! Xoom is not officially supported by canonical, a 14year old was trying to port it. Even if the device is not listed anymore you can send an email to canonical and tell that you will be the one to port it to xoom! Keep up the good work. i am willing to test your work! I have a UMTS_Everest xoom. If you are interested please PM the links to me
Cheers!
Click to expand...
Click to collapse
PM sent. The port itself has been trivial, at least getting it to boot. Easy to see why Canonical chose this path.
Very interested in this please pm me a link, I have a little knowledge of linux so I may be able to play around a bit.
slaming said:
Very interested in this please pm me a link, I have a little knowledge of linux so I may be able to play around a bit.
Click to expand...
Click to collapse
PM'd, I should be able to edit my original post with the download links now.
I can confirm developers have to use phablet-dev-bootstrap tools to build it now. With phablet-dev-bootstrap you will get additional components that are required for Ubuntu Touch. I will test how network going with my build.
Built it and working fine now. With CONFIG_ANDROID_PARANOID_NETWORK unset I can use browser and other network apps without problem. However the usability is not good at current stage.
How does one port ROMs to another phone? I'm looking to try and port Xylon to the Find 5.
Sent from my X909 using xda app-developers app
it's really not that difficult. just have to adjust some overlays, change some stuff in vendor and maybe grab the camera from CM if the changes haven't been made to that ROM.
if you are building from source:
Find the 4.2.2 source code of the ROM you want to port
Get the manifest.
Add the CM10.1 device/kernel tree and proprietary libs in the .repo/local_manifest/roomservice.xml
sync all the repos
(do whatever the source might need you to set up: EG paranoid android, need you to setup your device properly in vendor/pa/* files)
compile. Fix any problems(maybe missing files, etc)
you could try a non-4.2.2-based ROM to port, but you'll run into more incompatibility issues to fix
mbh87 said:
it's really not that difficult. just have to adjust some overlays, change some stuff in vendor and maybe grab the camera from CM if the changes haven't been made to that ROM.
Click to expand...
Click to collapse
So would you say just use this
http://forum.xda-developers.com/showthread.php?t=2232773
And the CM10 for our Oppo?
Sent from my X909 using xda app-developers app
newbcake said:
So would you say just use this
http://forum.xda-developers.com/showthread.php?t=2232773
And the CM10 for our Oppo?
Sent from my X909 using xda app-developers app
Click to expand...
Click to collapse
No, build from source since it's available.
mbh87 said:
No, build from source since it's available.
Click to expand...
Click to collapse
You mean Oppo's source or AOSP from Google? I presume AOSP
Sent from my X909 using xda app-developers app
assuming this is the one you want to port (it is using 4.2.2, so hopefully it'll be easier)
read their README: https://github.com/XYAOSP/buildscripts
use repo and checkout this manifest
https://github.com/XYAOSP/platform_manifest/blob/jb4.2/default.xml
use repo and sync all the repos
then see how I get the device specific files here? do the same https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Build#Get-device-specific-sources-and-build
then follow whatever instructions needed to build. if it uses CM based building (which i think they do here, then do
. build/envsetup.sh && brunch
select the find5 entry (if it;s not there, then do lunch, select find5, mka)
wait for it to fail. read error message. fix error message. repeat last 3 steps .. Google is your friend... learn to love google
---------------------------------------
you should try building CM10.1 first. there will hopefully be no errors, and you learn how to use brunch/lunch/breakfast / etc
https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Build
paperWastage said:
assuming this is the one you want to port (it is using 4.2.2, so hopefully it'll be easier)
read their README: https://github.com/XYAOSP/buildscripts
use repo and checkout this manifest
https://github.com/XYAOSP/platform_manifest/blob/jb4.2/default.xml
use repo and sync all the repos
then see how I get the device specific files here? do the same https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Build#Get-device-specific-sources-and-build
then follow whatever instructions needed to build. if it uses CM based building (which i think they do here, then do
. build/envsetup.sh && brunch
select the find5 entry (if it;s not there, then do lunch, select find5, mka)
wait for it to fail. read error message. fix error message. repeat last 3 steps .. Google is your friend... learn to love google
---------------------------------------
you should try building CM10.1 first. there will hopefully be no errors, and you learn how to use brunch/lunch/breakfast / etc
https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Build
Click to expand...
Click to collapse
Is there something wrong with the Xylon repo? I keep getting this:
Code:
Cannot fetch htc-msm8960/[some path here]
newbcake said:
Is there something wrong with the Xylon repo? I keep getting this:
Code:
Cannot fetch htc-msm8960/[some path here]
Click to expand...
Click to collapse
use google and your own intuition to help you (this is why you should build the Cm10.1 ROM first.... the knowledge you gain will help you)
most likely either github is down, or the path referencing it is invalid, or something......
but the question is, do we need htc-msm8960? most likely no, since the oppo kernel is self contained
^^^ all this comes from experience.... seriously, go build cm10.1 for the find 5 first
paperWastage said:
use google and your own intuition to help you (this is why you should build the Cm10.1 ROM first.... the knowledge you gain will help you)
most likely either github is down, or the path referencing it is invalid, or something......
but the question is, do we need htc-msm8960? most likely no, since the oppo kernel is self contained
^^^ all this comes from experience.... seriously, go build cm10.1 for the find 5 first
Click to expand...
Click to collapse
we probably dont need it, but a lot of ROMs make you download ALL their devices and corresponding files.
Well, I removed the HTC lines from manifest.xml (maybe not a good idea?) but anyway, it finished syncing after.
mbh87 said:
we probably dont need it, but a lot of ROMs make you download ALL their devices and corresponding files.
Click to expand...
Click to collapse
yeah... it's a problem with a simple fix.... if the error was something like "packages_mms_app", then it's a more serious problem.....
does removing that repo mask a larger problem? that's why I'm pushing for OP to start small first by building CM10.1, and learn the environment (instead of posting every single problem he encounters here, and asks for help)
I've only started playing with android source code in March/early april... and these are things that I've learned/picked up since then.
paperWastage said:
yeah... it's a problem with a simple fix.... if the error was something like "packages_mms_app", then it's a more serious problem.....
does removing that repo mask a larger problem? that's why I'm pushing for OP to start small first by building CM10.1, and learn the environment (instead of posting every single problem he encounters here, and asks for help)
I've only started playing with android source code in March/early april... and these are things that I've learned/picked up since then.
Click to expand...
Click to collapse
Understood. I'm syncing up the Cm10 now. Thanks!
Is is best to do this all on Linux, Mac, or Windows?
It isn't possible to do it on windows so one of the other two.
mbh87 said:
It isn't possible to do it on windows so one of the other two.
Click to expand...
Click to collapse
Cool thanks. I just "finished" my compile on my Mac 10.7.8 but there was something about gcc422 not found. I have the latest XCode installed along with Dev tools. So can anyone help cause I didn't see anything with a Google.
I presume a clean Ubuntu is preferred
Sent from my X909 using xda app-developers app
newbcake said:
Cool thanks. I just "finished" my compile on my Mac 10.7.8 but there was something about gcc422 not found. I have the latest XCode installed along with Dev tools. So can anyone help cause I didn't see anything with a Google.
I presume a clean Ubuntu is preferred
Sent from my X909 using xda app-developers app
Click to expand...
Click to collapse
it's preferable
even on ubuntu, you still have to get specific packages: need oracle version of jdk, not openjdk, need to remove some incompatible stuff
heres a guide for ubuntu 12.10
https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Android-setup
paperWastage said:
it's preferable
even on ubuntu, you still have to get specific packages: need oracle version of jdk, not openjdk, need to remove some incompatible stuff
heres a guide for ubuntu 12.10
https://git.ngvincent.com/projects/oppo-x909-cm10/wiki/Android-setup
Click to expand...
Click to collapse
I tried compiling CM10, and am even having problems with that. Google did not seem to help for this. Here is what I did:
I did the mka, then mka otapackage, and NOTHING is appearing. No zips at all.
Code:
hardware/qcom/media/mm-video/vidc/vdec/src/omx_vdec.cpp:9925:138: warning: format '%d' expects argument of type 'int', but argument 5 has type 'OMX_U32 {aka long unsigned int}' [-Wformat]
make: *** wait: No child processes. Stop.
That is the last fine before it gives me control of terminal again.
newbcake said:
I tried compiling CM10, and am even having problems with that. Google did not seem to help for this. Here is what I did:
I did the mka, then mka otapackage, and NOTHING is appearing. No zips at all.
Code:
hardware/qcom/media/mm-video/vidc/vdec/src/omx_vdec.cpp:9925:138: warning: format '%d' expects argument of type 'int', but argument 5 has type 'OMX_U32 {aka long unsigned int}' [-Wformat]
make: *** wait: No child processes. Stop.
That is the last fine before it gives me control of terminal again.
Click to expand...
Click to collapse
a few tips
typically, compilers only stop when there's an error, not warnings (unless you set flags like -Werror )
compiling is parallelized.... let's say you have a quad core, you can compile 4 projects simultaneously... when you have an error on the first make file, it stops.... but the other 3 projects will continue compiling and outputting logs until they're done (then the scheduler sees the first make file has an error, doesn't execute any more make builds and halts), so the last log file/line might not be showing you the error
For CM10.1, find5 is official now... you can just use brunch instead of breakfast/lunch & mka
paperWastage said:
a few tips
typically, compilers only stop when there's an error, not warnings (unless you set flags like -Werror )
compiling is parallelized.... let's say you have a quad core, you can compile 4 projects simultaneously... when you have an error on the first make file, it stops.... but the other 3 projects will continue compiling and outputting logs until they're done (then the scheduler sees the first make file has an error, doesn't execute any more make builds and halts), so the last log file might not be showing you the error
For CM10.1, find5 is official now... you can just use brunch instead of breakfast & mka
Click to expand...
Click to collapse
In essence, I scour the log for errors?
I just presumed as CM10 already existed on the Oppo Find 5, it would be an error-free compile.
newbcake said:
In essence, I scour the log for errors?
I just presumed as CM10 already existed on the Oppo Find 5, it would be an error-free compile.
Click to expand...
Click to collapse
you could source the log for errors
or just run the compile script again and again.... the scheduler will continue building other packages, but it'll come to a point where it can't build anything else without that broken package.... and hence, the error in the log will be obvious(since everything else is already built, no logs from them)
it should be an error-free compile, but sometimes things could happen (a small tweak in package/A gives some problems when compiling with package/B)
I would say, most likely there's some build package incompatibility in your system.
Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
Prerequisites:
- You must have a Linux firmware running on your computer (I suggest Builduntu because you can skip the next one [build environment setup])
- Build environment setup (Put the this in terminal and follow instructions)
- Patience and a heart willing to learn
- You need to know the languages C, C++, Java, Ruby, Python... NOT! You don't need to know ANY coding languages.
[MOTIVATIONAL SPEECH]
Truth be told, when I first started out developing, I knew NO coding languages except for HTML and a little bit of Java. Both have nothing to do with kernels! I actually learned how to do this when I suffered from a concussion. So if you really want to learn how to kernel dev and you give up halfway, just know that a 14/15 year old kid could do it..
[/MOTIVATIONAL SPEECH]
Click to expand...
Click to collapse
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Your Personal Handbook to the Following:
- Anything inside "CODE" boxes, type it into your terminal. If you can't find terminal, then press CTRL, ALT, t.
- If I were you, I would write these by hand instead of copying and pasting it because after a certain amount of times, you will remember the linux commands and it will be easier for you to compile more kernels for different devices
- Use this thread as a "Help Me" button. Ask for help!
Click to expand...
Click to collapse
A New Beginning:
Let's start out with something simple, getting the actual code:
Code:
git clone https://github.com/cyanogenmod/android_kernel_motorola_msm8226
This could range from 3 minutes to 2 hours!
Once that's done, open up your file manager and rename the folder (should be android_kernel_motorola_msm8226) to whatever you want. I will refer it as "mykernel".
Click to expand...
Click to collapse
Pokemon!
For this tutorial, we will be using a Sabermod 4.7 toolchain to compile. I WOULD teach you how to compile with 4.8+, but it creates errors that will take even longer for me to write about sooooooooo :fingers-crossed:. Now to get the toolchain:
Code:
git clone https://github.com/SaberMod/android_prebuilts_gcc_linux-x86_arm_sabermod-arm-eabi-4.7
Rename this to whatever you like, but I will be referring this as "toolchain"
Now go into you folder where the kernel source is stored...
Code:
cd mykernel
Click to expand...
Click to collapse
You're Almost There!:
Time to set-up the compiler!
Code:
export CROSS_COMPILE=/home/(insert linux home name here)/toolchain/bin/arm-eabi-
This tells the toolchain that "OK, we want to make ALL this code here into a kernel".
This next line tells it that your defconfig (the toolchain's manual for compiling the kernel) that it's in the arch/arm/configs folder.
Code:
export ARCH=arm
Now to tell the it what the defconfig is!
Code:
make falcon_defconfig
Hehe, now to the hardest part of all...
MuHAHHAHAHa
Click to expand...
Click to collapse
THE HARD (coding) PART
You ready for this? HERE IT IS! TIME TO BUILD THE KERNEL!
Code:
make -j4
Now sit back, relax, and watch the code! Or you could read a book, watch ****, count your fingers, play with your toes...
If you have an error during the waterfall of code, find the part where it actually says *error* (you'll probably have to scroll upwards) and search it on Google or post it here.
Click to expand...
Click to collapse
THE BEST PART
If you manage to get something that says "the kernel zImage is ready" or something like that, that means you've made it!
You have officially compiled your own kernel from source! Now you need to put it in a flashable zip.
Download this file and open it up, but DON'T EXTRACT IT.
Now go to your kernel source then "CTRL + F" and search for "zimage-dtb".
Find it and put it in the "kernel" folder of "FalconKernel - Signed.zip". Then "CTRL + F" and search ".ko".
Copy radio-iris-transport.ko and put it in the system/lib/modules (not pronto) of the zip.
Then find wlan.ko and rename it to pronto_wlan.ko. Copy and paste it in system/lib/modules/pronto of the zip.
Click to expand...
Click to collapse
Now you can put it on your phone and flash it!
I will update this in a bit. What feature would you guys want in your kernel? The most votes in the POLL above will be the one I teach you here!
Here I will walk you through on how to add the intelliplug feature made by @faux123
First, fetch my Green Machine kernel source (go into your kernel folder in terminal):
Code:
git fetch https://github.com/YoshiShaPow/green_machine_falcon
Then you could cherry-pick (basically copy) all my cherry picks for intelliplug from my source.
If you do check my source out, you can see there's a little link to a history of commits near the middle of the screen, right above the files/folders. You can see at this page of my features history, you'll see a bunch of commits for intelliplug. I will use those commits and copy it to your own kernel.
This copies the initial coding/first commit of intelliplug!
Code:
git cherry-pick 01a850f
This cherry-picks the remaining commits so that your newly added intelliplug is updated.
Code:
git cherry-pick 6623f2f^..4e1ece7
One more thing though, you need to add the line to compile intelliplug!
Almost all things compiled along with the zImage are in a file called defconfig. What a defconfig does, is tell your machine to build certain modules, kernel objects, drivers, governors, etc.etc.etc.. Now, all of them are found in the folder
arch/arm/configs
Click to expand...
Click to collapse
As stated in the OP, you have to modify the defconfig you use. (CM11 Kernel is falcon_defconfig, Gummy Kernel is msm8226_mmi_defconfig). Open up the corresponding defconfig and add this to ANY line anywhere.
Code:
CONFIG_INTELLI_PLUG=m
Now, for those who are familiar with "y=yes/n=no/m=maybe", you'll see that I specifically told you to put the "m=maybe" one. That's because when you compile the kernel again, right after you're about to start your build. Since you put that "m", the terminal will prompt you with a "y=yes/n=no" question on whether or not you would like to add the following feature. Since you would like to add the feature, put in "y". Later on when you feel more comfortable with adding features to your kernel, you can go back into the defconfig and put it as
Code:
CONFIG_INTELLI_PLUG=y
So that it will compile it without asking, since you have given it an answer.
Now you have officially compiled a "Custom Kernel" and with the knowledge you know, you could create a feature packed one by just kanging (copying one's work/features).
Always remember to
Code:
make clean && make mrproper
after every build to prevent errors and such!
Click to expand...
Click to collapse
I will use this to teach you how to make your own Bash Building scripts (and save time) to make it easier for your development life to flourish... eventually....
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Best guide but how to add features likes s2w,dt2w etc
Flashhhh said:
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Click to expand...
Click to collapse
Vote in the poll above! I will make a guide for one or more of the top chosen picks!
Brawn_Sg said:
Best guide but how to add features likes s2w,dt2w etc
Click to expand...
Click to collapse
DT2W and S2W are more complex. They require a few other things (ex. Powersuspend). I'll wait a bit and see what feedback I get before moving forward to something a bit more complex like DT2W, or GPU Overclock.
Can i use make menuconfig?
Krizthian said:
Can i use make menuconfig?
Click to expand...
Click to collapse
Yes you can. Normally when using "make menuconfig", you use the command after making the kernel's defconfig (falcon_defconfig).
Build using Docker
If you're on Linux, take a look at this approach which uses Docker for building CyanogenMod 12.0:
http://forum.xda-developers.com/showthread.php?t=2650345
(Disclaimer: It's written by me)
YoshiShaPow said:
Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Now you can put it on your phone and flash it!
Click to expand...
Click to collapse
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
karthik432 said:
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
Click to expand...
Click to collapse
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
YoshiShaPow said:
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
Click to expand...
Click to collapse
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
karthik432 said:
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
Click to expand...
Click to collapse
That has nothing to do with this thread :silly:. You probably have to sign the zip again.
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Luffy.d said:
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Click to expand...
Click to collapse
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
YoshiShaPow said:
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
Click to expand...
Click to collapse
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
great I start today
Luffy.d said:
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
Click to expand...
Click to collapse
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
YoshiShaPow said:
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
Click to expand...
Click to collapse
thanks bro...will pm you when i finish setuping my git
etvtaglios said:
great I start today
Click to expand...
Click to collapse
Go for it bro!!