I am following the CyanogenMod guide to get the source code ready for building my own CM nightlies, but I am running into an issue. Throwing it out here in case someone has figured this out (and to put a solution when I do figure it out).
Here's the guide http://wiki.cyanogenmod.org/w/Build_for_odin
It's auto-generated and everything has been right so far, but when trying to prepare the device-specific code, it fails to find the qualcom-common files:
Code:
[email protected]:~/android/system$ breakfast odin
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/sony/odin/cm.mk]]: "vendor/sony/qcom-common/qcom-common-vendor.mk" does not exist. Stop.
Device odin not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_sony_odin
Default revision: cm-10.1
Checking branch info
CyanogenMod/android_device_sony_odin already exists
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/sony/odin/cm.mk]]: "vendor/sony/qcom-common/qcom-common-vendor.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_odin'
** Do you have the right repo manifest?
I get the same error if I try to get the source code for yuga (Xperia Z), so I am definitely missing something that is not specific to the ZL, but might be Sony specific.
I have the same problem
I've been following along with the instructions on the cyanogenmod wiki on building for M8.
(I'd post the link, but the system won't let me since I'm new)
I'm doing this on Ubuntu 16.04 LTS.
I managed to get all the way to the command: breakfast m8
But here I'm stuck. It's throwing an error, and I can't seem to figure out what to do about it.
I'd very much appreciate a hint. The response from the command is below:
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_m8". Stop.
Device m8 not found. Attempting to retrieve device repository from CyanogenMod Github
Found repository: android_device_htc_m8
Default revision: cm-13.0
Checking branch info
Checking if device/htc/m8 is fetched from android_device_htc_m8
CyanogenMod/android_device_htc_m8 already fetched to device/htc/m8
Syncing repository to retrieve project.
sh: 1: repo: not found
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_m8". Stop.
** Don't have a product spec for: 'cm_m8'
** Do you have the right repo manifest?
I am trying to build LineageOS 13 for my device and I'm following this guide: https://forum.xda-developers.com/chef-central/android/how-to-build-lineageos-14-1-t3551484
I'm using this device tree: https://github.com/vampirefo/android_device_blu_Life_One_X2_Mini
and this vendor tree: https://github.com/vampirefo/android_vendor_blu_Life_One_X2_Mini
I do not have the kernel source and I am hoping I can use a precompiled kernel. I have synced the LineageOS 13.0 repo and synced the device and vendor tree.
this is my output for "source build/envsetup.sh"
Code:
including device/blu/Life_One_X2_Mini/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash
When I run the command "croot" I get "command not found". I assume it's the same as doing "cd ~/android/system". When I run the command "breakfast full_Life_One_X2_Mini" I get the following error:
Code:
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** Can not locate config makefile for product "lineage_full_Life_One_X2_Mini". Stop.
Device full_Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for full_Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:238: *** Can not locate config makefile for product "lineage_full_Life_One_X2_Mini". Stop.
** Don't have a product spec for: 'lineage_full_Life_One_X2_Mini'
** Do you have the right repo manifest?
** Warning: 'full_Life_One_X2_Mini' is using CM-based makefiles. This will be deprecated in the next major release.
build/core/product_config.mk:238: *** Can not locate config makefile for product "cm_full_Life_One_X2_Mini". Stop.
Device full_Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for full_Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:238: *** Can not locate config makefile for product "cm_full_Life_One_X2_Mini". Stop.
** Don't have a product spec for: 'cm_full_Life_One_X2_Mini'
** Do you have the right repo manifest?
I'm missing something obvious but I can't see it. I'm building this in Arch Linux
Thanks
srgrusso said:
I am trying to build LineageOS 13 for my device and I'm following this guide: https://forum.xda-developers.com/chef-central/android/how-to-build-lineageos-14-1-t3551484
I'm using this device tree: https://github.com/vampirefo/android_device_blu_Life_One_X2_Mini
and this vendor tree: https://github.com/vampirefo/android_vendor_blu_Life_One_X2_Mini
I do not have the kernel source and I am hoping I can use a precompiled kernel. I have synced the LineageOS 13.0 repo and synced the device and vendor tree.
this is my output for "source build/envsetup.sh"
Code:
including device/blu/Life_One_X2_Mini/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash
When I run the command "croot" I get "command not found". I assume it's the same as doing "cd ~/android/system". When I run the command "breakfast full_Life_One_X2_Mini" I get the following error:
Code:
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** Can not locate config makefile for product "lineage_full_Life_One_X2_Mini". Stop.
Device full_Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for full_Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:238: *** Can not locate config makefile for product "lineage_full_Life_One_X2_Mini". Stop.
** Don't have a product spec for: 'lineage_full_Life_One_X2_Mini'
** Do you have the right repo manifest?
** Warning: 'full_Life_One_X2_Mini' is using CM-based makefiles. This will be deprecated in the next major release.
build/core/product_config.mk:238: *** Can not locate config makefile for product "cm_full_Life_One_X2_Mini". Stop.
Device full_Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for full_Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:238: *** Can not locate config makefile for product "cm_full_Life_One_X2_Mini". Stop.
** Don't have a product spec for: 'cm_full_Life_One_X2_Mini'
** Do you have the right repo manifest?
I'm missing something obvious but I can't see it. I'm building this in Arch Linux
Thanks
Click to expand...
Click to collapse
You may need to edit the(device tree) device.mk's to reflect the files you're working with
Sent from my N9515 using Tapatalk
bcrichster said:
You may need to edit the(device tree) device.mk's to reflect the files you're working with
Sent from my N9515 using Tapatalk
Click to expand...
Click to collapse
here is my vendorsetup.sh
Code:
add_lunch_combo full_Life_one_X2_Mini-userdebug
and my AndroidProducts.mk
Code:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/full_Life_One_X2_Mini.mk
I have been looking at this for a week and still can't see what is wrong. I'm starting to feel stupid. Maybe someone sees something I don't. The person who built the tree has built a few roms with it so it has to be something I'm doing wrong. If you need to look at the rest of the tree here is the link.
https://github.com/vampirefo/android_device_blu_Life_One_X2_Mini
Edit: found my error in my vendorsetup.sh should be "full_Life_One_X2_Mini-userdebug" not "full_Life_one_X2_Mini-userdebug"
srgrusso said:
here is my vendorsetup.sh
Code:
add_lunch_combo full_Life_one_X2_Mini-userdebug
and my AndroidProducts.mk
Code:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/full_Life_One_X2_Mini.mk
I have been looking at this for a week and still can't see what is wrong. I'm starting to feel stupid. Maybe someone sees something I don't. The person who built the tree has built a few roms with it so it has to be something I'm doing wrong. If you need to look at the rest of the tree here is the link.
https://github.com/vampirefo/android_device_blu_Life_One_X2_Mini
Click to expand...
Click to collapse
Use "lunch" instead of breakfast (device).. Lemme pull it up in a min and have a better look
Edit: another possibility could be LineageOS's change from vendor/cm to vendor/lineage that needs reflected in you lineage.mk
Sent from my N9515 using Tapatalk
bcrichster said:
Use "lunch" instead of breakfast (device).. Lemme pull it up in a min and have a better look
Edit: another possibility could be LineageOS's change from vendor/cm to vendor/lineage that needs reflected in you lineage.mk
Sent from my N9515 using Tapatalk
Click to expand...
Click to collapse
Ok i have made it a little further. now when I do lunch I get the following error
Code:
You're building on Linux
Breakfast menu... pick a combo:
1. aosp_arm64-eng 9. lineage_espresso3g-userdebug 17. lineage_toro-userdebug
2. aosp_arm-eng 10. lineage_espressowifi-userdebug 18. m_e_arm-userdebug
3. aosp_mips64-eng 11. lineage_ks01lte-userdebug 19. mini_emulator_arm64-userdebug
4. aosp_mips-eng 12. lineage_maguro-userdebug 20. mini_emulator_mips-userdebug
5. aosp_x86_64-eng 13. lineage_manta-userdebug 21. mini_emulator_x86_64-userdebug
6. aosp_x86-eng 14. lineage_mondrianwifi-userdebug 22. mini_emulator_x86-userdebug
7. full_Life_One_X2_Mini-userdebug 15. lineage_roth-userdebug
8. full_P780-userdebug 16. lineage_toroplus-userdebug
... and don't forget the bacon!
Which would you like? [aosp_arm-eng] 7
build/core/product_config.mk:243: *** _nic.PRODUCTS.[[device/blu/Life_One_X2_Mini/full_Life_One_X2_Mini.mk]]: "frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk" does not exist. Stop.
Device Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:243: *** _nic.PRODUCTS.[[device/blu/Life_One_X2_Mini/full_Life_One_X2_Mini.mk]]: "frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'full_Life_One_X2_Mini'
** Do you have the right repo manifest?
could this be wrong?
Code:
#Dalvk Heap's
$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk)
$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-hwui-memory.mk)
Time to chase the errors.
thanks for helping me.
srgrusso said:
Ok i have made it a little further. now when I do lunch I get the following error
Code:
You're building on Linux
Breakfast menu... pick a combo:
1. aosp_arm64-eng 9. lineage_espresso3g-userdebug 17. lineage_toro-userdebug
2. aosp_arm-eng 10. lineage_espressowifi-userdebug 18. m_e_arm-userdebug
3. aosp_mips64-eng 11. lineage_ks01lte-userdebug 19. mini_emulator_arm64-userdebug
4. aosp_mips-eng 12. lineage_maguro-userdebug 20. mini_emulator_mips-userdebug
5. aosp_x86_64-eng 13. lineage_manta-userdebug 21. mini_emulator_x86_64-userdebug
6. aosp_x86-eng 14. lineage_mondrianwifi-userdebug 22. mini_emulator_x86-userdebug
7. full_Life_One_X2_Mini-userdebug 15. lineage_roth-userdebug
8. full_P780-userdebug 16. lineage_toroplus-userdebug
... and don't forget the bacon!
Which would you like? [aosp_arm-eng] 7
build/core/product_config.mk:243: *** _nic.PRODUCTS.[[device/blu/Life_One_X2_Mini/full_Life_One_X2_Mini.mk]]: "frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk" does not exist. Stop.
Device Life_One_X2_Mini not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for Life_One_X2_Mini not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:243: *** _nic.PRODUCTS.[[device/blu/Life_One_X2_Mini/full_Life_One_X2_Mini.mk]]: "frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'full_Life_One_X2_Mini'
** Do you have the right repo manifest?
could this be wrong?
Code:
#Dalvk Heap's
$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk)
$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-hwui-memory.mk)
Time to chase the errors.
thanks for helping me.
Click to expand...
Click to collapse
Ok I change "$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-dalvik-heap.mk)" to "$(call inherit-product, frameworks/native/build/phone-xxxhdpi-4096-dalvik-heap.mk)"
and changed "$(call inherit-product, frameworks/native/build/phone-xxhdpi-4096-hwui-memory.mk)" to "$(call inherit-product, frameworks/native/build/phone-xxxhdpi-4096-hwui-memory.mk)"
and here is my final result:
Code:
Trying dependencies-only mode on a non-existing device tree?
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=6.0.1
LINEAGE_VERSION=
TARGET_PRODUCT=full_Life_One_X2_Mini
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.14.13-1-ARCH-x86_64-with-arch
HOST_BUILD_TYPE=release
BUILD_ID=MOI10E
OUT_DIR=/mnt/UserData/Projects/lineageos-13/android/system/out
============================================
I think I'm looking good for now
Thank you for your help. I'll post if I get anymore errors I can't figure out.
I'm stuck on this error.
Code:
make: *** No rule to make target '/.txt', needed by '/mnt/UserData/Projects/lineageos-13-blox2-mini/android/system/out/target/common/obj/PACKAGING/checkpublicapi-cm-last-timestamp'. Stop.
Edit: I got around this error by disabling api checking
srgrusso said:
I am trying to build LineageOS 13 for my device and I'm following this guide: https://forum.xda-developers.com/chef-central/android/how-to-build-lineageos-14-1-t3551484
I'm using this device tree: https://github.com/vampirefo/android_device_blu_Life_One_X2_Mini
and this vendor tree: https://github.com/vampirefo/android_vendor_blu_Life_One_X2_Mini
I do not have the kernel source and I am hoping I can use a precompiled kernel. I have synced the LineageOS 13.0 repo and synced the device and vendor tree.
this is my output for "source build/envsetup.sh"
When I run the command "croot" I get "command not found". I assume it's the same as doing "cd ~/android/system". When I run the command "breakfast full_Life_One_X2_Mini" I get the following error:
I'm missing something obvious but I can't see it. I'm building this in Arch Linux
Thanks
Click to expand...
Click to collapse
vendor should be lineage instead of cm. Check you make file.
Hi guys!
So I was following this https://wiki.lineageos.org/devices/bacon/build wiki to build a lineageos 18.1 ROM for my one plus one.
Unfortunately, when I get to the step for "breakfast bacon", I get the following errors.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:04 dumpvars failed with: exit status 1
Device bacon not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Found repository: android_device_oneplus_bacon
Default revision: lineage-18.1
Checking branch info
Checking if device/oneplus/bacon is fetched from android_device_oneplus_bacon
LineageOS/android_device_oneplus_bacon already fetched to device/oneplus/bacon
Syncing repository to retrieve project.
sh: 1: repo: not found
Repository synced!
Looking for dependencies in device/oneplus/bacon
Looking for dependencies in device/oppo/msm8974-common
device/oppo/msm8974-common has no additional dependencies.
Looking for dependencies in kernel/oppo/msm8974
kernel/oppo/msm8974 has no additional dependencies.
Done
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:05 dumpvars failed with: exit status 1
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
build/make/target/product/product_launched_with_k.mk:2: error: _nic.PRODUCTS.[[device/oneplus/bacon/lineage_bacon.mk]]: "device/oppo/msm8974-common/msm8974.mk" does not exist.
22:35:06 dumpvars failed with: exit status 1
** Don't have a product spec for: 'lineage_bacon'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
What am I doing wrong?
p.s. if I do a "breakfast d855", then I get no error.
My utter apologies for being so blind.
It is of course clearly written on that wiki that some devices would fail upon "breakfast" command being called due to the missing vendor files.
Hence one should first run "extract-files.sh" in the device specific folder. And indeed afterwards the breakfast command succeeds for "bacon".
I could be given a little margin for being a noob and also that my other device "d855" does not need extract-files.sh before breakfast.
Also what confused me yesterday was, that the paths contained oppo when infact I was building for bacon. I was sure something is wrong upstream.
My sincere apologies again for starting on xda with such a useless post.
Hello everyone, this is my first post on XDA Forums. I'm trying to build LineageOS 16.0 for a Samsung Galaxy W (GT-I8150), but I'm running into some trouble. I'm following this guide since It's the only good guide I found, but when I run breakfast GT-I8150 as the guide says, it throws build/make/core/product_config.mk:234: error: Can not locate config makefile for product "GT". since this device wasn't and isn't supported by LineageOS, so the repos aren't available wherever it's looking for. They are available elsewhere, but not in the official repos, so it can't find the stuff it needs. For this reason, I need to make breakfast search elsewhere. I already have the links needed, I just don't know how to let breakfast look in those repos.
Device I'm building for: Samsung Galaxy W (GT-I8150)
OS I'm using for the build: Ubuntu Desktop 20.04.4 LTS
CPU architecture: x86_64
This is the complete output of breakfast GT-I8150:
Code:
build/make/core/product_config.mk:234: error: Can not locate config makefile for product "GT".
13:18:45 dumpvars failed with: exit status 1
Device GT not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for GT not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/make/core/product_config.mk:234: error: Can not locate config makefile for product "GT".
13:18:46 dumpvars failed with: exit status 1
build/make/core/product_config.mk:234: error: Can not locate config makefile for product "GT".
13:18:47 dumpvars failed with: exit status 1
** Don't have a product spec for: 'GT'
** Do you have the right repo manifest?
I also don't have a roomservice.xml file so I can't modify that either. If anyone has a better guide for building LineageOS 16 then please post it.