T527 device/softwinner项目和longan/device项目的对应关系

在T527项目开发中,遇到编译错误,通过分析发现androiddevicesoftwinnersaturn目录下的PRODUCT_BOARD值需对应longan的编译路径。解决方法是设置LICHEE_BOARD环境变量,并在device-common.mk中将其赋值给PRODUCT_BOARD,实现自动对应。

原文链接:https://blog.youkuaiyun.com/qq503393230/article/details/134932184

前言

在开发T527项目的时候,我们在android\device\softwinner\saturn下创建了自己的device目录以及在android\longan\device\config\chips\t527\configs下创建了自己的底层配置目录,如:android\longan\device\config\chips\t527\configs\xxx_lvds,但是会发现编译的时候会有如下报错:

FAILED: ninja: 'longan/out/t527/XXX/android/bImage', needed by 'out/target/product/t527-xxxx/kernel', missing and no known rule to make it
分析

根据log提示“longan/out/t527/XXXX/android/bImage”,我们找到这个路径是位于android\device\softwinner\saturn\下的项目目录下的,如项目名称为t527-demo,则项目目录下的device-common.mk有如下配置:

TARGET_BOARD_IC := t527
PRODUCT_BRAND := Allwinner
PRODUCT_BOARD := demo
PRODUCT_MODEL := T527 DEMO
PRODUCT_MANUFACTURER := Allwinner
 
PRODUCT_PREBUILT_PATH := longan/out/$(TARGET_BOARD_IC)/$(PRODUCT_BOARD)/android
PRODUCT_DEVICE_PATH := $(PRODUCT_PLATFORM_PATH)/$(PRODUCT_DEVICE)
 
CONFIG_SUPPORT_GMS := false
 
 
PRODUCT_COPY_FILES += $(PRODUCT_PREBUILT_PATH)/bImage:kernel
PRODUCT_HAS_UVC_CAMERA := true
USE_CAMERA_HAL_3_4 := true
# AI

log中的那个路径是跟PRODUCT_COPY_FILES += $(PRODUCT_PREBUILT_PATH)/bImage:kernel这句相关联的。

PRODUCT_PREBUILT_PATH的值是longan/out/$(TARGET_BOARD_IC)/$(PRODUCT_BOARD)/android决定的。

PRODUCT_BOARD的值是demo。

终上所述,android\device\softwinner\saturn\项目目录下的PRODUCT_BOARD值对应了项目编译时longan的编译生成路径。而longan的编译生成路径又是对应了android\longan\device\config\chips\t527\configs\下的项目名。

即如果longan项目路径为android\longan\device\config\chips\t527\configs\demo_car,那么longan的编译生成路径为:android\longan\out\t527\demo_car。那么要让android编译的时候能够正确对应到这个路径,PRODUCT_BOARD值就必须为demo_car。

自动对应方法

如果要让logan的项目名和PRODUCT_BOARD值自动对应起来,需要怎么办呢?查看编译的相关脚本后,我这边找到如下修改解决方法。

1.获取longan/.buildconfig的相关项目信息,然后在build/make/envsetup.sh中设置环境变量,我选择设置LICHEE_BOARD,这个值就是longan的编译项目名。

--- a/build/make/envsetup.sh
+++ b/build/make/envsetup.sh
@@ -696,7 +696,8 @@ function print_lunch_menu()
 function lunch()
 {
     local answer
-
+       set_lichee
+       
     if [[ $# -gt 1 ]]; then
         echo "usage: lunch [target]" >&2
         return 1
@@ -1835,9 +1836,16 @@ function mmma()
 
 function make()
 {
+       set_lichee
     _wrap_build $(get_make_command "$@") "$@"
 }
 
+function set_lichee()
+{
+       LONGAN_BUILD_CONFIG=$(pwd)/longan/.buildconfig
+       `sed -n '/LICHEE_BOARD=/p' $LONGAN_BUILD_CONFIG|tail -n 1|awk -F : '{print $1}'`
+}
+
 function provision()
 {
     if [ ! "$ANDROID_PRODUCT_OUT" ]; then

2.修改android\device\softwinner\saturn下的项目的device-common.mk文件,将LICHEE_BOARD赋值给PRODUCT_BOARD即可:

TARGET_BOARD_IC := t527
PRODUCT_BRAND := Allwinner
-PRODUCT_BOARD := demo
+PRODUCT_BOARD := $(LICHEE_BOARD)

这样修改后,就会在编译的时候自动将logan项目的路径对应起来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值