Compile AOSP - Android Q&A, Help & Troubleshooting

Hi there. Not sure if it's the right section. I have a question for you guys.
Let's say that sometimes I need to compile one file.
With make I usually do:
make out/target/product/some/boot.img
Obviously this will not work in the complex hell of makefiles we have in android.
How can I do that?
Also I noticed there are $(hide) prefixes in almost any makefile. Is there an env variable to turn it off (debugging purpose)?
Is there a list of all generic env variables commonly used when compiling android?!
Thanks guys!!!
Sent from my XT1053 using XDA Premium 4 mobile app

If you want to make Settings for example type:
Code:
. build/envsetup.sh
lunch yourdevice-eng
mmm packages/apps/Settings
This will build Settings only, you can also make apps only when you'll use mm instead.
If you don't want to use the debugging build, simply lunch the userdebug target.

eagleeyetom said:
If you want to make Settings for example type:
Code:
. build/envsetup.sh
lunch yourdevice-eng
mmm packages/apps/Settings
This will build Settings only, you can also make apps only when you'll use mm instead.
If you don't want to use the debugging build, simply lunch the userdebug target.
Click to expand...
Click to collapse
Thanks! I'll try and let you know.
If my rom has only the -eng build, how I can manually turn off the debugging stuff and optimize it for speed like the -O3?

DAddYE said:
Thanks! I'll try and let you know.
If my rom has only the -eng build, how I can manually turn off the debugging stuff and optimize it for speed like the -O3?
Click to expand...
Click to collapse
While working on a ROM, I personally always use -eng. For releases, I sometimes compile -userdebug, but only rarely. But if you want to, just re-compile with -userdebug
Optimizing with compiler flags (-O3) is something completely else. Such compiler flags are set within the Makefile(s), and not as a terminal command. But before playing around with compiler flags, I'd suggest you to do some heavy reading before

laufersteppenwolf said:
While working on a ROM, I personally always use -eng. For releases, I sometimes compile -userdebug, but only rarely. But if you want to, just re-compile with -userdebug
Optimizing with compiler flags (-O3) is something completely else. Such compiler flags are set within the Makefile(s), and not as a terminal command. But before playing around with compiler flags, I'd suggest you to do some heavy reading before
Click to expand...
Click to collapse
Thanks for the explanation, I was just wondering why both cyanogen and omni roms compiled by me are slow as hell
Also, I see that before on other roms when you click around sometime appear a red rectangle around the border of the screen... is that a debug thing?
Again thanks!

DAddYE said:
Thanks for the explanation, I was just wondering why both cyanogen and omni roms compiled by me are slow as hell
Also, I see that before on other roms when you click around sometime appear a red rectangle around the border of the screen... is that a debug thing?
Again thanks!
Click to expand...
Click to collapse
hehe, welcome to an old "-eng-bug" when you compile -eng, strictmode somehow goes crazy
you can fix it by adding the following line to your build.prop:
Code:
persist.sys.strictmode.disable=1

laufersteppenwolf said:
hehe, welcome to an old "-eng-bug" when you compile -eng, strictmode somehow goes crazy
you can fix it by adding the following line to your build.prop:
Code:
persist.sys.strictmode.disable=1
Click to expand...
Click to collapse
Awesome! Thanks man!

Related

Google Android Development

TIME TO MOVE ON
i wil be on xperia section
i am happy that i could help this section
Best Regards, Happy Cookling and Programing!
Hy all
I started this tread because the interest to android is growing
I invite all people with linux knowledge or C programing skills to join
If you know some hardware programing is better
We need
- developpers
- testers
i will not post an guide how to setup the compiler and set variables
if you dont know this stuff please stick to Google Android thread and dont post here stupid questions as IT IS READY / WHEN WILL IT BE READY
WE DO THIS IN OUR SPARE TIME AND WE HAVE FAMILY AND LIFE
So shell we invite the penguin to our phones?
WIKI Page
(Thanks Bikor_gj)
http://wiki.xda-developers.com/index.php?pagename=Niki_Android
GIT Trees
Vogue
http://git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=shortlog;h=refs/heads/htc-vogue
MSM
http://git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=shortlog;h=refs/heads/htc-msm-2.6.25
Reserved For Messages
Build Instructions for the ones that want to help
- Create working dir:
Code:
mkdir ~/android-kernel
- Go to the dir:
Code:
cd ~/android-kernel
- Clone the Linuxtogo GIT:
Code:
git clone git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git
- Go into newly created dir:
Code:
cd ~/android-kernel/kernel
- Create a new branch, call it htc-msm and link it to the official htc-msm development branch:
Code:
- Descend into the "main" android dir:
Code:
cd ~/android-kernel
- Get toolchain:
Code:
wget http://www.codesourcery.com/gnu_too...-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- maybe you need to rename the just downloaded file (because after .tar.bz2 wget has added ?lite=arm). (HINT FOR LINUX-NEWBIES: USE TAB TO COMPLETE KNOWN FILENAMES!! - In this case type: mv arm(TAB) arm(TAB) -> backspace till 'bz2' is the last word)
Code:
mv arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2\?lite\=arm arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- unpack the toolchain:
Code:
tar -xjf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- ascend again into the 'kernel' directory:
Code:
cd ~/android-kernel/kernel
- make the kernel:
Code:
git checkout -b htc-vogue origin/htc-vogue
You also have to use
Code:
make vogue_defconfig ARCH=arm
- export path so the newly downloaded toolchain will be used instead of your default compiler (which would compile for your computer instead of your phone):
Code:
export PATH=~/android-kernel/arm-2008q1/bin:$PATH
- make the zImage-file:
Code:
make zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
Now the zImage file is created inside the directory kernel/arch/arm/boot.
When uploading this to your phone, remember that you only have to replace the zImage after each kernel build - the Linux environment on top of the kernel can just stay the same, so initrd (which is the ramdisk filesystem) can stay the same.
BR
Reserved For Kernel Status
Kernel status
no more power button //thanks biktor_gj
nike mtype added
audio working
call working
data working
sms unknown //due to keyboard and ts
keyboard screwed // somethings not right needs investigation
OnSreenKeyboard working
Touch screwed // SOLVED
when this kernel probelms will be solved i will release the new kernel
I have knowledge of both C and linux so I vollunteer
hi,
i can be a tester... also i have some little linux knowledge...
I have limited knowledge of both c and linux, so I possibly could help.
It seems useful however to setup an SVN or something, so even 'non-registered' developers can write patches and submit them for review. You can set up such an SVN for free at assembla.com, together with a wiki, TRAC and more. They even say you can ask for more storage space and stuff if your project is an open-source project.
If you have such an SVN developers like me can help without making any false promises of some sort.
I hope you know what I mean, it sounded better in my head
i know linux and i can do beta tester. i'm studying engineering too.
i also know linux and a bit of C...i can do testing too.
as you already know, I'm in too for development...
i will try the new kernel asap...
I tried this kernel and indeed, the keypad works on mine!
(touched the TS though, just because you said I wasn't allowed ) It froze, so reboot...
awesome! keys work all good! numbers work and also dpad and enter works!
(by the way: how will you make it possible to enter text? android is coded to enter numbers...
the_fish said:
awesome! keys work all good! numbers work and also dpad and enter works!
(by the way: how will you make it possible to enter text? android is coded to enter numbers...
Click to expand...
Click to collapse
I believe by the end of this year or somewhere in the beginning of 2009 Google is making a system for creating software input methods, which would theoretically allow us to write an application that would reroute direct hardware input. I think. We'll have to see what the future will (or the talented developers here) bring.
man, awesome!!! good job, jerpelea. keys work great!!
graey said:
I believe by the end of this year or somewhere in the beginning of 2009 Google is making a system for creating software input methods, which would theoretically allow us to write an application that would reroute direct hardware input. I think. We'll have to see what the future will (or the talented developers here) bring.
Click to expand...
Click to collapse
ok... the onscreen keyboard would be ok for the time we have to wait
Jerpelea: Why do you want Ubuntu as dev os? I'm using OpenSuSE and am able to build the kernel.
I am thinking (since 2 weeks) to try Ubuntu again (used to use it), but may take while before I get to it...
Boylen said:
Jerpelea: Why do you want Ubuntu as dev os? I'm using OpenSuSE and am able to build the kernel.
I am thinking (since 2 weeks) to try Ubuntu again (used to use it), but may take while before I get to it...
Click to expand...
Click to collapse
I think he is just saying that because it's easier for people to use??
works fine for me on vanilla debian
new kernel works fine screen still too responsive keys work calls work
it works! but after few minutes my nike is auto-turned off :O
garsim said:
it works! but after few minutes my nike is auto-turned off :O
Click to expand...
Click to collapse
i guess we have turn the auto turn off in wm to unlimited or run it on usb plug...

[Q] how to compile tun.ko?

can anybody tell me how to compile tun.ko for any rom? what would i need to download/install etc? any help would be appreciated. thanks!
get the kernel soruce and check config file for tun
in .config file search for "TUN" keyword, change Y to M, run make menuconfig, save, compile.
slow down guys absolute noob here. how/where do i run makeconfig? what software would i need? sorry if stupid questions :c
Sent from my GT540 using XDA App
daggerxXxsin said:
slow down guys absolute noob here. how/where do i run makeconfig? what software would i need? sorry if stupid questions :c
Sent from my GT540 using XDA App
Click to expand...
Click to collapse
First, you need the kernel source code for your device. The Linux GPL requires that OEMs provide the kernel source so you should be able to find it.
You'll need a linux machine with a development environment. You'll also need the Android NDK for the ARM toolchain.
Once you've got all that lined out, you'll need a kernel config. You can usually get this from your device's proc directory as /proc/config.gz.
Now gunzip the config.gz in your kernel source directory, rename it to ".config" and run "make oldconfig". If it is from an identical source tree, then it should run without prompting.
Now run make menuconfig and drill down to the tun options and enable it as a module. Now you can "make" your kernel and "make modules" for the modules.
okay so first thing is to setup a build environment. gotcha. will work on that.
Sent from my GT540 using XDA App
Gene Poole said:
First, you need the kernel source code for your device. The Linux GPL requires that OEMs provide the kernel source so you should be able to find it.
You'll need a linux machine with a development environment. You'll also need the Android NDK for the ARM toolchain.
Once you've got all that lined out, you'll need a kernel config. You can usually get this from your device's proc directory as /proc/config.gz.
Now gunzip the config.gz in your kernel source directory, rename it to ".config" and run "make oldconfig". If it is from an identical source tree, then it should run without prompting.
Now run make menuconfig and drill down to the tun options and enable it as a module. Now you can "make" your kernel and "make modules" for the modules.
Click to expand...
Click to collapse
Hi Gene, i want to ask, if we cannot find the config.gz file from the device, is it imposibble to get the tun.ko working?
Or if it possible, can you tell me how to gain some configuration, that used by the tun.ko, so we can set the config from menuconfig correctly?
I`ve tried to compile tun.ko for a device, the insmod working fine, but when the vpn try to use the tun, it is crash, it raise segmentation fault.

I wish to become a developer for our O1's!

Hi guys, I would like to ask you what IDE's and other software I need to make and modify android roms. I am particularly looking at helping with ICS production. I know java and some C++ if this helps, I am unsure of what to use whether that be eclipse or some other IDE/SDk. Also there are a few file types I am unfamiliar with and want to know how to edit those such as .so's and other files. Thanks P500 community you guys are awesome D
If you haven't already, I'd highly reccomend setting up a build environment and trying to sync the cm repos. Once you have the code, you can play around and see what you need from there, in terms of an IDE.
Sent from my LG-P500 using XDA
Fantastic, I shall get onto that right away.
May the force be with you, bro!
Sent from my LG-P500 using Tapatalk 2
gymfreak7855 said:
Hi guys, I would like to ask you what IDE's and other software I need to make and modify android roms. I am particularly looking at helping with ICS production. I know java and some C++ if this helps, I am unsure of what to use whether that be eclipse or some other IDE/SDk. Also there are a few file types I am unfamiliar with and want to know how to edit those such as .so's and other files. Thanks P500 community you guys are awesome D
Click to expand...
Click to collapse
gymfreak7855 said:
Hi guys, I would like to ask you what IDE's and other software I need to make and modify android roms. I am particularly looking at helping with ICS production. I know java and some C++ if this helps, I am unsure of what to use whether that be eclipse or some other IDE/SDk. Also there are a few file types I am unfamiliar with and want to know how to edit those such as .so's and other files. Thanks P500 community you guys are awesome D
Click to expand...
Click to collapse
Read some android books.you already know c++ and Java so you will become good dev.
For playing with code you need.
Ubuntu.
Notepad.
sdk & adb.
And this "good luck!"
Yeah! Actually even i am interested in learning.
I know c/c++. No java yet
I'll be finishing my exams on the 3rd of may and would have around 2 months of vacations to learn
So guidance would really be appreciated. Do we need a separate sdk for linux based os? I have sdk on windows, isnt that enough?
What is the advantage of using linux for android development? I have backtrack(ubuntu based) on vmware. Will it do?
Essential Software:
Ubuntu 11.10 (dual boot not virtual machine, it's too slow)
Eclipse IDE with the Android plugins
Meld (for easy directory compares)
Mastery of the terminal especially git / repo commands
Github account
CyanogenMod gerrit account
Google Plus account
I'm assuming you're coming from Windows since you don't know what a .so file is (like I did when starting). .so files are android's versions of .dll files. 'executables' don't have a file extension. Kernel modules use the .ko extension.
(I think .so means shared object, .ko means kernel object. Makes sense to me anyway )
The worst thing about starting is simply the sheer size of the project, it is a whole operating system we are dealing with here!
Start simple and easy, follow the instructions on how to make your own build and flash it. (and feel proud you have your own build string in about phone!) Then do it again without the instructions. (harder than it sounds )
The programming side may not be such a problem for you if you already know it. I didn't know anything. reading library files written in c++ ain't so bad, but getting used to how an android app is written in java was a huge mindf**k for me at first.It still is actually
I'm really just your average code hacker, I just hack based on educated guesses but I have taken copious notes on what I do and how things work. Seriously, I have two A5 notebooks full of lists, commands, file locations, diagrams and other tips I've found over the past 6 months.
Prepare to read a lot, be confused a lot, say WTF?!?!?! a lot, delighted when you make your first changes and they work, a ton of waiting for builds to finish and perhaps a bit nervous when you are ready to submit your first commit to CyanogenMod...
Can't we practice on something less taxing than the the whole cyanogenmod, like maybe some prebuilt system apps?
I have allocated 2.9gb of ram and enough cpu to my vm for it to run smoothly so speed isn't really an issue here
Will backtrack do or would ubuntu be better(backtrack is a network security related os based on ubuntu only)
And how important is java. I have two months of almost pure vacations(just have to make a project) so time wont be much of an issue and i'll anyway be doing java in a year or two at college so starting now wont be any harm.
BTW just curious why is g+ account an essentiality here?
Edit
Oh and yeah ill be switching from win to linux and that IS going to be a pretty big problem :/
I don't even properly know what a kernel is and what it does.
Edit2
Iv added you to my circles adfad please add me.
These guides could help!
http://forum.xda-developers.com/showthread.php?t=1272270
http://forum.xda-developers.com/showthread.php?t=667298
I'm starting learning too. I already know the android framework and java.
I have some problems when I try to compile for a device.
Code:
[email protected]:~/WORKING_DIRECTORY$ source build/envsetup.sh
including device/moto/wingray/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
It doesn't include device/cm_device_lge_p500/vendorsetup.sh (I'm using androidmeda's sources) and if I run "lunch":
Code:
[email protected]:~/WORKING_DIRECTORY$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
2. full_x86-eng
3. vbox_x86-eng
4. full_maguro-userdebug
5. full_toro-userdebug
6. full_panda-eng
7. cm_anzu-userdebug
8. cm_captivatemtd-userdebug
9. cm_coconut-userdebug
10. cm_crespo-userdebug
11. cm_crespo4g-userdebug
12. cm_epicmtd-userdebug
13. cm_galaxysbmtd-userdebug
14. cm_galaxysmtd-userdebug
15. cm_galaxys2-userdebug
16. cm_haida-userdebug
17. cm_hallon-userdebug
18. cm_i777-userdebug
19. cm_iyokan-userdebug
20. cm_mango-userdebug
21. cm_maguro-userdebug
22. cm_p1-userdebug
23. cm_p1c-userdebug
24. cm_p3-userdebug
25. cm_p4-userdebug
26. cm_p4tmo-userdebug
27. cm_p4vzw-userdebug
28. cm_p4wifi-userdebug
29. cm_p5-userdebug
30. cm_p5wifi-userdebug
31. cm_p920-userdebug
32. cm_p970-userdebug
33. cm_p990-userdebug
34. cm_p999-userdebug
35. cm_pyramid-userdebug
36. cm_satsuma-userdebug
37. cm_shooter-userdebug
38. cm_shooteru-userdebug
39. cm_smb_a1011-userdebug
40. cm_smultron-userdebug
41. cm_tenderloin-userdebug
42. cm_tf101-userdebug
43. cm_tf201-userdebug
44. cm_toro-userdebug
45. cm_urushi-userdebug
46. cm_vibrantmtd-userdebug
47. cm_wingray-userdebug
48. cm_zeus-userdebug
Which would you like? [full-eng]
There isn't our phone.
I think it can't know I've added another device. Does anybody know how to solve this problem? I'm sure it's something pretty stupid...
P.S. I'm using Ubuntu 11.10
EDIT: Ok, I think I've done something wrong syncing androidmeda sources.
What I've done is:
Code:
[email protected]:~$ cd WORKING_DIRECTORY
[email protected]:~/WORKING_DIRECTORY$ repo init -u git://github.com/androidmeda/cm_device_lge_p500.git
repo initialized in /home/francesco/WORKING_DIRECTORY
[email protected]:~/WORKING_DIRECTORY$ repo sync
Fetching projects: 100% (248/248), done.
Syncing work tree: 100% (248/248), done.
I've done this for git://github.com/androidmeda/cm_vendor_lge_p500.git and git://github.com/androidmeda/lge-kernel-msm7x27.git too. I can't see them though.
Solved the problem. Cloned androidmeda's device folder into device/lge/p500
EDIT2: FINALLY COMPILING!
EDIT3:
Code:
make: *** Nessuna regola per generare l'obiettivo "device/lge/p500/init.p500.usb.rc
It's 'No rule to make target'. I don't know what to do, I can't even find that file, but I've got a file called init.thunderg.usb.rc
Solved renaming init.thunderg.usb.rc to init.p500.usb.rc. It's compiling now
adfad666 said:
Essential Software:
Ubuntu 11.10 (dual boot not virtual machine, it's too slow)
Eclipse IDE with the Android plugins
Meld (for easy directory compares)
Mastery of the terminal especially git / repo commands
Github account
CyanogenMod gerrit account
Google Plus account
I'm assuming you're coming from Windows since you don't know what a .so file is (like I did when starting). .so files are android's versions of .dll files. 'executables' don't have a file extension. Kernel modules use the .ko extension.
(I think .so means shared object, .ko means kernel object. Makes sense to me anyway )
The worst thing about starting is simply the sheer size of the project, it is a whole operating system we are dealing with here!
Start simple and easy, follow the instructions on how to make your own build and flash it. (and feel proud you have your own build string in about phone!) Then do it again without the instructions. (harder than it sounds )
The programming side may not be such a problem for you if you already know it. I didn't know anything. reading library files written in c++ ain't so bad, but getting used to how an android app is written in java was a huge mindf**k for me at first.It still is actually
I'm really just your average code hacker, I just hack based on educated guesses but I have taken copious notes on what I do and how things work. Seriously, I have two A5 notebooks full of lists, commands, file locations, diagrams and other tips I've found over the past 6 months.
Prepare to read a lot, be confused a lot, say WTF?!?!?! a lot, delighted when you make your first changes and they work, a ton of waiting for builds to finish and perhaps a bit nervous when you are ready to submit your first commit to CyanogenMod...
Click to expand...
Click to collapse
Thanks man Your work has really inspired me and yes haha I am moving from windows all though I have had some experience with ubuntu before. It makes sense about the extensions. Thanks for your advice Will ask questions if I need to
I'm having problems compiling using make -j4
Code:
make -C kernel/lge/p500 O=/home/francesco/WORKING_DIRECTORY/out/target/product/p500/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=/home/francesco/WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- cyanogenmod_p500_defconfig
make[1]: ingresso nella directory "/home/francesco/WORKING_DIRECTORY/kernel/lge/p500"
make[1]: *** Nessuna regola per generare l'obiettivo "cyanogenmod_p500_defconfig". Arresto.
make[1]: uscita dalla directory "/home/francesco/WORKING_DIRECTORY/kernel/lge/p500"
make: *** [/home/francesco/WORKING_DIRECTORY/out/target/product/p500/obj/KERNEL_OBJ/.config] Errore 2
make: *** Attesa per i processi non terminati....
'No rule to make target "cyanogenmod_p500_defconfig". Stop'
Any idea?
When I've used make -i I haven't had this problem
EDIT: Solved moving cyanogenmod_p500_defconfig in p500 folder
Ok, I'm trying to tidy up everything a bit. I've noticed there is a new github. I've seen this:
Code:
LG P500 ICS Setup
Copy/paste it WORKING_DIR/.repo/local_manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lge/p500" name="p500/cm_device_lge_p500" remote="github" revision="master" />
<project path="vendor/lge/p500" name="p500/cm_vendor_lge_p500" remote="github" revision="master" />
<project path="kernel/lge/p500" name="p500/lge-kernel-msm7x27" remote="github" revision="android-ics-msm-2.6.35" />
</manifest>
I have no local_manifest.xml. Do I have to create it? Or do I have to add these three lines to manifest.xml (which is in .repo folder)? And do I have to add toolchain too?
Question: if installing Ubuntu with wubi on Windows XP, will it show the dual-boot screen on every boot?(or else what shortcut?)
And does it need to defragment, or is it safe just like that?
vlt96 said:
Question: if installing Ubuntu with wubi on Windows XP, will it show the dual-boot screen on every boot?(or else what shortcut?)
And does it need to defragment, or is it safe just like that?
Click to expand...
Click to collapse
No idea, never tried.
If you understand anything:
http://en.wikipedia.org/wiki/Wubi_(Ubuntu)
Why dont you use vmware instead?
Now someone help me with this:
Whenever i try to recompile the framework-res.apk(pasquale test)(even without editing) i get this error:
What can i do about it?
rishabh22 said:
No idea, never tried.
If you understand anything:
http://en.wikipedia.org/wiki/Wubi_(Ubuntu)
Why dont you use vmware instead?
Now someone help me with this:
Whenever i try to recompile the framework-res.apk(pasquale test)(even without editing) i get this error:
What can i do about it?
Click to expand...
Click to collapse
VM got me an error when installing saying it is incompatible with win xp (I could install, but didn't wanna risk, windows is harder to recover than Android)
try using virtual box.
https://www.virtualbox.org/
rishabh22 said:
try using virtual box.
https://www.virtualbox.org/
Click to expand...
Click to collapse
yea I did that... but did anyone try it on XP, it says it failed incompatibility tests or something (same error I got when trying to install windows 7 video drivers on xp) and I don't wanna risk, anyone?
I don't think it's good to install ubuntu to compile android in a virtual machine, I think the compilation would be too slow. I'm sorry I can't help you, I've installed ubuntu from a Live CD and I didn't have many problems with the installation process.
BTW, added the three lines to manifest.xml synced repo. It's compiling well using make -j4
vlt96 said:
yea I did that... but did anyone try it on XP, it says it failed incompatibility tests or something (same error I got when trying to install windows 7 video drivers on xp) and I don't wanna risk, anyone?
Click to expand...
Click to collapse
huh? both vmware and virtual box arn't compatible with xp
why the heck were u trying to install win7 video drivers on xp
And why dont you dual boot?
---------- Post added at 08:37 PM ---------- Previous post was at 08:34 PM ----------
ZatBaloo said:
I don't think it's good to install ubuntu to compile android in a virtual machine, I think the compilation would be too slow. I'm sorry I can't help you, I've installed ubuntu from a Live CD and I didn't have many problems with the installation process.
BTW, added the three lines to manifest.xml synced repo. It's compiling well using make -j4
Click to expand...
Click to collapse
if you have enough ram and a good enough processor there shouldnt be any problem in using a virtual machine. i use backtrack with 2.9/4gb ram and am able to use both windows7 and backtrack simultaneously without any problems/lag
I have an i5 2.3-2.9GHz
Sure it depends on what you want to compile. It was just a suggestion to compile faster. You probably won't notice lag, but it will take more to compile everything.

[TUT] Building your own Xperia Play Kernel

Since We have such a fantastic tutorial on how to build your own CM9, I thought I'd add one for building a kernel.
Edit: updated kernel sources for jellybean
First off:
You NEED Linux. DO NOT TRY THIS ON WINDOWS, IT WON'T WORK.
Sources: https://github.com/CyanogenMod/semc-kernel-msm7x30
https://github.com/DarkforestGroup/sony-kernel-msm7x30-ics
https://github.com/DooMLoRD/Xperia-2011-Kernel-2.6.32.9
http://forum.xda-developers.com/showthread.php?t=1556971
http://forum.xda-developers.com/showthread.php?t=1477845
http://developer.sonymobile.com/wp/2011/05/06/how-to-build-a-linux-kernel/
DooMLoRD, KeiranFTW & Atarii.
Prepping:
1) Grab the toolchain I have here (Android NDK R5b), it's the only one I've been able to use that doesn't throw errors when compiling (stock based kernels): http://db.tt/hE3TmJJi Doom has provided a better toolchain https://github.com/DooMLoRD/android_prebuilt_toolchains[/QUOTE] you can get it using
Code:
git clone https://github.com/DooMLoRD/android_prebuilt_toolchains.git -b master <optional_folder_name_you_choose>
(thanks Doom!!)
Building a kernel from fxp sources
1) Terminal for any commands, file explorer for finding stuff & gedit for changes.
2) open up terminal, mkdir <name_you_want> (no spaces)
3) cd <name_you_want>
4) git clone https://github.com/freexperia/semc-kernel-msm-7x30-ics -b ics <optional_name_you_want_the_folder_to_be> (no spaces)
5) cd <optional_name_you_want_the_folder_to_be>/semc-kernel-msm-7x30-ics (if you didn't rename it)
6) (If this is after the first time, and lets say a week has past do this step, otherwise ignore) git pull (automatically updates any files)
7) First important step: Find the defconfig that fxp uses. They are located in arch/arm/config. fxp_zeus_defconfig is the name of theirs
8) copy fxp_zeus_defconfig & rename to <what_you_want_it_named>_zeus_defconfig (for example, mine will be pax_zeus_defconfig)
9) open up your defconfig & put it into another workspace, we'll mess with it later
10) Hop onto DooMLoRD's github, his we'll use for references.
11) Adding governors: https://github.com/DooMLoRD/Xperia-...mmit/bec19001ded34077d7776639834a1229b69e5f87
A1) Well, as I look into this, fxp has a ton of governors not used... (located in <name_of_kernel_folder>/drivers/cpufreq/
A2) Check the Kconfig file to see that they're all in there (they must just not be in the defconfig file)
A3) Edit the deconfig file you created in lines 467-474 removing "#" from any you want to add (and add in any you might've added by adding the line CONFIG_CPU_FREQ_GOV_<NAME_OF_GOVERNOR>=y
A4) If you want to add more governors, check out the Commits from DooMLoRD's build to add in when needed (anytime you see a "+" that means line added, "-" means line deleted)
12) Adding IO Schedulers: https://github.com/DooMLoRD/Xperia-...mmit/0ae625f7561c559d4933284f489733bf5eb66e96
B1) Navigate to <name_of_kernel>/block folder
B2) Once again, FXP has a ton of IO Schedulers added, but not used in Play kernel:
B3) Open up Kconfig.ioshced to make sure they're in there (and add any you want)
B4) Edit the defconfig file you created (lines 121-137) & fix it to your liking (same as above)
B5) If you want to add more, see Doom's commits to add 'em
13) Turning off ALS
C1) Navigate to <name_of_kernel>/arch/arm/mach-msm
C2) Open up board-semc_zeus.c
C3) Search for .als_connected (it on line 1349)
C4) Change the variable from 1 to 0
14) Overclocking
D1) open up arch/arm/mach-msm/acpuclock-7x30.c
D2) Lines 96 - 144 contain the PLL2 table, which is used to set clock speeds, note FXP can go all the way up to 2ghz, they just stop it short.
Continued in post 2 because all of this in one post 20% more awesome than XDA can handle
Pax
Cont'd from post 1
15) Building the Kernel
E1) Save your defconfig file, you'll need it now.
E2) naviage to <name_of_kernel> folder (in terminal)
E3) Type in "ARCH=arm CROSS_COMPILE=<path_to_cross_compiler_i'll_use_min e_for_example>/home/paxchristos/Android_Source/doom_ndk/arm-eabi-4.4.3//bin/arm-eabi- make <what_you_put_here>_zeus_defconfig
E4) Type in "ARCH=arm CROSS_COMPILE=<path_to_cross_compiler_from_above>/arm-eabi- make
E5) Sit back and relax (assuming it doesn't throw any errors, if it does, post here & I'll try to help you through them)
16) Getting the ramdisk
F1) Download a working copy of FXP's kernel (either through my zips or fxp zips)
F2) Goto here: http://forum.xda-developers.com/showthread.php?t=1477845, download the xperiaboottools.zip that's attached.
F3) Now what I did (you don't have to) is chmod 755 mkbootimg & split_bootimg.pl & (sudo) cp to /bin for easy calling.
F4) Navagiate in terminal to where you downloaded fxp kernel
F5) mkdir <working_folder>
F6) cp <fxp_kernel> <working_folder>
F7) cd <working folder>
F8) split_bootimg.pl <fxp_kernel>
F9) mkdir ramdisk
F10) cd ramdisk
F11) gzip -dc ../<fxp_kernel>.img-ramdisk.gz | cpio -i
F12) Now you have the ramdisk, let's futz with it.
F13) First (easiest step) is to goto default.prop & change ro.secure=1 to ro.secure=0
F14) That's mainly what we want to do with it, if you want to change the boot image, go here: http://forum.xda-developers.com/showthread.php?t=1494076 for how to do it manually, or here: http://forum.xda-developers.com/showthread.php?t=1513146 for the automatic way.
F15) now that we're done with the ramdisk, we'll go back to terminal
F16) find . | cpio -o -H newc | gzip > ../ramdisk.img
F17) cd ../
17) Putting the ramdisk & kernel together
G1) By now (hopefully) the kernel is done compiling. (time for terminal, you should still be in folder you were above)
G2) cp ~/<folder_you_put_the_kernel_source_in>/arch/arm/boot/zImage ./
G3) mkbootimg --base 0x00200000 --kernel zImage --ramdisk ramdisk.img -o <what_you_want_to_name_your_kernel>.img
18) Flashing it for testing.
H1) Keep your copy of FXP's kernel around, just in case any issues happen
H2) fastboot boot <your_kernel>.img
H3) If it boots & works, SUCCESS!! you modified your own custom kernel!
H4) If it doesn't boot (at all, just a vibrate & blank screen for 10-20 seconds) there's a problem with the ramdisk, sometimes it's bad, sometimes is needs filler, overall, it's just a pain in the butt to figure out.
H5) If it boots & bootloops the splash screen, well, that's an issue with the ramdisk again, that possibly, your ramdisk does not match you rom. Recovery, reflash rom & try again.
Courtesy of Atarii reminding me
19) Adding your wifi modules (they get built when you build the kernel) into the ramdisk
I1) Let's pretend that you haven't gotten through step F16, we're gonna add the wifi modules in.
I2) The wifi modules are located in <name_of_kernel_source_folder>/drivers/net/wireless/
I3) Copy bcm4329.ko to ~/ramdisk/working/modules/
I4) Add in the following lines to init.semc.rc
Code:
#load bcm4329 module
insmod /modules/bcm4329.ko
I5) Now your modules will autoload on boot!
Pax
Excellent guide
It may be because I'm both skeptical of us R800x users ever getting a real ICS, and the fact that going back to gingerbread sounds really tempting, but do you know / could you list the differences for compiling a gingerbread kernel for, say, CM7?
Kieran just told me to go to Sony's site. Thanks!
Sent from my R800x using XDA
Now I've read over this but I'd like to know exactly what a new Linux kernal can do for us? Does it allow us to do more stuff with any custom rom we create?
lightningdude said:
It may be because I'm both skeptical of us R800x users ever getting a real ICS, and the fact that going back to gingerbread sounds really tempting, but do you know / could you list the differences for compiling a gingerbread kernel for, say, CM7?
Click to expand...
Click to collapse
Do this in place of #4 (in the guide)
4) git clone https://github.com/freexperia/semc-kernel-msm7x30 -b master <optional_name_you_want_the_folder_to_be>
& You'll get their sources for GB instead of ics
Alternatively, if you wanna do it from SEMC kernel sources,
Download them from: http://developer.sonymobile.com/cws/devworld/technology/opensource un-tar/bzip them & work from kernel/
Phryxus said:
Now I've read over this but I'd like to know exactly what a new Linux kernal can do for us? Does it allow us to do more stuff with any custom rom we create?
Click to expand...
Click to collapse
Here's a better explanation than I can do
bassmadrigal said:
/cut/
The kernel is kinda like the nervous system of the body. It directly interacts with the hardware (which is how it is able to adjust CPU speed) and it is what allows the ROM to function.
The ROM is the rest of the body. Every other aspect of the phone. In fact, most ROMs include custom kernels. Various ROMs give you various features/enhancements/bugfixes. You will probably notice the biggest change in your phone if you load a custom ROM. Most people load the custom kernels to help with battery life as a lot of them allow you to lower the phones minimum processing speed from 245Mhz to 128MHz.
The ROM can change so many different aspects of how the phone works. There is CyanogenMod which is based off of stock Android with a lot of tweaks, bugfixes, and new features added. There is also MIUI, which is similar to the iOS style (not the same, but much closer than stock Android), and then there are a ton others out there.
Click to expand...
Click to collapse
This is an awesome guide, definitely recommend to all, if you're interested in getting into kernel development.
The only thing maybe worth mentioning is where to copy the compiled wifi drivers and modules (governors etc) from, after the kernel has compiled
I'm having a problem at the "Building the Kernel" step. I ran the command, albeit slightly different than you wrote, and got this error:
"make: *** No rule to make target `mjolnir_zeus_defconfig'. Stop."
Do I not have my NDK installed properly, or what?
Edit: Nevermind, was hit by a confusion spell. It's cured, and all is well. At least, for now.
btw, in the future you will want to clone: https://github.com/CyanogenMod/semc-kernel-msm7x30.git
ics branch
But FXP haven't updated kernel in a while, so you could use my CM9 kernel sources if you like: https://github.com/DarkforestGroup/sony-kernel-msm7x30-ics
master branch
Difference is, mine is made from pure Sony PLAY beta sources, while FXP use arc beta sources
I have successfully compiled a kernel for CM7. Thanks, pax, for this tut, and all other developers for their contributions!
Sent from my R800x using XDA
the NDK toolchain isnt good...
i have test them and they throw un-necessary errors...
best use gcc-4.4.3 toolchain from CM repo... it works with almost all device kernels i develop for...
u can also try gcc-4.6.2 toolchain (linaro)...
a working copy of both can be found at my git repo:
https://github.com/DooMLoRD/android_prebuilt_toolchains
DooMLoRD said:
the NDK toolchain isnt good...
i have test them and they throw un-necessary errors...
best use gcc-4.4.3 toolchain from CM repo... it works with almost all device kernels i develop for...
u can also try gcc-4.6.2 toolchain (linaro)...
a working copy of both can be found at my git repo:
https://github.com/DooMLoRD/android_prebuilt_toolchains
Click to expand...
Click to collapse
+1 to that, I use your arm-eabi-4.4.3 prebuilt
lightningdude said:
I have successfully compiled a kernel for CM7. Thanks, pax, for this tut, and all other developers for their contributions!
Sent from my R800x using XDA
Click to expand...
Click to collapse
Apparently I was a little premature in my findings. Having a hell of a time with the fxp sources for CM7. For some reason, I just can't get my cpu frequencies to come down from Max. DooMLoRD, what am I missing?
Sent from my R800x using XDA
It's been a while since I gave an update here, but my ics kernel is doing fine. I just gave up on gingerbread. My new question: How would I go about changing recovery and such? I prefer DooMLoRD's recovery over Keiran's, but since I'm using Keiran's sources, I don't know what to do to get a different recovery.
Sent from my R800x using XDA
lightningdude said:
It's been a while since I gave an update here, but my ics kernel is doing fine. I just gave up on gingerbread. My new question: How would I go about changing recovery and such? I prefer DooMLoRD's recovery over Keiran's, but since I'm using Keiran's sources, I don't know what to do to get a different recovery.
Sent from my R800x using XDA
Click to expand...
Click to collapse
Try replacing the recovery executable in /sbin/ with DooMLoRDs
Sent from my Xperia Play using Tapatalk 2
KeiranFTW said:
Try replacing the recovery executable in /sbin/ with DooMLoRDs
Sent from my Xperia Play using Tapatalk 2
Click to expand...
Click to collapse
I'm at work right now, but I'll try when I get home. I plan on doing some digging for the sake of learning, but that's going to wait for the weekend.
Sent from my R800x using XDA
Edit: Thanks Keiran, that worked. Like I said, I'll be poking around some more this weekend, just to see what I can mess with. Too bad I never got this far on my older phones...
looks good! so gonna try this tomorrow to build a cifs.ko module from latest Se source
watching a movies on phone, here I come
Hi great tutorial, but I'm having a problem with the wifi I have tried taking my bcm4329.ko from drivers/net/wireless and flashing it via CWM also tried moving it to system/lib/modules manually on my phone but still can't get it to work. Any idea how to fix this, its the only thing keeping me from using my own kernel
Sent from my Xperia Play using xda premium

CM build: "breakfast olympus" fails (Xoom kernel build attempt)

Hi guys,
My Atrix -> Xoom kernel port is complete. This is the nvodm version.
Right now I am trying to make a build of CM 9 based on my kernel and running into lots of hiccups
Yeap I am a noob so please bear with me. I am following the steps from http://wiki.cyanogenmod.org/w/Build_for_olympus, and got stuck at the step "Prepare the device-specific code"
Code:
$ breakfast olympus
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/olympus/cm.mk]]: "device/*/olympus/cm.mk" does not exist. Stop.
Device olympus not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_motorola_olympus
CyanogenMod/android_device_motorola_olympus already exists
Syncing repository to retrieve project.
warning: local_manifest.xml is deprecated; put local manifests in local_manifests instead
Fetching projects: 100% (1/1), done.
warning: local_manifest.xml is deprecated; put local manifests in local_manifests instead
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/olympus/cm.mk]]: "device/*/olympus/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_olympus'
** Do you have the right repo manifest?
I figure that the script is reaching out to the wrong repo at https://github.com/CyanogenMod/android_device_motorola_olympus
It should probably go to https://github.com/Atrix-Dev-Team/android_device_motorola_olympus
Am I right?
How to I correct this problem?
Thanks in advance..
Follow This
http://forum.xda-developers.com/showpost.php?p=21499412&postcount=1
I think that the best way to solve this problem is pm someone that already build a rom from source as you wanna do.
Try to reach MMontuori or EPinter (both really kind and will help for sure) by pm, just a tip hehe.
Hope you can build it, best of luck.
Sorry but this mean that we have a new kernel to get full cm9/10/10.1 roms? W/o All the bugs like the videocam...?
Thanks for the hard work!
from the (M)ATRIX...
Ask epinter, he is such a great guy and he have helped other devs,
Sent from my MB860
Your kernel is booting?
Its a full port from Xoom or you are using the leaked Kernel?
Able to retrieve logs from USB?
Whats your status?
This is very important, because there is another porting project running (http://forum.xda-developers.com/showthread.php?t=2016837) and maybe your kernel source is better to keep up than the one they are trying to port.
Please... communicate!
Thanks!
matbarni said:
Your kernel is booting?
Its a full port from Xoom or you are using the leaked Kernel?
Able to retrieve logs from USB?
Whats your status?
This is very important, because there is another porting project running (http://forum.xda-developers.com/showthread.php?t=2016837) and maybe your kernel source is better to keep up than the one they are trying to port.
Please... communicate!
Thanks!
Click to expand...
Click to collapse
Hey matbarni; take it easy and read the first post, not only the title.
It's not a matter of communication; If you can see the thread of the porting, you'll see some posts from user toyota86, which said he was working but in other branch because he has his reasons for it.
Please don't jump into conclussions and try to help, we all are struggling for an usable kernel; and EVERY help is welcome.
I'm sure any of the developers have contacted him by now or he tried to contact the developers, but he wants to see if anyone can give him a quick tip.
Enough. I'll shut my mouth off
Sorry guys. My mind was hazy when I posted that late last night.
What I meant by "complete" was that it simply built. That's it
Some early sanity testing of my kernel with CM7 resulted in a hang. Yes, I agree with most of you that the next logical thing to do is to flash That ROM and fastboot with my kernel. This can be a quick test. But I am a little suspicious the Bionic libraries may need to be rebuilt as well.
I have already sought advice from our Guru mmontuori and he has told me Kernel modules need to be rebuilt.
SO... lets build the whole she-bang
Raafat said:
Follow This
http://forum.xda-developers.com/showpost.php?p=21499412&postcount=1
Click to expand...
Click to collapse
Thanks!
you will need a build without the errata hack in board config, like the cm10 based on the leak. or build using my jb-olympus-new branch.
you can remove all the kernel modules if your defconfig follows android standard...
jhonnyx said:
Hey matbarni; take it easy and read the first post, not only the title.
It's not a matter of communication; If you can see the thread of the porting, you'll see some posts from user toyota86, which said he was working but in other branch because he has his reasons for it.
Please don't jump into conclussions and try to help, we all are struggling for an usable kernel; and EVERY help is welcome.
I'm sure any of the developers have contacted him by now or he tried to contact the developers, but he wants to see if anyone can give him a quick tip.
Enough. I'll shut my mouth off
Click to expand...
Click to collapse
I did not jump into conclusions.
As you can see, all I posted was questions. And yes, I read what toyota86 posted.
Like "Right now I am trying to make a build of CM 9 based on my kernel and running into lots of hiccups".
The way I am helping is to try to clarify to all users what this post is about.
Thanks for all the support guys
As much as I don't want you guys to be dissapointed, but dont put too much hope as to the outcome of my effort.
Now I have lots on my plate. I will update as I make progress.
thank you
Glad you have been working on this.I tried but abandoned due to insufficient knowledge. atrix was the best buy I've made in years.had it for 3 yes now and thanks to you and others it will live on. Im a trigger happy tester i try every ROM I see and can't wait to try yours.
epinter said:
you will need a build without the errata hack in board config
Click to expand...
Click to collapse
Thank you sir. One question though..
Which errata hack were you referring to? Errata 657451 in the motorola's version of the bionic library? Eg...
In motorola's bionic, we see workarounds like this:
Code:
/* BEGIN MOT GB UPMERGE, a5705c, 12/21/2010 */
# ifdef HAVE_TEGRA_ERRATA_657451
# define __munge_tls(_v) ( ((_v)&~((1ul<<20)|1ul)) | (((_v)&0x1)<<20) )
# else
# define __munge_tls(_v) (_v)
#endif
/* END MOT GB UPMERGE */
Description of this errata:
Code:
config TEGRA_ERRATA_657451
bool "Store bit 20 of CP15 TLS register c13,3 in bit 0"
depends on ARCH_TEGRA_2x_SOC && HAS_TLS_REG
default y
help
This option enables a workaround for the 657451 Tegra 2 errata
which causes unreliable reads from bit 20 of the thread storage
register c13, 3 (used by the __set_tls system call). It stores the
value intended for bit 20 into bit 0 instead; in most user-space
environments, the value saved by __set_tls is an aligned address,
so repurposing bit 0 will not cause ill effects.
In my noob'ish understanding, there is a hardware related bug in our Atrix Tegra 2 SOC that causing data corruption in Thread Local Storage (TLS). Researching this on the net, some ppl were talking about a possibility of a buggy version of this hardware in Atrix. It is also worth noting that this workaround however is NOT present in Stingray's kernel & bionic.
I don't think I remember seeing this workaround in CM's bionic, which is one of my initial concerns..I will look further at home tonight..
Errrrm... Isn't the Bionic a TI OMAP device?
can you post your kernel so others can test it? i have minimal knowledge but would love to help with testing
(Deleted)
quetzalcoatl2435 said:
Errrrm. Isn't the Bionic a TI OMAP device?
Click to expand...
Click to collapse
Bionic is Android's standard C library. Don't worry
toyota86 said:
Hi guys,
My Atrix -> Xoom kernel port is complete. This is the nvodm version.
Right now I am trying to make a build of CM 9 based on my kernel and running into lots of hiccups
Yeap I am a noob so please bear with me. I am following the steps from http://wiki.cyanogenmod.org/w/Build_for_olympus, and got stuck at the step "Prepare the device-specific code"
Code:
$ breakfast olympus
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/olympus/cm.mk]]: "device/*/olympus/cm.mk" does not exist. Stop.
Device olympus not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_motorola_olympus
CyanogenMod/android_device_motorola_olympus already exists
Syncing repository to retrieve project.
warning: local_manifest.xml is deprecated; put local manifests in local_manifests instead
Fetching projects: 100% (1/1), done.
warning: local_manifest.xml is deprecated; put local manifests in local_manifests instead
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/olympus/cm.mk]]: "device/*/olympus/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_olympus'
** Do you have the right repo manifest?
I figure that the script is reaching out to the wrong repo at https://github.com/CyanogenMod/android_device_motorola_olympus
It should probably go to https://github.com/Atrix-Dev-Team/android_device_motorola_olympus
Am I right?
How to I correct this problem?
Thanks in advance..
Click to expand...
Click to collapse
How did you solve this? I am trying to build for coconut (SE Live With Walkman) and stuck at breakfast.

Categories

Resources