Compiling a working kernel - Galaxy S I9000 Android Development

Hi all,
I recently began editing the Galaxy S kernel, from the downloadable open source package.
After some time I compiled my changes into a zImage. My problem is, it won't flash when i put it in the most recent PHONE_I9000XWJG5.tar.
Odin3 just hangs at Flashing zImage...
My zImage is about 2.5MB in size, and the original JG5 zImage is 4.6MB, so I guess I am missing something.
I think I am missing the modules (which you can also compile). But I'm not sure.
Does anyone know how to compile a working kernel for the Samsung Galaxy S?
Thanks in advance!

First:
Read here: http://www.cianer.com/androidg1/28-building-android-kernel-images
Then here: http://www.receptorblog.com/wordpress/howto-compile-a-linux-kernel-for-samsung-galaxy/
and finally here: http://forum.samdroid.net/f9/dev-vmware-image-build-i5700-kernel-2-6-29-android-2-1-a-984/

not update.zip,why?
In recovery, no sd update.zip option, how can I tune out?

I'm also trying to make a new kernel based on JM5.
My goal is to fix the BlueTooth issues.. I think i've found the problem in a kernel's .c file...
I'm following this link:
HERE
I'm downloading the GT-i9000 opensource ZIP from Samsung, but i don't quite understand where can i get the Android Toolchain....
Is It really 6GB as it says HERE ?
I wish there was a XDA-like tutorial for this

Related

i would like to build my own kernel but i am not able to.. help me pls

I would like to build my i9000's kernel but there are problems
I've installed ubuntu 9.10.
As you know, i could download the source code from the web
In that there are codes for making kerne
and also there is a script, named build_kernel, which makes me be able to build the kernel.
At first, i installed sourcery toolchain and then modified the build_kernel.sh
Because the instruction said i should change toolchain's directory and prefix
And finally i built it writing './build_kernel.sh'.
It seemd to be working but there were so many errors
And the zimage file was small, it's only 2.1MB
I tried to flash that kernel but it made my phone go black.
Can anyone help me please?
What should i do?
How did some people make such great kernels? Sorry im newbie.
dkcldark said:
I would like to build my i9000's kernel but there are problems
I've installed ubuntu 9.10.
As you know, i could download the source code from the web
In that there are codes for making kerne
and also there is a script, named build_kernel, which makes me be able to build the kernel.
At first, i installed sourcery toolchain and then modified the build_kernel.sh
Because the instruction said i should change toolchain's directory and prefix
And finally i built it writing './build_kernel.sh'.
It seemd to be working but there were so many errors
And the zimage file was small, it's only 2.1MB
I tried to flash that kernel but it made my phone go black.
Can anyone help me please?
What should i do?
How did some people make such great kernels? Sorry im newbie.
Click to expand...
Click to collapse
check few threads behind you ... it is illustrated in the links.

[Q] Can we compile a working firmware with the Samsung source?

Pretty much as the title suggests. If not, where do I find a kitchen that works?
Nobody? How about kitchens?
Pretty much
But if you would set everything up and run the build_kernel.sh script, you would end up with a 2.5 MB zImage, which is almost half the size of original zImage. This is beacuse initramfs is not available. I am not sure about the consequence of flashing this.
You can initramfs for i9000 from LeshaK's github. Though you'll have to modify the script not to replace the downloaded .config with the defconfig for aries_rev03.
Wow, finally another DEVELOPMENT question!
Keep it up!
Now for my answer: I'm working on a kitchen, have the extract / mod part mostly done, now working on initramfs extract / mod / repack (without the need to compile the kernel!) and repacking everything for flashing.
I hope to come up with something where you can start with any existing rom (different from some kitchens which are based on a particular version), mix and match apps and features compatible with that rom, then cook it for flashing either straight from Odin or installing from an update.zip.
Search in Google for
SamdroidMod Kitchen All in One for Samsung Galaxy S i9000
Does the Samsung source distribution include all the drivers or are some binary only?
snaff said:
Does the Samsung source distribution include all the drivers or are some binary only?
Click to expand...
Click to collapse
Sources included
ykk_five said:
Sources included
Click to expand...
Click to collapse
Just be sure to get the most recent sources. An older zip I had still had only binary blobs for the graphics kernel module, but they have now been GPL'ed. Joy!

[GUIDE] dsixda's Android Kitchen - Now with Galaxy S support (Windows/Linux/Mac)

dsixda's Android Kitchen - Now for Samsung Galaxy S
Compatible with Windows (Cygwin) / Linux / Mac OS X
The following is a guide to assist you with creating your own Samsung Galaxy S custom ROMs with the kitchen. This is NOT a guide to help you become Cyanogen or do fancy things with AOSP, but it may be your springboard to bigger things in the future.
Some of you already know about the Android Kitchen. It is a project I started on back in February 2010 to help newbies create their own custom ROMs and learn more about Android. As of version 0.178, you can now create your own Galaxy S ROMs with the kitchen.
I'd like to thank Perka for testing and providing feedback, and also for giving me some ideas through his tutorial in his Ultimate ROM Cooking Guide.
[MAIN PAGE] [RELEASE NOTES] [FAQ - page 1] [FAQ - page 2]
​
PROCEDURE
This guide may be a bit basic right now but I will update it later if required.
First, you need a rooted Samsung Galaxy S with a ClockworkMod custom recovery. The kitchen supports the GT-I9000, but should also support most of its variants, such as the Captivate, Fascinate, Vibrant and Epic.
Visit the Android Kitchen thread to download the kitchen. Then, follow the link to the FAQ which will show you how to install it on Windows, Linux or Mac OS X. Ensure you read the FAQ carefully.
IMPORTANT (DO NOT IGNORE THIS STEP): To verify your variant of the Galaxy S works in the kitchen, read this post.
Put your base ROM(s) under the original_update folder. For the Samsung Galaxy S, there is support for the following formats which can be placed in that folder (you can place multiple ROMs there):
Stock firmware:
factoryfs.rfs (and optionally: cache.rfs, zImage)
PDA.tar.md5 (and optionally: CSC.tar.md5, PHONE.tar.md5)
PDA.tar (and optionally: CSC.tar, PHONE.tar)
TAR/ZIP file containing factoryfs.rfs (optional: cache.rfs, zImage, modem.bin)
TAR/ZIP file containing PDA.tar and others
TAR/ZIP file containing PDA.tar.md5 and others
Custom ROM:
ZIP file originally created by the kitchen from the stock firmware (NOTE: The kitchen does NOT support custom ROMs created through other methods, due to potential file structure incompatibility issues)
Nandroid backup from ClockworkMod recovery
system.img and boot.img
Here are some basic steps to creating your first ROM after you have your base of files under original_update (more options are available in the kitchen):
Start the kitchen with: ./menu
Create a working folder (by choosing your base ROM)
If you used a factoryfs.rfs but then didn't include the cache.rfs, then you have the option to add a cache.rfs later using the Extract CSC script in the Advanced menu's 'Plugins' section.
Optional: Add a rooted kernel (zImage) to the base of your working folder
You can create a ROM without a zImage and thus keep the existing kernel on your device, although keep in mind that a newer ROM may not work with a kernel meant for older ROMs!
If you use the stock kernel (zImage), you can always replace it later with the CF-Root kernel or any other custom/rooted kernel. Just replace the stock zImage anytime before you build the ROM.
Optional: Add a modem.bin to the base of your working folder, or remove the existing modem.bin if you don't want it. You can flash the ROM with or without a modem.bin.
Root your ROM
Add Busybox
In the Advanced options menu: De-odex your ROM
Build ROM
The ROM is built into a ZIP file meant for flashing from the custom recovery menu. No Odin.
Some notes:
Just select the defaults whenever you are asked about something in the kitchen and are unsure whether to type 'y' or 'n'.
There are lots of questions answered in the FAQ in Posts 3 and 4 of the main Android Kitchen thread. So please go through that first if you have any issues.
For the benefit of other readers, and to prevent confusion, please only discuss Samsung Galaxy S in this thread!
Most of all, have patience, take your time and enjoy!!
thanks for info mate exactly wat im looking for
cheers
Thx for this. Working very well.
Very nice guide
Just what i was looking for great
Sent from my GT-I9000 using xda premium
Thanks works very well! *5 stalls *
So i made my first selfmade rom for samsung s5660 Gio but i am getting errors trying to flash in cwm. First error i managed to solve as in the updater-script there were # missing at the mount and unmount options.
Now im having "assert failed: write_raw_image("/tmp/boot.img","boot")" error. Reading up on XDA i saw u mentioned that it has to do with wrong update-binary and someone solved it by adding "edify_def" but i have no clue what that might be.
Any help would be much apreciated.
Also u mention there are 3 update-binary. Any link to all 3 and can i just try with each one of them first?
Edit: adding the updater-script and update-binary
Gvdn said:
So i made my first selfmade rom for samsung s5660 Gio but i am getting errors trying to flash in cwm. First error i managed to solve as in the updater-script there were # missing at the mount and unmount options.
Now im having "assert failed: write_raw_image("/tmp/boot.img","boot")" error. Reading up on XDA i saw u mentioned that it has to do with wrong update-binary and someone solved it by adding "edify_def" but i have no clue what that might be.
Any help would be much apreciated.
Also u mention there are 3 update-binary. Any link to all 3 and can i just try with each one of them first?
Edit: adding the updater-script and update-binary
Click to expand...
Click to collapse
The Gio is not a Galaxy S device. This is where your problem lies. I am not sure how a ROM is constructed for that device.
dsixda said:
The Gio is not a Galaxy S device. This is where your problem lies. I am not sure how a ROM is constructed for that device.
Click to expand...
Click to collapse
So no matter what i try it wont work with kitchen? Damn too bad i was starting to know my way around it now
Kitchen made the whole rom without a problem tho. Using the boot.img option and following Perka guide. Just seems its not generating the Meta file correct.
Do u have any idea to what i asked earlier? If there is only 3 different update-binaries , can i get all 3 and test em out and 1 will work for sure or it wont work no matter what?
I don't know anything about your device, dude. Just copy one from an existing ROM that someone made for your device. Anyways you're asking about a non-Galaxy S phone so you'll probably find more help in the Chef section of the forum or in your device's subforum.
dsixda said:
I don't know anything about your device, dude. Just copy one from an existing ROM that someone made for your device. Anyways you're asking about a non-Galaxy S phone so you'll probably find more help in the Chef section of the forum or in your device's subforum.
Click to expand...
Click to collapse
Ok thx alot. Sadly no subforum for Gio
CWM issue
I'm having a big problem using the kitchen with regards to entering recovery in any custom ROM I make using the kitchen.
Once I flash the ROM everything is fine and dandy in the OS itself, works 100% and all customizations work flawlessly, but once I try to reboot into CWM whether via 3Button or extended power menu/adb, CWM gives a ton of errors saying it cannot mount volumes and basically recovery is useless. The errors are numerous, I'll see if I can post a pic if needed. The important one I'm thinking is "E:/unknown volume for path /sdcard" repeated for /data, /system, /cache, everything.
I tried eliminating sources of error by basically just inserting a JVS rom and pasting in a kernel (Semaphore JVS) without any customizations, and the error still occurs.
Any help?
krazykipa said:
I'm having a big problem using the kitchen with regards to entering recovery in any custom ROM I make using the kitchen.
Once I flash the ROM everything is fine and dandy in the OS itself, works 100% and all customizations work flawlessly, but once I try to reboot into CWM whether via 3Button or extended power menu/adb, CWM gives a ton of errors saying it cannot mount volumes and basically recovery is useless. The errors are numerous, I'll see if I can post a pic if needed. The important one I'm thinking is "E:/unknown volume for path /sdcard" repeated for /data, /system, /cache, everything.
I tried eliminating sources of error by basically just inserting a JVS rom and pasting in a kernel (Semaphore JVS) without any customizations, and the error still occurs.
Any help?
Click to expand...
Click to collapse
I'm having the same problem here with CF-Root-XX_OXA_JVS-v4.1-CWM3RFS, I tried to move to DarkCore_4.0_JVS and the device get into reboots (just after activating lagfix).
its 2 days now that im working on stock rom and trying only to root and deOdex... help?
Will this work for galaxy s 4g? If not, is there any way I can help to add support for it?
bhundven said:
Will this work for galaxy s 4g? If not, is there any way I can help to add support for it?
Click to expand...
Click to collapse
Sorry for the late reply. Check your build.prop's ro.product.device value. If the name doesn't exist under the kitchen's tools/samsung_files/sgs_variants folder then just create a file there with same name.
Unfortunately I don't have the Galaxy S so I cannot test on my own.
dsixda said:
Sorry for the late reply. Check your build.prop's ro.product.device value. If the name doesn't exist under the kitchen's tools/samsung_files/sgs_variants folder then just create a file there with same name.
Unfortunately I don't have the Galaxy S so I cannot test on my own.
Click to expand...
Click to collapse
Looks like the SGH-T959V file exists. Thanks for helping me figure that out!
I am having an issue with wi-fi not be able to connect after i have flashed my build.. and thats about it. I'm not sure whats causing it any ideas?
EDIT:
Was the updater-script, i swapped it out with another and all is well.
There are problem with kernels. I can't change?
is this supported by the sidekick since it has similiar specs to the samsung vibrant?
xtrem88 said:
is this supported by the sidekick since it has similiar specs to the samsung vibrant?
Click to expand...
Click to collapse
If it's basically the same device then it should support it. Just make sure you have an entry in the kitchen for the ro.product.device value. See the note in the 2nd step in Post #1.

[Q][Help] B5510 - Building Kernel/boot.img Problem

Hi there.
First: Im a noob, so unless i have fewer than 10 posts i can only post in general forum - otherwise i would post on an existing thread (i will mention later).
Last week i got a new phone: Samsung Galaxy Y Pro (GT-B5510).
Its a nice phone, but im missing a thing: a firewall.
I tried droidwall and other, but they arnt working. So there is something wrong with the netfilter/iptables modul and ive to rebuild the kernel.
After a quick search i found this thread and this post.
I already set up a Ubuntu (10.04.4), downloaded the source from samsung and the toolchain from Sourcery (like they mention inthe infofile from samsung).
I build the kernel, like irfanbagus in his post, but for my device.
I got lots of compilerwarnings, but in the end i have had my zImage without errors.
I split my boot.img, which i got from my device with Terminal Emulator, with split_bootimg.pl.
Now ive got a kernelimage and a initrd and ive to put them together.
Presumably with mkbootimg, but ive to know the baseadress.
I tried the offset from the thread mentiond above.
I made a tar and flashed it with Odin1.85 and half bricked it.
[I only can see a grey battery on the diplay and if i reboot it it stuck on bott/splashscreen]
Maybe somebody can help. (please)
Is the problem the compiled kernel, due to the warnings?
Or is it the wrong baseaddress? Well i could not find the address inside the sourcecode (like kconfig), like i read somewhere, thats why i tried the one from s5360.
There is no problem with odin or the cable, cause i can flash my backup with it to 'unbrick' it.
And why is the bootimg around 700kb smaller than the original?
Thanks a lot in advance.
havocinside said:
Hi there.
First: Im a noob, so unless i have fewer than 10 posts i can only post in general forum - otherwise i would post on an existing thread (i will mention later).
Last week i got a new phone: Samsung Galaxy Y Pro (GT-B5510).
Its a nice phone, but im missing a thing: a firewall.
I tried droidwall and other, but they arnt working. So there is something wrong with the netfilter/iptables modul and ive to rebuild the kernel.
After a quick search i found this thread and this post.
I already set up a Ubuntu (10.04.4), downloaded the source from samsung and the toolchain from Sourcery (like they mention inthe infofile from samsung).
I build the kernel, like irfanbagus in his post, but for my device.
I got lots of compilerwarnings, but in the end i have had my zImage without errors.
I split my boot.img, which i got from my device with Terminal Emulator, with split_bootimg.pl.
Now ive got a kernelimage and a initrd and ive to put them together.
Presumably with mkbootimg, but ive to know the baseadress.
I tried the offset from the thread mentiond above.
I made a tar and flashed it with Odin1.85 and half bricked it.
[I only can see a grey battery on the diplay and if i reboot it it stuck on bott/splashscreen]
Maybe somebody can help. (please)
Is the problem the compiled kernel, due to the warnings?
Or is it the wrong baseaddress? Well i could not find the address inside the sourcecode (like kconfig), like i read somewhere, thats why i tried the one from s5360.
There is no problem with odin or the cable, cause i can flash my backup with it to 'unbrick' it.
And why is the bootimg around 700kb smaller than the original?
Thanks a lot in advance.
Click to expand...
Click to collapse
upload your boot.img
boot.img
Here it is.
boot.tar = compiled
boot-stock.tar = original from my device
Size is not problem as long running well.
In my sgy always fail when size >
5.5mb
For boot-stock.tar u get from dd or pda stock-rom ??
Mmm i thing irfan has answer so ur save dude.
its dd.
i don't find any problem with boot.img. offset is equal (0x81600000). the problem maybe in your zImage. make sure you build with correct defconfig. mine is bcm21553_totoro_05_defconfig, i don't know yours, see in text info inside zip file from samsung. and make sure using the same compiler version with text info said. using different version make prebuild kernel module inside initramfs not working. start with default config from xxx_defconfig just to make sure your step is correct. and if still not working your best hope is build your module as loadable module (.ko), add init.d support in init.rc (inside initramfs), and load your module using init.d script.
about the size, it's nomal boot.img from dd command bigger than normal boot.img because it's copy whole partition and include unused bytes behind the original boot.img.
hm, ok.
thank you irfan.
i followed the instructions from the txt inside the archive:
"bcm21553_luisa_03_defconfig" with "g++ 2009q3-68 arm eabi"
ill try again.
my bad. i download wrong files, and end up with comparing the same original boot.img
your compiled boot.img don't have md5 checksum. i am not sure it have effect, i make that tutorial based post from harish2704 here. mkbootimg from harish2704 have --kernelMD5 param. try use that one.
savie said:
Size is not problem as long running well.
In my sgy always fail when size >
5.5mb
For boot-stock.tar u get from dd or pda stock-rom ??
Mmm i thing irfan has answer so ur save dude.
Click to expand...
Click to collapse
our kernel partition only 5 mb my friend...
Boot.img from dd not work with me so i pick from pda stock-rom
(i use from doky thread).
Mmm that why i fail when boot.img more than 5mb.
Trying other method to compile, irfan say merruk use lzma or someting like that.
I can only suggest the method irfanbagus described (loadable kernel modules) because the source code Samsung released probably isn't up to date. The benefits of compiling the needed modules into the kernel are too little compared with possible bugs which are in the released code but not in the stock kernel.
mikstev said:
I can only suggest the method irfanbagus described (loadable kernel modules) because the source code Samsung released probably isn't up to date. The benefits of compiling the needed modules into the kernel are too little compared with possible bugs which are in the released code but not in the stock kernel.
Click to expand...
Click to collapse
i find relative new kernel for sgy, but still cannot make running. it's from galaxy pocket source. there is small change related to power management, but still don't have time to studying.
After a weekend full of trouble, today i found time to continue the bootimg-thing.
I now compiled only the modules and load them now with initd, because i was unable to build a runnable kernel from source.
(Thank you irfan and mikstev)
irfanbagus said:
i find relative new kernel for sgy, but still cannot make running. it's from galaxy pocket source. there is small change related to power management, but still don't have time to studying.
Click to expand...
Click to collapse
are you sure that we can use that kernel for our sgy?

Compile COJ3 from source N910F

Hello friends,
I wanted to start kernel developing for the N910F. So i wanted to start compiling the original samsung sources.
Please excuse me, I'm pretty new to android/linux development.
I managed to get the kernel compiling, which gives me an output folder with some GB of stuff and as i could point out a zImage-file, which is hopefully the compiled kernel
To get my kernel working, extracted a stock boot.img with umkbootimg, which gave me a warning, that i can't repack the boot.img without using a modified mkbootimg executable.
A mkbootimg is included in the sammy-source so i used this to pack my zImage together with the extracted initfs.gz, resulting in a boot.img.
Which I flashed ofc, but the reason why i opened this thread is the result of this
The kernel is obviously not booting, it shows for maybe 0.5s the sammy logo and directly starts into download mode.
I guess it has something todo, how i pack my kernel. because i didnt even manage to unpack the stock kernel and repack it and get it booting.
So where is my mistake? Do i miss something?
greez d4rk
Deleted - I notice I replied to an old thread

Categories

Resources