Hi all,
my problem is about building CM6 kernel adapted by iVendor for the tattoo.
I tried to used SPQRom's Kernel to build my own ROM, (also based on Cyanogen of course : actually following Cyanogen tutorial to Build Kernel from Source.
Unfortunately, I encounter a problem while building HTC_Battery...
Code:
CC arch/arm/mach-msm/htc_battery.o
arch/arm/mach-msm/htc_battery.c:190: error: variable ‘usb_status_notifier’ has initializer but incomplete type
arch/arm/mach-msm/htc_battery.c:191: error: unknown field ‘name’ specified in initializer
arch/arm/mach-msm/htc_battery.c:191: warning: excess elements in struct initializer
arch/arm/mach-msm/htc_battery.c:191: warning: (near initialization for ‘usb_status_notifier’)
arch/arm/mach-msm/htc_battery.c:192: error: unknown field ‘func’ specified in initializer
arch/arm/mach-msm/htc_battery.c:192: warning: excess elements in struct initializer
arch/arm/mach-msm/htc_battery.c:192: warning: (near initialization for ‘usb_status_notifier’)
arch/arm/mach-msm/htc_battery.c: In function ‘htc_battery_init’:
arch/arm/mach-msm/htc_battery.c:1749: error: implicit declaration of function ‘usb_register_notifier
I suppose this should work since you successfully built the Kernel for tattoo (I retrieved it from a working ROM : the lattest released on the first post)... then I am trying to figure out what could be the problem here.
I read somewhere that I should port back the gadget driver from 2.6.29 to 2.6.27... unfortunately I don't know how to do it, and anyway I don't understand why I should do this whereas this should be working since it's from a successfully installed kernel. Same thing about other suggested modifications (enabling/disabling some support).
So if someone has any idea here, I thank you in advance about them.
And anyway, thanks for reading me.
Regards.
PS : running on Ubuntu 10.10 with latest versions of required tools
What kernel version are you trying to compile? The one in CM repo? That's 2.6.35 and not working with the Tattoo. You have to use the 2.6.29 click sources from developers.htc.com. To get a working config to build from, add msm7225_defconfig to the make command. Ie: make ARCH=arm CROSS_COMPILE=$CCOMPILER msm7225_defconfig
Yes, I was working with the version in CM6 repo.
I thought the difference was just a matter of config, and thus only retrieved the config file from the running version of iVendor's Kernel, and applied it to the current version of the CM6 kernel.
But then, after reading your remarks, I realized I had to think a little more hard about what I was doing. And since I want to build a FroYo based rom and not a Donut one, I can't work with HTC base one.
Thus I dug a little further and realized iVendor was using fyodor's Kernel which is not exactly CM6 vanilla one. So, I instead downloaded Fyodor's kernel and made it.
But for a small error related to page-writeback.c (I had to comment a line "BUG_ON" that resulted in a segmentation fault in the compiler), the compilation worked fine.
I then used dsixda kitchen to cook the SPQ6 Rom and unpack the SPQ6 boot.img : I then replaced the kernel with the one I just managed to compile... repacked... and built the whole bunch.
And here come the new problems!
Code:
Failure at line 86 : run_program PACKAGE:installbusybox
I am not really sure what the problem here is, since the busybox in there should be suited to the Rom... should I download another version or is there some problem regarding the config?
Anyway : thanks a lot for letting me ask the accurate questions. This is still a long step to my own custom Rom, but each short step help me get closer to it!
As to why we are stuck on kernel 2.6.29, it's because that's the kernel HTC made the drivers for the Tattoo on. To use newer kernels, drivers would need to be forward ported, which is a major task. Just copying them into a new kernel tree won't work, as you would end up with compile errors because of code changes in the kernel itself.
Regarding the busybox problem, when you unpack the rom in the kitchen, select to not convert the installer script, and it should be ok I think.
Thanks for your explanations.
Regarding my build, I tried to not change the script, and it resulted in another kind of error (line 1 "impossible to mount TMP").
However, since it was only for validating my build, I tried it another way : I downloaded Fyodor full ROM (at least I was sure it would work), unpacked it, replaced the kernel in it by the one I just built (with very minor modifications), and repack the whole bunch...
And it worked perfectly well (althouth I did not do any more custom). So at least I validated the kernel build. So maybe dsixda's kitchen is not suited to build cyanogen-based rom.
Now, my goal is to add my own android build* to this kernel instead of using Fyodor's one. I will start from Cyanogen android repo and try to pack the resulting system/ within the update.zip with this working kernel.... although I don't know yet how to do it
*(not only small features like animation, or themes, but sources modifications in some classes)
More news about this next week : a busy week coming now!
Enjoy it, and thanks for your help.
Related
Hello all,
Forgive me if this has been asked/requested before. Is there a version of the cifs.ko module that is compiled for any of the current custom ROMs? I am looking for this file or would like to know how to compile it for a custom ROM. It is used to mount Windows SMB fie shares to our Captivate. I am currently using Cog's 2.2 Beta 9 ROM but it does not have the cifs.ko file.
Programs such as File Expert or Cifsmanager can handle the mounting once the cifs.ko file is present.
Any help would be appreciated,
Thanks in advance for any advice or direction to solving this issue.
I think not only cifs.ko. For double bytes characters support, nls_utf8.ko is also a must. If anyone can compile based on froyo source, it'll be awesome.
agreed on the double byte char
agreed that second file is required but as a start the cifs.ko is required. Fingers crossed someone can assist us,
Wow! Dead subject I guess
I thought this would be provide some great functionality to our Captivates but I guess it's just the two of us who are interested in such features. The adventure was fun while it lasted.
Juxtyce
http://forum.xda-developers.com/showthread.php?t=774321
peep this guys
I'm using Serendipity 5.12 with the Speedmod K13C kernel, and it definitely includes CIFS. There's an option in CWM to enable/disable it. I've been using it quite a bit with CIFSManager and Mount Manager.
juxtyce said:
Hello all,
Forgive me if this has been asked/requested before. Is there a version of the cifs.ko module that is compiled for any of the current custom ROMs? I am looking for this file or would like to know how to compile it for a custom ROM. It is used to mount Windows SMB fie shares to our Captivate. I am currently using Cog's 2.2 Beta 9 ROM but it does not have the cifs.ko file.
Programs such as File Expert or Cifsmanager can handle the mounting once the cifs.ko file is present.
Any help would be appreciated,
Thanks in advance for any advice or direction to solving this issue.
Click to expand...
Click to collapse
Most newer Speedmod and Voodoo based kernels include support for CIFS natively. In fact, with Speedmod it's simply a tweak enabled via recovery. I don't use Voodoo, so I won't say for certain, but I think it's enabled by default in most of the newer builds.
Also, it's worth mentioning, that cifs.ko, and associated helpers tend to only work correctly on a specific build of Android. So taking the cifs.ko from an older 2.1 version of Android will probably NOT work on any of the newer JPX-range or JSX-range of ROMs.
Shammyh said:
Also, it's worth mentioning, that cifs.ko, and associated helpers tend to only work correctly on a specific build of Android. So taking the cifs.ko from an older 2.1 version of Android will probably NOT work on any of the newer JPX-range or JSX-range of ROMs.
Click to expand...
Click to collapse
Exactly. The kernel module (.ko file) needs to be compiled against the source of the rest of the kernel or it will not load. I highly doubt that you will find a CIFS or TUN (for OpenVPN) module that is compiled against a generic source (JPX, KB1, etc) just floating around here. All of the CIFS and TUN support that I've seen are built in to the kernels themselves. If you want these features it's as simple as flashing SuckerPunch, SpeedMod, Firebird 2, or any other kernel for the Captivate that has that support built in. I use Firebird 2 v0.8.
If you don't want to flash a kernel, you have another route. You need to figure out what kernel source you are running (the version, such as 2.6.32.9, will likely not be good enough - you'll need to know if it's JPX or KB1 or something else), find a Captivate kernel that is based on that version, and either download the kernel and extract the zImage file to get the modules or PM the author and they might be kind enough to give you just the modules that you are looking for. This route is way more work and not guaranteed to work, but Linux is all about choices and that is what makes it fu*king awesome.
Good luck!
I have the latest Cyanongemod (Android 2.3.4) and i wish to know if it is compatible with Android Open Accessory Development Kit (ADK).
ADK is compatible only with Android 2.3.4 and 3.1 but im not sure if Cyanomgemod include the required libraries.
Hi!
I´ve been searching this for a while, and yes, cyanogenmod (at least nightly builds) support - you might have trouble getting other customs roms.
You need 2.3.4+ and 2.6.35+ kernel with CONFIG_USB_ANDROID_ACCESSORY flag set. Instructions about xml, permissions, here (sorry, cant post full urls):
github.com/ezterry/manifest-gingerbread-DS/issues/32
Push nexus files from here:
forum.cyanogenmod.com/topic/26339-usb-accessory-mode-is-adk-supported-in-cm-7/
And upload demokit via eclipse.
Regards
Robson
robsondantas said:
You need 2.3.4+ and 2.6.35+ kernel with CONFIG_USB_ANDROID_ACCESSORY flag set. Instructions about xml, permissions, here (sorry, cant post full urls):
github.com/ezterry/manifest-gingerbread-DS/issues/32
Click to expand...
Click to collapse
There is one problem - you cannot flash custom kernel on Milestone that is not signed by Motorola (locked bootloader). And the latest kernel that we have is 2.6.32.9, so that will not work.
If you want custom kernel (but without radio) you can try to have a fun with 2nd boot - http://droid-developers.org/wiki/2ndboot
look im a n00b(still learning android stuff),
so this question is just out of curosity
why cant we have kernel 2.6.32 ??
well google said froyo needs atleast 2.6.32 to run
but we here are running gingerbread smoothly on 2.6.29(thnaks to all the awsoms devs )
can someone knowledgble reply
thank you ;p
Simply because the kernel drivers needed for the X8 only exist in Linux 2.6.29 as published by Sony Ericsson.
If you would want to use a newer Kernel release (i.e. the ones Google is using for their Android builds) you need to port the drivers to that kernel version - read: make them fit the kernel.
That's a very tedious process, so it's easier for the ROM and Kernel developers to base their work upon the original SEMC Linux 2.6.29 sources.
on short: its easier to port drivers from 2.6.32 or 35 or 38 than make the base 2.6.32.... working on our phone
as b.jay said, porting kernels takes a long time, and if you recive only a couple of errors in the middle of it, BOOM, you gotta go back to the sart and track what wrong command you typed or what code is wrong etc. thats why no one has ported 2.6.32 kernel.
to many drivers to cope with, to much errors that you will recive. porting roms is easyer
thanks guyz for the answers....in short it is possible to have kernel 2.6.32....maybe nAa can port it....he has already backported some stuff.
It is possibe given someone wants to spend an insane amount of time (edit: we're talking several weeks to several months here) in forward-porting the Shakira specific drivers and additions to the ARM Linux code base.
I don't see it happen as it's a enormous undertaking for a single developer to port the whole stuff - that would require a medium-sized team of coders a) knowing what to port / b) well versed in Linux Kernel hacking / c) knowing how to code for ARM (edit: as the existing sources most likely need to be adapted to the Kernel ABI (in this case 2.6.3.x), which is not exactly stable in Linux and changes erratically as Linus' maintainers see fit. Also, don't forget that the changes need to be tested to see if the kernel boots and works flawlessly).
Don't hang your hopes too high.
need to much time to update linux version of kernel
But for instance lg optimus p350 has almost same specs but runs .32 kernel.it has same qualcomm 600 mhz cpu,ardeno 200,and 140 mb ram.so x8 has even better specs.so i dont se why this wouldnt be possible.
Sent from my GT-I5800 using xda premium
Hi,
I'm trying to build cyanogenmod 6 (froyo) from sources on github for G1.
Sidenote. The reason I'm trying to do this is i'd like to modify kernel parameters. I'm trying to make the phone talk to external device using built in serial port. I can do it with my current CM6, but it looks like serial debugger engages and starts responding to the device and also steals some of the data being sent to phone.
To build I used instruction posted at cyanogen wiki "HTC Dream & Magic: Compile CyanogenMod (OS X)" which covers gingerbread but checked out froyo-stable branch at first. I know that gingerbread version stopped supporting G1 at some point last year.
Without much success even after fixing manifest to point to updated repo urls from kernel.org to googles repo etc. The problem is that apache-http seems incompatible with old sources and it is referenced by head.
I also tried froyo branch, but it doesn't build as well because something seem to be broken for dream_sapphire, and it is not present in the devices anymore.
I've tried searching for compilation errors, and general build questions/instructions here and on cyanogen's forum, but looks like CM6 is not very active these days.
Can someone point me into right direction where to search for relevant info on building it? Would getting a proper revision help or should I combine stuff from several branches to make it work?
I've already spent quite a lot of time figuring out how build is being configured and how things stitch together but without much progress on the actual build.
And with times required to sync a whole repo and build it, it is becoming frustrating.
Any help would be muchly appreciated!
Regards,
Oleg
It's dead.
I also wanted to make a cm6 rom, but I couldn't get anything to work.
I got the addresses all updated but it looks like a bunch of the files have completely dissappeared. You may be able to make it skip those, but then it may not work completely.
Go for AOSP?
Now that's a shame. I wanted to build CM because I'm familiar with it and the other thing is that they have reasonable instructions about building it. But at least I don't need to waste my time trying to figure out how to fix it.
In fact I don't need any extras they provide, a bare android would suffice to me if all the sensors and connectivity would be available. But I'm not familiar with internals of building vendor specific stuff. My understanding was that I need proprietary parts together with AOSP to build a working ROM and that's one of the things CM guys did. Correct me if I'm wrong.
aliher1911 said:
Now that's a shame. I wanted to build CM because I'm familiar with it and the other thing is that they have reasonable instructions about building it. But at least I don't need to waste my time trying to figure out how to fix it.
In fact I don't need any extras they provide, a bare android would suffice to me if all the sensors and connectivity would be available. But I'm not familiar with internals of building vendor specific stuff. My understanding was that I need proprietary parts together with AOSP to build a working ROM and that's one of the things CM guys did. Correct me if I'm wrong.
Click to expand...
Click to collapse
Nope AOSP is as easy to build now
Go to the android site and follow directions
Google for "build android"
At the part when doing repo init you need to get the right branch
Go to "build for devices" then scroll down for recommended branches and look for the dream
One thing you'll need to do differently is do "make otapackage" instead of plain "make"
And once that's done you'll need to tweak the zip and get rid of the "recovery" folder and tweak the updater-script
Oh yeah, and I don't know exactly how you would do this part, but you'll need to get the source for a newer kernel in there, like ezterry kernel and use it with 2708+ radio/spl
Unless you wanna use the AOSP kernel & spl & radio which is old
What I did is just flash his kernel after the rom, but you want to do kernel stuff so yeah...
Sent from my HTC Dream using Tapatalk
Hey guys, I wanna start a new "little" project and hope for some help from the one or the other.
I just realized, that noone until now really compiled a stock ROM for our device.
That means, we can't get a fully customized ROM. I mean Zeus ROM is close to it, but it's pretty restriced, to the typical "tweaks" like kernel, theming and so on.
So I thought of trying to compile the sourcecode. It's still compiling, but if I already look at the build.prop, it looks like it's not building for our device, although I followed LG's advices that are:
Code:
How to build
1. Android build
(1) Get the android base source code.
- Download the original android source code (Android 2.3.4 gingerbread) from http://android.googlesource.com
(2) Overwrite modules that you want to build.
- Untar opensource packages of P970_BDop_GingerBread_v20s.tar.gz into downloaded android source directory
- And, merge the source into the android source code(gingerbread)
(3) Run the build scripts.
- You have to add google original prebuilt source(toolchain) before running build scripts.
- Run the following scripts to build android
$ ./build/envsetup.sh
$ make -j4
into the android folder
- If the android is built sucessfully, you will find the outputs in this directory,
"out/target/product/generic".
So far it looks and is pretty simple. But like I said, with the commands mentioned, I think it doesnt build for our device.
Had to bypass some errors, since I am using a more recent toolchains as LG seems to have used, but since goolge is my best friend, he told me what to do
Now how can we get this sourcecode compiled?
Do I have to start like rmcc did? And add these files/add the content he added?
https://github.com/CyanogenMod/andr...mmit/04b8b02f13c62239dad2884530ad07b9fe3ebd60
Dont wanna mess up my building environment and start over again, that's why I am asking.
When typing lunch, it only shows:
1. Emulator
2. crespo (I think)
3. some HTC device
4. one more
at least I cant pick p970.
Would be nice, if we could get that done, since it would probably also work for our hopefully soon coming ICS!
Then we could get a VEEERY good ROM for our already lil bit old device
Hope we can make it and I am sure we can
All recommendations are welcome.
About that, you need to setup the proprietary binaries for LGE to be able to setup P970 for lunch. Beside that, the prebuilt must be of the similar version.
Sent from my LG-P970 using Tapatalk 2
GB + LGE ROM sources = nothing...
You have to add p970 as available project for lunch... and you have to get all the proprietary files (right, from LG GB) and al the vendor blobs (from CM7)... but IMHO it would have the same problems as CM7... becuase CM7 is AOSP with some extra stuff...
Huexxx said:
GB + LGE ROM sources = nothing...
You have to add p970 as available project for lunch... and you have to get all the proprietary files (right, from LG GB) and al the vendor blobs (from CM7)... but IMHO it would have the same problems as CM7... becuase CM7 is AOSP with some extra stuff...
Click to expand...
Click to collapse
How about downloading and setting up cm7 for our device, maybe pull latest files from our phone, replace them, add lg s stuff and maybe some minor changes. Do you think, it would build cm or stock rom? Thanks for the input
Sent from my LG-P970 using xda app-developers app
N00BY0815 said:
How about downloading and setting up cm7 for our device, maybe pull latest files from our phone, replace them, add lg s stuff and maybe some minor changes. Do you think, it would build cm or stock rom? Thanks for the input
Sent from my LG-P970 using xda app-developers app
Click to expand...
Click to collapse
It would be CM7...
LG's ROM source code is close to nothing... only mods to non-proprietary stuff... there is NOTHING more. so CM7 sources + LG's source = CM7 source... CM7 has used LG's stuff for its project...
The way IMHO is:
- Take latest Gingerbread AOSP sources.
- Take a existent target (as Crespo) and duplicate all the needed stuff with a different name... as P970.
- Once you can build P970 (a Crespo ROM will be generated), modify all the stuff with vendor blobs from CM7 and proprietary files from LG's GB.
- A way to understand what you are doing is to take AOSP complete code... CM7 complete code, and compare the way both sources compile the same target, (Crespo...) to obtain the differences... Once you understand how change from AOSP to CM7 for Crespo, you will try to make the opposite from CM7 to AOSP for P970...
Regards.
have good luck
:fingers-crossed:
Good luck for your project...:good: