问题1 :fatal: Not a valid object name 264fbb8e70daadd2766da5e66abd4d815935a336:qtiquingvm8295/gbm
问题现象: 用bitbake -k 编译全部镜像,发现此类错误有30多个
ERROR: gbm-1.0+git-r2 do_unpack: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-3lYlyESKKq"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/scripts:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot-native/usr/bin/aarch64-oe-linux:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot/usr/bin/crossscripts:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot-native/usr/sbin:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot-native/usr/bin:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot-native/sbin:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/recipe-sysroot-native/bin:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/bitbake/bin:/home/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/hosttools"; export HOME="/home/user"; git -c core.fsyncobjectfiles=0 read-tree 264fbb8e70daadd2766da5e66abd4d815935a336:qtiquingvm8295/gbm failed with exit code 128, output:
fatal: Not a valid object name 264fbb8e70daadd2766da5e66abd4d815935a336:qtiquingvm8295/gbm
问题分析:使用bitbake -D -c do_fetch 单个package,发现执行的命令如下:
#do_fetch
LANG=C git -c core.fsyncobjectfiles=0 clone --bare --mirror "/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/prebuilt_HY11/.git" /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git --progress
git -c core.fsyncobjectfiles=0 log --pretty=oneline -n 1 8a3716030c674f59a2c4a0053be9ada932aa42fd -- 2> /dev/null | wc -l' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git
git -c core.fsyncobjectfiles=0 log --pretty=oneline -n 1 8a3716030c674f59a2c4a0053be9ada932aa42fd -- 2> /dev/null | wc -l' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git
git -c core.fsyncobjectfiles=0 grep lfs master:.gitattributes | wc -l' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git
tar -czf /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2_home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git.tar.gz .' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git
touch /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2_home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git.tar.gz.done
#do_unpack
git -c core.fsyncobjectfiles=0 log --pretty=oneline -n 1 8a3716030c674f59a2c4a0053be9ada932aa42fd -- 2> /dev/null | wc -l' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git
git -c core.fsyncobjectfiles=0 clone -s -n /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/downloads/git2/home.user.qualcomm_work.qcom_linux.sa8295p-hqx-1-0_hlos_dev_lv.lvgvm.apps_proc.prebuilt_HY11..git/ /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/gbm/
git -c core.fsyncobjectfiles=0 remote set-url origin "file:///home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/prebuilt_HY11/.git"' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/gbm/
git -c core.fsyncobjectfiles=0 grep lfs origin/master:.gitattributes | wc -l' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/gbm/
git -c core.fsyncobjectfiles=0 read-tree 8a3716030c674f59a2c4a0053be9ada932aa42fd:qtiquingvm8295/gbm' in /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/qtiquingvm8295-oe-linux/gbm/1.0+git-r2/gbm/
整个执行的过是以本地的文件为prebuilt_HY11仓库,这个目录下的.git是在
source build/conf/set_bb_env.sh时建立的,可以参考set_bb_env.sh中的
#init local git if it does not exist
function init_localgit() {
if [ -f "${WS}/localgit" ]
then
cat ${WS}/localgit | while read line
do
if [ -d "${WS}/$line" ]
then
cd ${WS}/$line
if [ ! -d ".git" ]
then
git init && git add . && git commit -m "Init new git project" >> /dev/null 2>&1
fi
fi
done
else
echo "Get init local git list"
touch ${WS}/localgit
cat ${WS}/release/for_p4 | while read line
do
if grep -q "\"$line\"" ${WS}/.repo/manifests/default.xml
then
strmeta="meta-qti"
if [[ $line != *$strmeta* ]]
then
echo $line >> ${WS}/localgit
fi
fi
done
echo "prebuilt_HY11" >> ${WS}/localgit
echo "prebuilt_HY22" >> ${WS}/localgit
sync
fi
}
尝试过一步步执行do_unpack中的命令,或删除.git,再编译单个包,都出现问题,最后发现对应的子目录qtiquingvm8295/也有.git,删除后编译即可
问题解决:删除prebuilt_HY11目录及子目录下的.git,在初始化设置环境变量时,让脚步自行设置
问题2 :Failed to load or import from ExtUtils::ParseXS (version 3.40).
问题现象:构建libxml-parser-perl-native-2.46-r0 do_compile
ERROR: libxml-parser-perl-native-2.46-r0 do_compile: oe_runmake failed
ERROR: libxml-parser-perl-native-2.46-r0 do_compile: Execution of '/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/temp/run.do_compile.32053' failed with exit code 1:
make[1]: Entering directory '/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/XML-Parser-2.46/Expat'
"/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Expat.bs ../blib/arch/auto/XML/Parser/Expat/Expat.bs 644
"/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/perl" "/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/ExtUtils/xsubpp" -noprototypes -typemap '/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/ExtUtils/typemap' -typemap '/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/XML-Parser-2.46/Expat/typemap' Expat.xs > Expat.xsc
*** Module name IN: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/x86_64-linux/Cwd.pm
*** p1: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/ p3: perl5/5.30.1/ p5: x86_64-linux/ p7: Cwd.pm
*** Module name OUT: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/x86_64-linux/Cwd.pm
*** Module name IN: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/x86_64-linux/re.pm
*** p1: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/ p3: perl5/5.30.1/ p5: x86_64-linux/ p7: re.pm
*** Module name OUT: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/x86_64-linux/re.pm
Failed to load or import from ExtUtils::ParseXS (version 3.40). Please check that ExtUtils::ParseXS is installed correctly and that the newest version will be found in your @INC path: Can't locate loadable object for module re in @INC (@INC contains: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/site_perl/5.30.1/x86_64-linux /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/site_perl/5.30.1 /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/vendor_perl/5.30.1 /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/x86_64-linux /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1 /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/site_perl/5.30.1/x86_64-linux /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/site_perl/5.30.1 /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/vendor_perl/5.30.1/x86_64-linux /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/vendor_perl/5.30.1 /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/x86_64-linux /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/perl-native/5.30.1-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1) at /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/ExtUtils/ParseXS.pm line 375.
Compilation failed in require at /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/ExtUtils/ParseXS.pm line 375.
BEGIN failed--compilation aborted at /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/bin/perl-native/../../../usr/lib/perl5/5.30.1/ExtUtils/ParseXS.pm line 375.
Compilation failed in require at /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/recipe-sysroot-native/usr/lib/perl5/5.30.1/ExtUtils/xsubpp line 6.
Makefile:338: recipe for target 'Expat.c' failed
make[1]: *** [Expat.c] Error 255
make[1]: Leaving directory '/home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/XML-Parser-2.46/Expat'
Makefile:538: recipe for target 'subdirs' failed
make: *** [subdirs] Error 2
WARNING: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/temp/run.do_compile.32053:1 exit 1 from 'exit 1'
ERROR: Logfile of failure stored in: /home/user/qualcomm_work/qcom_linux/sa8295p-hqx-1-0_hlos_dev_lv/lvgvm/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/libxml-parser-perl-native/2.46-r0/temp/log.do_compile.32053
问题分析:查看当前ExtUtils::ParseXS版本
$ perl -v | head -2 | tail -1
This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux
$ perl -MExtUtils::ParseXS -E 'say $ExtUtils::ParseXS::VERSION'
3.18
google下载最新的ExtUtils::ParseXS,
$ tar zxvf ExtUtils-ParseXS-3.44.tar.gz
$ cd ExtUtils-ParseXS-3.44
$ perl Makefile.PL
$ make
$ make test
发现不起作用,这个工具是包含在perl里的,下载安装perl-5.34.0.tar.gz后,再bitbake 成功
$ tar -xzf perl-5.x.y.tar.gz
$ cd perl-5.x.y
$ ./Configure -de
$ make
$ make test
$ make install
note:可能root用户和普通user使用的不是相同的perl
解决方案:
下载最新的超过ExtUtils::ParseXS (version 3.40)的perl,编译安装即可
问题3 : Retrying server connection…
问题分析:在bitbake整个项目的过程中使用 CTRL + C中断,再执行编译操作时 一直出现Retrying server connection…
问题解决:删除bitbake.lock