ello,
I am trying to build cm11 using https://github.com/CyanogenMod/android_device_samsung_p3100/tree/cm-11.0
I am running ubuntu 13.10 64 bit server edition and created the folders as below,
[email protected]:~$ tree
.
|-- android
| `-- system
`-- bin
`-- repo
I cd to ~/android/system and I am trying to initiate repo using below command,
Code:
repo init -u git://github.com/CyanogenMod/android_device_samsung_p3100.git -b cm-11.0
getting below error,
Code:
[email protected]:~/android/system$ repo init -u git://github.com/CyanogenMod/android_device_samsung_p3100.git -b cm-11.0
fatal: manifest 'default.xml' not available
fatal: manifest default.xml not found
[email protected]:~/android/system$
Can anyone assist?
Thanks,
Simon Mandy
Wrong repo init command. For your references:
1. Outdated but still useful how to build CyanogenMod for P3100: http://wiki.cyanogenmod.org/w/Build_for_p3100
2. @gr8nole 's personal notes how to build CyanogenMod for Tab 3 8.0: http://forum.xda-developers.com/showpost.php?p=49751306&postcount=578
Use the wiki @ketut.kumajaya linked, i used it when i started compileing
for CM 11 you need to run
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
(wiki needs an update )
After you have synced CM's repo (this will take some time ) you need to create "local_manifest.xml" inside the ".repo" folder (hidden folder, find it "~/android/system/.repo") to sync the vendor-blobs too.
You need this inside:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-11.0" />
</manifest>
if you run "breakfast p3100" this should download all needed repos to build CM.
If not you can use this in your local_manifest.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_p3110" path="device/samsung/p3110" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_device_samsung_p3100" path="device/samsung/p3100" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_device_samsung_p5110" path="device/samsung/p5110" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_device_samsung_p5100" path="device/samsung/p5100" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_kernel_samsung_espresso10" path="kernel/samsung/espresso10" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_device_samsung_omap4-common" path="device/samsung/omap4-common" remote="github" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-11.0" />
</manifest>
Thank you all for helping me out. Now I initated the repo from cm11 folder using below command,
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
But my repo sync get errored as below, (Only the last parts included here. It always end at the same place. I ran so many time)
Code:
Fetching projects: 46% (205/444) Fetching project CyanogenMod/android_external_libnfc-nxp
Fetching project platform/external/marisa-trie
Fetching project platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.7
Fetching project CyanogenMod/android_system_vold
Fetching project CyanogenMod/android_external_jmdns
Fetching projects: 47% (209/444) Fetching project device/generic/mini-emulator-armv7-a-neon
Fetching project platform/frameworks/uiautomator
Fetching project platform/external/smack
Fetching project CyanogenMod/android_device_generic_mips
Fetching project CyanogenMod/android_vendor_cm
Fetching projects: 48% (214/444) Fetching project CyanogenMod/android_external_apache-http
Fetching project CyanogenMod/android_packages_providers_ApplicationsProvider
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_hardware_broadcom_wlan
error: Cannot fetch CyanogenMod/android_hardware_qcom_camera
Fetching project CyanogenMod/android_external_zxing
Fetching projects: 49% (218/444)
error: Exited sync due to fetch errors
[email protected]:~/cm11$
Please help me on how to proceed.
delete the folder and try it again on a new created folder
Android-Andi said:
delete the folder and try it again on a new created folder
Click to expand...
Click to collapse
Did you mean delete cm11 folder (where it had already downloaded some 6 GB data) and create another cm11 and do repo init and do repo sync again?
Thanks,
Simon Mandy
if nothing else worked, yes.
Related
With there being a bit of an hiatus on CM9 development (waiting for HTC kernel source, working on JB), I thought I'd learn more about building ROMs.
I'm running Ubuntu 10.04 (and 12.04) under VMware Player on Windows 7 Home.
I downloaded the JB AOSP repository and built it successfully for the emulator.
Next, I wanted to build a working ROM, so I chose to do CM9 (ICS).
I've followed [TUTORIAL]Setting up and compiling CM9 from source
and some info regarding building JB:
nk111 said:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync
./build/envsetup.sh
brunch saga
Click to expand...
Click to collapse
Here's what I did:
repo init -u git://github.com/CyanogenMod/android.git -b ics
Added a "remote" to get the proprietary files for HTC devices by creating WorkingDir/.repo/local_manifest.xml
Note: An alternative to using nexx/proprietary_vendor_htc is to run ./extract-files.sh from WorkingDir/device/htc/saga with your PC connected to your phone (it used adb to pull down the proprietary files)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="https://github.com/" name="nexx" revision="ics" />
<project name="nexx/proprietary_vendor_htc" path="vendor/htc" remote="nexx" revision="ics" />
<!-- the following lines were added automatically by "brunch saga" command -->
<project name="CyanogenMod/android_device_htc_saga" path="device/htc/saga" remote="github" revision="ics" />
<project name="CyanogenMod/android_device_htc_msm7x30-common" path="device/htc/msm7x30-common" remote="github" revision="ics" />
<project name="CyanogenMod/htc-kernel-msm7x30" path="kernel/htc/msm7x30" remote="github" revision="android-msm-2.6.35-ics" />
</manifest>
repo sync
Note: the next bit adds the ROM Manager and Term packages which are required by CM
cd vendor/cm
./get-prebuilts
cd ../..
. build/envsetup.sh
brunch saga (I also tried breakfast saga; lunch;mka)
The build failed with these errors:
target SharedLib: audio.primary.msm7x30 (out/target/product/saga/obj/SHARED_LIBRARIES/audio.primary.msm7x30_intermediates/LINKED/audio.primary.msm7x30.so)
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/saga/obj/SHARED_LIBRARIES/audio.primary.msm7x30_intermediates/AudioHardware.o: in function android_audio_legacy::AudioHardware::setMicMute_nosync(bool):hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:932: error: undefined reference to 'msm_device_mute'
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/saga/obj/SHARED_LIBRARIES/audio.primary.msm7x30_intermediates/AudioHardware.o: in function android_audio_legacy::AudioHardware::AudioHardware():hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:566: error: undefined reference to 'msm_reset_all_device'
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/saga/obj/SHARED_LIBRARIES/audio.primary.msm7x30_intermediates/AudioHardware.o: in function android_audio_legacy::updateDeviceInfo(int, int, unsigned int, unsigned int):hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:449: error: undefined reference to 'msm_device_mute'
collect2: ld returned 1 exit status
Note this error occurs both in Ubuntu 10.04 and 12.04
What am I missing and what do I need to do to get the error fixed?
Thanks
Edit:
Solution
The version of Ubuntu has nothing to do with the problem.
The errors point to some missing functions called by hardware/qcom/media/audio/msm7x30/AudioHardware.cpp
The modules in nexx/proprietary_vendor_htc are missing the required functions so copy them from a working CM9 ROM.
tuttifrutas said:
i mean you should run the file extract-files.sh, this will copy the files from your phone to the folder vendor/htc/saga/proprietary, just notice that your phone should have at least one of the latest cm9 nk111 roms.
or you can extract the nk111 cm9 rom to a folder, goto that folder and under sytem/lib, copy the needed .so files to the vendor/htc/saga/proprietary replacing the files on this folder
or you can add repository that is not nexx for example https://github.com/AOKPDS/proprietary_vendor_htc
you can check if the files contain that function by using this command in the folder vendor/htc/saga/proprietary
Code:
grep -R msm_device_mute .
My output
Code:
~/cm9/vendor/htc/saga/proprietary$ grep -R msm_device_mute
.Binary file ./libaudioalsa.so matches
Click to expand...
Click to collapse
Thanks Bill for the start and the steps, please keep updating the OP as you proceed on your journey.
I would also like to Build CM9 myself atleast once
Hi maybe you are missing some projects
try this on you local_manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_htc_saga" path="device/htc/saga" remote="github" revision="ics" />
<project name="CyanogenMod/android_device_htc_msm7x30-common" path="device/htc/msm7x30-common" remote="github" revision="ics" />
<project name="nexx/proprietary_vendor_htc" path="vendor/htc" remote="github" revision="ics" />
</manifest>
i think you need to go to vendor/cm/ and excute get-prebuilds or something like that if you get some rommanager error
This is what my local_manifest.xml looks like:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="https://github.com/" name="nexx" revision="ics" />
<project name="nexx/proprietary_vendor_htc" path="vendor/htc" remote="nexx" revision="ics" />
<project name="CyanogenMod/android_device_htc_saga" path="device/htc/saga" remote="github" revision="ics" />
<project name="CyanogenMod/android_device_htc_msm7x30-common" path="device/htc/msm7x30-common" remote="github" revision="ics" />
<project name="CyanogenMod/htc-kernel-msm7x30" path="kernel/htc/msm7x30" remote="github" revision="android-msm-2.6.35-ics" />
</manifest>
The brunch saga command added these additional entries automatically.
I know this seems like a long shot and it may not fix the problem but it could be Ubuntu 12.04 causing problems. 10.04 is the best version. Also you don't need to add the kernel to the local manifest unless you're creating a custom one. It's already in the device tree
Sent from my Desire S using Tapatalk 2
Is your repository properly synchronized? If not it is probably your build machine
Sent from my Desire S using xda app-developers app
Thanks, guys. I'll try using Ubuntu 10 instead of 12.
Sent from my HTC Desire S
I did a complete reinstall on Ubuntu 10.04. But I still get the same errors. Note, I've updated the OP with more details on my environment and the steps I went through.
i got the same error when i tried to compile it on a Virtual machine. I'm not an expert but it seems to me that the file vendor/htc/saga/proprietary/libaudioalsa.so should have that function but it doesn't !? correct me if i'm wrong
try extracting the files from one of cm9 alpha builds using the script extract-files.sh under the folder device/htc/saga/
or just open the cm9 alpha zip file goto system/lib copy and replace the file libaudioalsa.so in the dir vendor/htc/saga/proprietary/
EDIT:
the proprietary repository, that is added using brunch saga, is the culprit it breaks the build
I managed to get a working build!
The errors point to some missing functions called by hardware/qcom/media/audio/msm7x30/AudioHardware.cpp
So I had a look at the code and found that there were two conditions that invoked the problem code:
#ifdef WITH_QCOM_RESETALL
and
#ifdef WITH_QCOM_VOIPMUTE
So I commented out these sections and, voila, it compiled!
Now, I have no idea what is the broader impact of what I've done, but the build work and runs on the phone.
So I'm changing this thread for [Q] to [Partial solution]
tuttifrutas said:
EDIT:
the proprietary repository, that is added using brunch saga, is the culprit it breaks the build
Click to expand...
Click to collapse
Can you please be a bit more specific? The CyanogenMod/android_device_htc_saga project adds the proprietary files only if you connect your phone and run ./extract-files.sh.
Are you saying:
Don't run extract-files.sh, or
Remove the CyanogenMod/android_device_htc_saga project, which doesn't make sense to me because it includes a lot more than just the proprietary files, or
????
BillGoss said:
Can you please be a bit more specific? The CyanogenMod/android_device_htc_saga project adds the proprietary files only if you connect your phone and run ./extract-files.sh.
Are you saying:
Don't run extract-files.sh, or
Remove the CyanogenMod/android_device_htc_saga project, which doesn't make sense to me because it includes a lot more than just the proprietary files, or
????
Click to expand...
Click to collapse
i mean you should run the file extract-files.sh, this will copy the files from your phone to the folder vendor/htc/saga/proprietary, just notice that your phone should have at least one of the latest cm9 nk111 roms.
or you can extract the nk111 cm9 rom to a folder, goto that folder and under sytem/lib, copy the needed .so files to the vendor/htc/saga/proprietary replacing the files on this folder
or you can add repository that is not nexx for example https://github.com/AOKPDS/proprietary_vendor_htc
you can check if the files contain that function by using this command in the folder vendor/htc/saga/proprietary
Code:
grep -R msm_device_mute .
My output
Code:
~/cm9/vendor/htc/saga/proprietary$ grep -R msm_device_mute
.Binary file ./libaudioalsa.so matches
This is a tutorial about how to download and compile specific parts in aosp based roms (such as CM10)
Written for AOSP noobs like me a year ago.
Note: I wrote this tutorial actually for my blog, as a beginners repo/compile tut, but why not share here
Introduction:
Downloading rom sources is done with the tool “repo”, this is the most awesome downloader in existence. Not only it looks very cool, it also reaches top speed at all times. But it’s only for linux (which is good since when you are busy with aosp roms you should be on linux)
Why is it awesome? Since you decide yourself how many jobs (aka connections) you make with the server. This means you always will get top speed, there is probably no faster download method available on the Internet (except for speedtests, but they don’t count). Next to the downloading of specific parts it’s of course also handy to know how to actually compile them.
Download:
The easiest way of fetching for example a batch of AOSP apps is like this:
1. Choose the desired tag you want to use, in the example I will use android-4.2.2_r1
2. Now make a dir somewhere:
Code:
- mkdir ~/aosp-apps
- cd ~/aosp-apps
3. Download repo when not installed yet:
Code:
- curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- chmod a+x ~/bin/repo
4. Enter the line that will download the initial manifest.
for AOSP:
Code:
- repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1
Enter your name and email address and wait until it completes
for CM
Code:
- repo init -u https://github.com/Cyanogenmod/android -b cm-10.1
5. Go in the hidden “.repo” dir and change the manifest
Code:
- cd .repo
- gedit manifest.xml (if you don’t have decent text editor such as “gedit”, install it! “sudo apt-get install gedit”
)
For example when you only want to download the apps, just remove all lines that are not app related. simple as that:
Code:
<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<remote name=”aosp”
fetch=”..” />
<default revision=”refs/tags/android-4.2.2_r1″
remote=”aosp”
sync-j=”4″ />
<project path=”packages/apps/BasicSmsReceiver” name=”platform/packages/apps/BasicSmsReceiver” />
<project path=”packages/apps/Bluetooth” name=”platform/packages/apps/Bluetooth” />
<project path=”packages/apps/Browser” name=”platform/packages/apps/Browser” />
<project path=”packages/apps/Calculator” name=”platform/packages/apps/Calculator” />
<project path=”packages/apps/Calendar” name=”platform/packages/apps/Calendar” />
<project path=”packages/apps/Camera” name=”platform/packages/apps/Camera” />
<project path=”packages/apps/CellBroadcastReceiver” name=”platform/packages/apps/CellBroadcastReceiver” />
<project path=”packages/apps/CertInstaller” name=”platform/packages/apps/CertInstaller” />
<project path=”packages/apps/Contacts” name=”platform/packages/apps/Contacts” />
<project path=”packages/apps/DeskClock” name=”platform/packages/apps/DeskClock” />
<project path=”packages/apps/Email” name=”platform/packages/apps/Email” />
<project path=”packages/apps/Exchange” name=”platform/packages/apps/Exchange” />
<project path=”packages/apps/Gallery” name=”platform/packages/apps/Gallery” />
<project path=”packages/apps/Gallery2″ name=”platform/packages/apps/Gallery2″ />
<project path=”packages/apps/HTMLViewer” name=”platform/packages/apps/HTMLViewer” />
<project path=”packages/apps/KeyChain” name=”platform/packages/apps/KeyChain” />
<project path=”packages/apps/Launcher2″ name=”platform/packages/apps/Launcher2″ />
<project path=”packages/apps/LegacyCamera” name=”platform/packages/apps/LegacyCamera” />
<project path=”packages/apps/Mms” name=”platform/packages/apps/Mms” />
<project path=”packages/apps/Music” name=”platform/packages/apps/Music” />
<project path=”packages/apps/MusicFX” name=”platform/packages/apps/MusicFX” />
<project path=”packages/apps/Nfc” name=”platform/packages/apps/Nfc” />
<project path=”packages/apps/PackageInstaller” name=”platform/packages/apps/PackageInstaller” />
<project path=”packages/apps/Phone” name=”platform/packages/apps/Phone” />
<project path=”packages/apps/Protips” name=”platform/packages/apps/Protips” />
<project path=”packages/apps/Provision” name=”platform/packages/apps/Provision” />
<project path=”packages/apps/QuickSearchBox” name=”platform/packages/apps/QuickSearchBox” />
<project path=”packages/apps/Settings” name=”platform/packages/apps/Settings” />
<project path=”packages/apps/SoundRecorder” name=”platform/packages/apps/SoundRecorder” />
<project path=”packages/apps/SpareParts” name=”platform/packages/apps/SpareParts” />
<project path=”packages/apps/SpeechRecorder” name=”platform/packages/apps/SpeechRecorder” />
<project path=”packages/apps/Stk” name=”platform/packages/apps/Stk” />
<project path=”packages/apps/Tag” name=”platform/packages/apps/Tag” />
<project path=”packages/apps/VideoEditor” name=”platform/packages/apps/VideoEditor” />
<project path=”packages/apps/VoiceDialer” name=”platform/packages/apps/VoiceDialer” />
</manifest>
When done, save it and go a dir back in the terminal
Code:
- cd ..
6. Download the packages
Code:
- repo sync -j16 (-j16 stands for 16 jobs max. This is for around a 100mbit line)
(With my 60mb/s connection I get max speed 7.2mb/s at -j8)
The packages will be download as quickly as possible to your harddrive now.
Compile:
To compile the obtained packages separately you will need a AOSP environment (or CM/AOKP etc). When you have a succesfull environment which is able to compile for your device you may enter:
Code:
- source build/envsetup.sh
- lunch (now choose your device, for example, full_ariesve-userdebug)
- now you’re theoretically ready to compile
to compile an app on the easiest way:
Code:
- make Appname -j8
where “Appname” is the name of the folder placed in packages/apps/..
This also counts for “SystemUI” which is not in that folder.
Code:
- make Calculator -j8 (for example)
And the -j param again stands for the number of jobs, remember that this is compiling and not downloading, so the “standard rule” with this is, number of cores of your CPU + 1.
Which makes a regular quad core (-j5) but makes a i7 CPU with Hyper threading (-j9). When using -j16 for example there could be moments that your cpu will be overloaded so much that your mouse will lag all over the place.
(Linux forces the cpu to perform higher then it actually should, resulting in a very strange fan sound in my case)
When having trouble, when it stops or just nags about some useless stuff.
You should try using the “-k” param, this tells the make command to keep going when a non-critical error occurs.
Code:
- make Calculator -k -j8
When having issues with the local module tags, you should enter this:
Code:
- make Calculator -k LOCAL_MODULE_TAGS=optional -j8
To compile other parts you also need to enter the folder name, here are some examples from /frameworks/base
Code:
- make policy (the power menu and lockscreen)
- make framework (the initial framework files)
- make framework-res (the initial framework resources)
- make services (the services.jar file)
or more examples:
Code:
- make sdk (builds the android sdk)
- make modules (builds all modules)
- make installclean (removes all staging directories, such as out/target/product/boardname/system)
- make clean (removes the whole /out directory)
:silly:
Good Job
this isnt so bad I will be giving your guide to people from my community who want to compile.
only problem is the cm branch you put jellybean you should put cm-10.1 if you are using googles 4.2.2 source
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
Unjustified Dev said:
this isnt so bad I will be giving your guide to people from my community who want to compile.
only problem is the cm branch you put jellybean you should put cm-10.1 if you are using googles 4.2.2 source
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
Click to expand...
Click to collapse
Thanks for mentioning
broodplank1337 said:
Thanks for mentioning
Click to expand...
Click to collapse
Can you teach me everything you know
Do you know how to cherry Pick? I need help merging it when it conflicts other strings
I want to learn everything im only 15 and I have time to learn now.
I plan on eventually building my own rom based off aosp here's my github
https://github.com/TeamRegular
I took a look at your projects and tutorials you are awesome.
This looks like a great tutorial :good: and when I saw it I thought it might answer a question I've been thinking about for a while now: would it be possible to compile Pie controls from Paranoid Android into one independent app?
I'm a n00b at compiling anything, I've attempted (and failed) to compile a kernel, so could you give me some direction on how air would do this? Thanks :laugh:
Hi everyone!
I am attempting to build cm 12.1 bacon on my ubuntu 14.04 LTS x64.
I have followed the environment setup instructions: (wiki.cyanogenmod.org/w/Build_for_bacon and source.android.com/source/initializing.html)
I also have exported BUILD_HOST_32bit=1
When building, I am confronted with the following error:
Code:
make: *** No rule to make target `libqmi', needed by `/p/cyanogen/android/system/out/target/product/bacon/obj/EXECUTABLES/wpa_supplicant_intermediates/config.o'. Stop.
make: *** Waiting for unfinished jobs....
I have not found any help regarding this issue.
Any ideas? Thanks!
Ok didnt see I had to add an xml file to make repo download more proprietary files. It's not in the official tutorial
It works now
I have the same problem building CM 12.1 for bacon. How did you fix. I'm very new to building
NeXXus325 said:
I have the same problem building CM 12.1 for bacon. How did you fix. I'm very new to building
Click to expand...
Click to collapse
Just follow the normal procedure wiki.cyanogenmod.org/w/Build_for_bacon and after the first repo sync do:
mkdir .repo/local_manifests
nano .repo/local_manifests/local_manifests.xml
Paste this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-12.1" />
</manifest>
then do another repo sync and keep on with the instructions. Worked for me
albanderuaz said:
Just follow the normal procedure wiki.cyanogenmod.org/w/Build_for_bacon and after the first repo sync do:
mkdir .repo/local_manifests
nano .repo/local_manifests/local_manifests.xml
Paste this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-12.1" />
</manifest>
then do another repo sync and keep on with the instructions. Worked for me
Click to expand...
Click to collapse
I'll try that. Thank you
Sent from my A0001 using Tapatalk
I have same error... not able to find a fix or why I got this error Commands I did:
mkdir cm12.1caf; cd cm12.1caf
repo init -u https://github.com/temasek/android.git -b cm-12.1
repo sync
>> created local_manifest:
mkdir .repo/local_manifests
vi .repo/local_manifests/local_manifest
I used @katinatez manifest
LANG=C && . build/envsetup.sh && time brunch bacon
make: *** No rule to make target 'libqmi', needed by '/home/djh/cm12.1caf/out/target/product/bacon/obj/EXECUTABLES/wpa_supplicant_intermediates/config.o'. Stop.
make: *** Waiting for unfinished jobs....
target thumb C: wpa_cli <= external/wpa_supplicant_8/wpa_supplicant/src/utils/edit.c
make: Leaving directory '/home/djh/cm12.1caf'
#### make failed to build some targets (13:12 (mm:ss)) ####
Click to expand...
Click to collapse
Hey guys, so at its root, it's a common question that has many answers and posts already, but I'm still kinda lost on how one would build for a device that you can't just run "breakfast" on, like our Honor8.
There are things like:
https://forum.xda-developers.com/showthread.php?t=2320007
https://cohaolain.wordpress.com/2017/01/07/building-lineageos-14-1-with-specifics-for-the-oneplus-3/
and many many more that explain how to get the android base repo setup, and that's as far as I am now. I've already done repo sync for android, but now it's down to the device specifics.
https://forum.xda-developers.com/honor-8/development/rom-t3500171
and
https://forum.xda-developers.com/honor-8/development/rom-t3521731
have the sources for Huawei-Dev for the device tree, but where do you tie that into everything?
I had a problem with 14.1, so I had to go with 14.0, so I KNOW there will be issues in the end result. Since I'm going to be mixing 14.0 and 14.1 together. I'm not too worried about that, I'm just trying to learn how the overall compilation actually works or atleast have the guide in mind for how
In that WP link I provided, they mentioned for OnePlus to do a "roomservice.xml" and then a subsequent repo sync. So my guess would be that I my setup would be along the following lines:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="Huawei-Dev/android_vendor_huawei_frd" path="vendor/honor8" remote="github" revision="7.1.1" />
<project name="Huawei-Dev/android_device_huawei_frd" path="device/honor8/honor8" remote="github" revision="cm-14.1" />
<project name="Huawei-Dev/android_kernel_huawei_frd" path="kernel/honor8/kirin950" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_vendor_nxp-nfc_opensource_libnfc-n:ci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-14.1" />
</manifest>
After that would come another repo sync to get those paths downloaded, then I guess I do lunch and brunch?
Okay, so i've ended with this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="Huawei-Dev/android_vendor_huawei_frd" path="vendor/huawei" remote="github" revision="7.1.1" />
<project name="Huawei-Dev/android_device_huawei_frd" path="device/huawei/frd" remote="github" revision="cm-14.1" />
<project name="Huawei-Dev/android_kernel_huawei_frd" path="kernel/huawei/kirin950" remote="github" revision="7.1.1" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
</manifest>
for the roomservice.xml
now i went ahead and did "breakfast frd" and then did "mka". But I get the following:
Checking build tools versions...
build/core/binary.mk:1253: external/deqp/Android.mk: libdeqp: Unused source files: \
build/core/binary.mk:1253: external/deqp/Android.mk: libdeqp: Unused source files: \
build/core/binary.mk:1253: external/pdfium/third_party/pdfiumbigint.mk: libpdfiumbigint: Unused source files: bigint/BigInteger.cc bigint/BigIntegerUtils.cc bigint/BigUnsigned.cc bigint/BigUnsignedInABase.cc
build/core/binary.mk:1253: external/pdfium/third_party/pdfiumbigint.mk: libpdfiumbigint: Unused source files: bigint/BigInteger.cc bigint/BigIntegerUtils.cc bigint/BigUnsigned.cc bigint/BigUnsignedInABase.cc
./external/speex/Android.mk:56: TODOArm64: enable neon in libspeex
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets
find: `/home/tim/CM14.1/android/system/out/target/common/obj/SHARED_LIBRARIES/libwifi-hal-mock_intermediates': No such file or directory
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets
build/core/base_rules.mk:183: *** system/core/rootdir: MODULE.TARGET.ETC.init.rc already defined by device/huawei/frd/rootdir.
build/core/ninja.mk:166: recipe for target '/home/tim/CM14.1/android/system/out/build-cm_frd.ninja' failed
make: *** [/home/tim/CM14.1/android/system/out/build-cm_frd.ninja] Error 1
make: Leaving directory '/home/tim/CM14.1/android/system'
#### make failed to build some targets (19 seconds) ####
Hate to bump, but does anyone have any ideas or input on what i may be doing wrong?
uaktags said:
Hate to bump, but does anyone have any ideas or input on what i may be doing wrong?
Click to expand...
Click to collapse
I'm not building for our Honor 8, but maybe the following will help.
1) I've never had much luck with ninja. The following is what I use to disable ninja and build for the OnePlus One.
cd android/system
repo sync
. build/envsetup.sh
export USE_NINJA=false
./prebuilts/sdk/tools/jack-admin kill-server
export ANDROID_JACK_VM_ARGS="-Xmx5g -Dfile.encoding=UTF-8 -XX:+TieredCompilation"
JACK_SERVER_VM_ARGUMENTS="-Xmx5g -Dfile.encoding=UTF-8 -XX:+TieredCompilation" ./prebuilts/sdk/tools/jack-admin start-server
brunch bacon
2) I have not explored the github for Huawei stuff, but again, here is the roomservice.xml that works for the OnePlus One. Maybe you can compare this with yours for the Honor8 and determine if some resources are missing.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="LineageOS/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" />
<project name="LineageOS/android_device_oppo_common" path="device/oppo/common" remote="github" />
<project name="LineageOS/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" />
</manifest>
take a look at cm.dependencies (https://github.com/Huawei-Dev/android_device_huawei_frd/blob/7.1.1/cm.dependencies) and add those three to your room service file as well. I haven't tried to build with the cm14 trees, but I do know the cm13 trees were in a buildable state two months ago.
anks329 said:
take a look at cm.dependencies (https://github.com/Huawei-Dev/android_device_huawei_frd/blob/7.1.1/cm.dependencies) and add those three to your room service file as well. I haven't tried to build with the cm14 trees, but I do know the cm13 trees were in a buildable state two months ago.
Click to expand...
Click to collapse
Thanks, I'll take a look and see if I can apply your two posts.
This is my first time porting a "new" device to a "new" version of Android. I'm trying to port Lineage 14.1 to the LG Leon LTE, which previously only ran CM 12.1. It's based on the msm8916 chipset. Codenames are c50 and ms345 depending on carrier variant but largely the same thing. I know Lineage 14.1 is out of date, but it was the latest version that still had LG-based msm8916 trees so I figured this was good to bump it up to. Hey, still a lot better than Lollipop.
My sources are set up as such: Everything synced is from Lineage 14.1 as a base, except the LG Leon LTE device tree and the vendor tree which are from CM 12.1. So that means:
Leon-specific device tree: CM 12.1
MSM8916-common device tree: Lineage 14.1
Kernel tree: Lineage 14.1
Vendor tree that has Leon blobs: CM 12.1
Other dependencies like qcom_common and such: Lineage 14.1
The Leon CM 12.1 trees were set up to use a prebuilt kernel image which I do not have, so I had to modify the device tree a bit to build from the Lineage 14.1 generic LG MSM8916 kernel source. I set the defconfig to kernel/arch/arm/configs/c50_tmo_us_defconfig (although this error persists with any defconfig I choose including the generic MSM8916 one). Everything builds just fine until I get to kernel compilation. I get one error message which is the following:
FAILED: /bin/bash -c "(make -j3 CFLAGS_MODULE=\"-fno-pic\" -C kernel/lge/msm8916 O=/home/administrator/lin-14.1/out/target/product/ms345/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\" arm-linux-androidkernel-\" zImage ) && (if grep -q '^CONFIG_OF=y' /home/administrator/lin-14.1/out/target/product/ms345/obj/KERNEL_OBJ/.config; then echo \"Building DTBs\"; make -j3 CFLAGS_MODULE=\"-fno-pic\" -C kernel/lge/msm8916 O=/home/administrator/lin-14.1/out/target/product/ms345/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\" arm-linux-androidkernel-\" dtbs; fi ) && (if grep -q '^CONFIG_MODULES=y' /home/administrator/lin-14.1/out/target/product/ms345/obj/KERNEL_OBJ/.config; then echo \"Building Kernel Modules\"; make -j3 CFLAGS_MODULE=\"-fno-pic\" -C kernel/lge/msm8916 O=/home/administrator/lin-14.1/out/target/product/ms345/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\" arm-linux-androidkernel-\" modules; fi )"
Afterwards I get lots of errors about driver compilation failing for the kernel, but this is the first error message I get. Any guidance would be appreciated, as I feel this is the only major thing standing between me and a successful build.
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
EDIT: I'll post up info about my system and build environment:
Running Ubuntu 18.04.5 with kernel 4.15.0-143, trying to build Lineage 14.1
AMD Phenom tri-core processor with 8GB RAM
Using the following roomservice manifest:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TeamRegular/android_device_lge_ms345" path="device/lge/ms345" remote="github" revision="cm-12.1" />
<project name="TeamRegular/android_device_lge_c50-common" path="device/lge/c50-common" remote="github" revision="cm-12.1" />
<project name="LineageOS/android_device_lge_msm8916-common" path="device/lge/msm8916-common" remote="github" />
<project name="LineageOS/android_kernel_lge_msm8916" path="kernel/lge/msm8916" remote="github" />
<project name="TeamRegular/vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
<project name="LineageOS/android_external_bson" path="external/bson" remote="github" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" />
<project name="LineageOS/android_packages_apps_FlipFlap" path="packages/apps/FlipFlap" remote="github" />
</manifest>
The device trees are more split up than usual: there are 3 with 2 common ones. MSM8916-common is expected, but c50-common and ms345 are also split up to account for the different variants of the Leon LTE out there.
To get this far I had to:
Edit c50-common's BoardConfig.mk to point to the kernel source and defconfig
"remove" liblight from c50-common by going to the c50-common/liblight/Android.mk and commenting out every line so the msm8916-common version was used instead (there were conflicts)
Export LC_ALL=C before building to get around some Java issues
Fixed the problem thanks to the help of @bcrichster
The issue lied in kernel/lge/msm8916/drivers/media/radio/radio_iris.c
Copying the entire block of code so you can see what I did. Note this problem may not be universal for everything, but just to state what it was for me: I had to go AROUND the error message to see that radio_hci_smd_init didn't actually exist so I had to "work around" it as you can see below
#ifndef MODULE
extern int radio_hci_smd_init(void);
static int iris_fops_open(struct file *f) {
//jasonmercfix see below for obvious "patching"
if (transport_ready < 0) {
//transport_ready = radio_hci_smd_init();
transport_ready = transport_ready;
}
return transport_ready;
}
#endif
I'm a developer now