Yocto编译杰发或MTK的linux或android时的几个问题
作者&投稿:韦桂 (若有异议请与网页底部的电邮联系)
错误:CMake Error at Plugins/PluginCommandInterfaceCAPI/cmake/CommonAPI.cmake:352 (message):
| Failed to generate files from FIDL:
手动执行一下:
$ commonapi-generator-linux-x86 -ll verbose -sk Default -d . /data/linux/hz_rs28_bm/sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/audiomanager/7.0-r1/audiomanager-7.0/Plugins/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl
-bash: /data/linux/hz_rs28_bm/sources/src/build/tools/commonapi_tool/commonapi-generator/commonapi-generator-linux-x86: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
解决(需要安装32位的glibc库和32位java jre环境):
$ sudo yum install glibc.i686
$ sudo yum install java-1.8.0-openjdk.i686
$ sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.i386/jre/bin/java /bin/java
$ java -version (保证是32位的java)
编译问题2(perl_5.20.0.bb的do_package报错):
错误:ERROR: objcopy failed with exit code 256 (cmd was ‘arm-poky-linux-gnueabi-objcopy’ –only-keep-debug
… generate_uudmap: File format not recognized
解决(tar在1.29版本之后需要exclude在路径的前面):
sources/meta/poky/bitbake/lib/bb/fetch2/bzr.py
tar_flags = “–exclude ‘.bzr’ –exclude ‘.bzrtags'”
修改成:
tar_flags = “–exclude=’.bzr’ –exclude=’.bzrtags'”
sources/meta/poky/bitbake/lib/bb/fetch2/cvs.py
tar_flags = “–exclude ‘CVS'”
修改成:
tar_flags = “–exclude=’CVS'”
sources/meta/poky/bitbake/lib/bb/fetch2/repo.py
tar_flags = “–exclude ‘.repo’ –exclude ‘.git'”
修改成:
tar_flags = “–exclude=’.repo’ –exclude=’.git'”
sources/meta/poky/bitbake/lib/bb/fetch2/svn.py
tar_flags = “–exclude ‘.svn'”
修改成:
tar_flags = “–exclude=’.svn'”
sources/meta/poky/meta/recipes-devtools/quilt/quilt-0.63.inc
tar -cf – bin/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -cf – compat/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -cf – quilt/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -cf – test/ –exclude mail.test –exclude delete.test | ( cd ${D}${PTEST_PATH} && tar -xf – )
修改成:
tar -c –exclude=\*.in bin/ | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -c –exclude=\*.in compat/ | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -c –exclude=\*.in quilt/ | ( cd ${D}${PTEST_PATH} && tar -xf – )
tar -c –exclude=mail.test –exclude=delete.test test/ | ( cd ${D}${PTEST_PATH} && tar -xf – && chmod 777 test)
sources/meta/poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
+ cd $(BUILDDIR); tar -cf – $(TESTDIR) –exclude *.o | ( cd $(DESTDIR) && tar -xf – )
修改成:
+ cd $(BUILDDIR); tar -c –exclude=*.o $(TESTDIR) | ( cd $(DESTDIR) && tar -xf – )
sources/meta/poky/meta/recipes-support/attr/acl.inc
tar -cf – test/ –exclude nfs | ( cd ${D}${PTEST_PATH} && tar -xf – )
修改成:
tar -c –exclude=nfs test/ | ( cd ${D}${PTEST_PATH} && tar -xf – )
sources/meta/poky/meta/recipes-support/attr/attr.inc
tar -cf – test/ –exclude ext | ( cd ${D}${PTEST_PATH} && tar -xf – )
修改成:
tar -c –exclude=ext test/ | ( cd ${D}${PTEST_PATH} && tar -xf – )
sources/meta/poky/meta/recipes-devtools/perl/perl-ptest.inc
tar -cf – * –exclude \*.o –exclude libperl.so –exclude Makefile –exclude makefile –exclude hostperl \
–exclude miniperl –exclude generate_uudmap –exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf – )
修改成:
tar -c –exclude=\*.o –exclude=libperl.so –exclude=Makefile –exclude=makefile –exclude=hostperl \
–exclude=miniperl –exclude=generate_uudmap –exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x )
编译问题3(libunwind_1.1.bb的do_compile报错):
错误:make[1]: latex2man: Command not found
解决:
$ sudo yum install texlive-tetex
$ sudo rpm -ivh ~/latex2man-1.18-2.noarch.rpm
编译问题3(qt5-app_1.0.bb的do_compile报错):
错误(有一批类似的错误):ld: cannot find -lgtest
解决:
$ vi atc_linux/application/btate/btate.pro
equals(MY_BUILD_SYSTEM, atc) {
LIBS += -L $(DA_LIBDIR)/lib -lgtest -lpthread -lbluetoothclient -lglobalbus -lappobj -lapputils
} else {
LIBS += -L$(DA_TOP)/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/atc-binarys/1.0-r0/image/usr/lib -lgtest -lpthread -lbluetoothclient -l
globalbus -lappobj -lapputils
}
$ vi atc_linux/application/gps/gps_bin.pro
equals(MY_BUILD_SYSTEM, atc) {
LIBS += -L $(DA_LIBDIR)/lib -lapputils -lglobalbus -lappobj -lgps
} else {
LIBS += -L$(DA_TOP)/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gpsd/3.10-r0/gpsd-3.10/ -lapputils -lglobalbus -lappobj -lgps
}
$ vi atc_linux/application/dvr/dvr_bin.pro
equals(MY_BUILD_SYSTEM, atc) {
LIBS += -L${DA_TOP}/lib/lib/ -ldvr -ludev -lsurface_atc -lglobalbus -lappobj -lapputils -lstorage_atc -lgps
} else {
LIBS += -L${DA_TOP}/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gpsd/3.10-r0/gpsd-3.10/ -ldvr -ludev -lsurface_atc -lglobalbus –
lappobj -lapputils -lstorage_atc -lgps
}
$ vi atc_linux/application/dvr/dvr_bin.pro
INCLUDEPATH += ${DA_TOP}/kernel/kernel-3.18/drivers/ \
../common/ \
../utils/ \
../appobj/include/ \
../globalbus/include/ \
../appcommon/include/ \
../storage_atc/ \
../dvr/gps/ \
../gps/include/ \
../gps/includeex/ \
编译问题4(makall报错):
报错:./makall: line 169: mkisofs: command not found
解决:$ sudo yum install mkisofs
编译问题5(修改ac83xx_systemd_defconfig再编译时报错):
报错:Applying patch remove-selinux-android.patch
patching file system/extras/ext4_utils/make_ext4fs.c
Hunk #1 FAILED at 62.
1 out of 1 hunk FAILED — rejects in file system/extras/ext4_utils/make_ext4fs.c
解决:
$ vi sources/meta/meta-atc/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
在里面做个假的do_patch(),bitbake会优先使用本bb文件的do_patch()函数。
do_patch(){
}
编译问题6(修改ac83xx_systemd_defconfig再编译时报错):
报错:sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/qtbase/5.5.0+gitAUTOINC+c619d2daac-r0/git/src/corelib/tools/qregexp.cpp:3947:1: internal compiler error: in add_stores, at var-tracking.c:6000
解决:
$ cd sources/meta/poky/meta/recipes-devtools/gcc/gcc-4.9/
$ wget http://openlinux.windriver.com/overc/sources/core2_64/gcc-4.9.2-r0.1/0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch
$ vi sources/meta/poky/meta/recipes-devtools/gcc/gcc-4.9.inc
file://0058-gcc-r212171.patch \
file://0059-gcc-PR-rtl-optimization-63348.patch \
file://target-gcc-includedir.patch \
file://0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch \
其实就是这个文件:
$ cat 0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch
From b30ffb8097749fdb55704aa7d8307ca1a58255d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <s.mueller-klieser@phytec.de>
Date: Tue, 7 Apr 2015 16:15:11 +0200
Subject: [PATCH] gcc/var-tracking.c: backport from gcc trunk r212178
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
resolves a bug seen on cortexa8 building qt5 libraries.
2014-06-30 Joseph Myers <joseph@codesourcery.com>
* var-tracking.c (add_stores): Return instead of asserting if old
and new values for conditional store are the same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4
Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
---
gcc/var-tracking.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 65d8285..7c38910 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -5997,7 +5997,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip)
{
cselib_val *oval = cselib_lookup (oloc, GET_MODE (oloc), 0, VOIDmode);
- gcc_assert (oval != v);
+ if (oval == v)
+ return;
gcc_assert (REG_P (oloc) || MEM_P (oloc));
if (oval && !cselib_preserved_value_p (oval))
--
1.9.1
编译问题7(修改ac83xx_systemd_defconfig再编译时报错):
报错:libevdev/1.2.2-r0/libevdev-1.2.2/test/test-main.c:24:19: fatal error: check.h: No such file or directory
解决:
$ vi meta/poky/meta/recipes-support/libevdev/libevdev_1.2.2.bb
LIC_FILES_CHKSUM = “file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1″
DEPENDS += “libcheck”
SRC_URI = “ http://www.freedesktop.org/software/libevdev/ ${BP}.tar.xz”
编译问题8(修改ac83xx_systemd_defconfig再编译时报错):
报错:python报错: ‘do_rootfs’, lineno: 17, function
Exception: CalledProcessError: Command ‘[‘du’, ‘-ks’, …
解决: 没有实际问题,重新编译一次即可,可能是机器太忙导致超时,或者某个命令执行不成功。
编译问题9(preuboot编译工具问题):
报错:make: armv7a-mediatek451_001_vfp-linux-gnueabi-gcc: Command not found
解决:
$ vi atc_linux/bootloader/preuboot/Makefile
#CROSS_COMPILE :=armv7a-mediatek451_001_vfp-linux-gnueabi-
CROSS_COMPILE :=arm-poky-linux-gnueabi-
$ vi ../../atc_linux/bootloader/preuboot/driver/mmc/include/linux/list.h
#ifndef NULL
#define NULL 0
#endif
党厚鹿茸: 招南北东西杰才,绘我神州特色集古今中外精粹,写吾盛世新篇鸡豚之畜,毋失其时,可以致富矣梨桔之苗,广栽其圃,安得愁穷哉阳光普照园丁心坎春意暖雨露滋润桃李枝头蓓蕾红迎春接福,笑逐颜开庆合家团聚进喜添财,神怡心旷看举国欢...
沭阳县19298651337: 《魔杰座》 《我的电台》全部正确歌词 - ?
党厚鹿茸: 魔杰座 JaY ChOu 魔杰座 JVR 词/方文山 曲/JAY编曲/micel Lin Music... 放手 我的谁都惭愧迎着伏击艺术在超越 那手 那只手在勉强飞 他们却围着泊湖迭不过什么却又画上的季节 什么叫没超有音的光所有关于我的传说 全都不对全部是自写全部都...
沭阳县19298651337: 周杰伦新专辑魔杰座的全部歌词是? - ?
党厚鹿茸: ☆魔杰座 JVR☆ ☆词/方文山 曲/JAY编曲/micel Lin☆ 放手 我的谁都惭愧迎着伏击艺术在超越 那手 那只手在勉强飞 他们却围着泊湖迭不过什么却又画上的季节 什么叫没超有音的光所有关于我的传说 全都不对全部是自写全部都改写 最近你了解我...
沭阳县19298651337: 粤语不就是拼音跟普通话不同吗?那请你把拼音发给我 ?
党厚鹿茸: 所谓 粤语的拼音在应该是在香港的说法人家是用英语拼读出来的AH 亚AH 雅AU 区... 梁LIAO 廖LIEW 廖LIK 力LIK 历LIM 林LIM 廉LIM 濂LIN 连LIN 连LIN 莲LING 令LING 泠...
沭阳县19298651337: JAY的《魔杰座》的歌词、?
党厚鹿茸: ☆JaY ChOu☆ ☆AL/魔杰座 JVR☆ ☆词/方文山 曲/JAY编曲/micel Lin☆ ☆永爱杰伦☆支持正版☆ ☆Music... 放松 听过我的声音你多惭愧你说风气艺术在超越 那首 未知音速在也抢飞 他们只会的泊湖迭都是什么这有华夏的季节 什么叫做潮流赢得...
沭阳县19298651337: 豪杰春香中《希望你幸福》的歌词是韩语歌词不是发音,也希望能有汉语翻译?
党厚鹿茸: 《豪杰春香》——《希望你幸福》韩文歌词 그 눈속에서 너는 또 다른 곳을 보며 울었어 그러는 니가 너무 미워서 나도 따라울었어 그리워 난 니가 너무 찢기도록 나 아파도 나 죽어서도 내 사랑으로 더 행복하길 바래 아~아~아~아~~~~... 힘이 들어 ...
沭阳县19298651337: 寻找周杰伦《魔杰座》歌词,谢谢、、?
党厚鹿茸: 很不错的 ☆魔杰座 JaY ChOu☆ ☆魔杰座 JVR☆ ☆词/方文山 曲/JAY编曲/micel Lin☆ ☆Music... 放手 我的谁都惭愧迎着伏击艺术在超越 那手 那只手在勉强飞 他们却围着泊湖迭不过什么却又画上的季节 什么叫没超有音的光所有关于我的传说 全...
沭阳县19298651337: 周杰伦最新单曲《稻香》什么时候公开发行的?以及这首歌的详细资料?词曲作者??
党厚鹿茸: 稻香的试听版 ☆稻香 JaY ChOu☆ ☆摩杰座 JVR☆ ☆词曲/JAY 编曲/micel Lin☆ ☆永爱杰伦☆支持正版☆ www.51lrc.com☆lizaixing制 ☆Music.☆. 对这个世界如果你有太多的抱怨 跌倒了就不敢继续往前走 为什么人要这么的脆弱 堕落 请你打...
沭阳县19298651337: 周杰伦 《魔杰座》中的歌词 - ?
党厚鹿茸: 给我一首歌的时间》 ☆曲/JAY 编曲/micel Lin☆ 雨停下的天空 灰的更加老旧 你说你不懂为何在这世界上 我晒干了承诺 灰的更冲动 就算这次做错也只是怕错过 在一起吵 分开了错 是不是说没有做完的梦最错 雨落的好 我能承受 在最后的出口 再爱...
沭阳县19298651337: 谁能把周杰伦的《魔杰座》的歌词给我写下来??
党厚鹿茸: ☆魔杰座 JaY ChOu☆ ☆魔杰座 JVR☆ ☆词/方文山 曲/JAY编曲/micel Lin☆ 放手 我的谁都惭愧迎着伏击艺术在超越 那手 那只手在勉强飞 他们却围着泊湖迭不过什么却又画上的季节 什么叫没超有音的光所有关于我的传说 全都不对全部是自写全...