bitbake安装bitbucket安装

各位老铁们好,相信很多人对bitbake安装都不是特别的了解,因此呢,今天就来为大家分享下关于bitbake安装以及bitbucket安装的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

如何在虚拟机中运行 YOCTO LINUX 操作系统如何安装yoctoYocto编译杰发或MTK的linux或android时的几个问题python 比较好用的库有哪些如何在虚拟机中运行 YOCTO LINUX 操作系统本文将为大家介绍如何创建Yocto*的可运行映像,如何在基础软件模拟器QEMU中测试该映像,以及如何在管理程序(比如Windows上的MicrosoftHyper-V)中运行该映像。

操作本教程的前提条件

Debian/Ubuntu(已经过Debian8.2amd64的测试)互联网连接磁盘提供至少100GB可用空间

构建机器的前期准备工作

以根身份(或通过"sudo")运行以下命令

1#apt-getinstallwgetgit-coreunzipmakegccg++build-essentialsubversionsedautoconfautomaketexi2htmltexinfocoreutilsdiffstatpython-pysqlite2docbook-utilslibsdl1.2-devlibxml-parser-perllibgl1-mesa-devlibglu1-mesa-devxsltprocdesktop-file-utilschrpathgrofflibtoolxtermgawkfop

注1:上述命令是否成功运行取决于大家使用的Ubuntu/Debian版本。最后,如欲解决程序包的依赖关系,可以运行"aptitude",强行安装正确版本的程序包(比如,"aptitudeinstalllibsdl1.2-dev")。

注2:对于其他Linux-distribution来说,比如RadHat、CentOS、Fedora、SuSe、Gentoo等......建议通过正确的package-manager(例如zypper、yum等)检查上述程序包的相应版本。

第一步:设置工作文件夹

以没有特权的普通用户(没有根身份)

1#cd

2#mkdiryocto-2.0

3#cdyocto-2.0

4#wgethttp://downloads.yoctoproject.org/releases/yocto/yocto-2.0/poky-jethro-14.0.0.tar.bz2

5#tarxvjfpoky-jethro-14.0.0.tar.bz2

6#cdpoky-jethro-14.0.0/

注3:可以点击以下链接https://www.yoctoproject.org/downloads,选择Yocto版本的其他开发分支。本教程将使用当前最新版本"JoctoPoky2.0.14.0.0codenameJethro"。

注4:如欲获取最新版Yocto资源,可以获得主开发分支,需要将wget操作替换为以下内容:

1#gitclonegit://git.yoctoproject.org/poky.git

2#cdpoky

注5:还可以通过代号选择特定的开发分支。例如:

1#gitclone-bjethrogit://git.yoctoproject.org/poky.git

第二步:设置系统shell的环境变量

Yocto开发人员提供了一个非常易用的脚本。

1#../oe-init-build-env

脚本运行后,如果正常,您的位置将变成一个构建子目录,它将成为您的新工作区。类似于/home/<youruser>/yocto-2.0/poky-jethro-14.0.0/build/。

第三步:设置bitbake

执行之前的脚本,会创建一个conf/local.conf文件。

该配置文件需要设置Yocto的构建引擎bitbake(Yocto项目的核心组件)。

采用首选文本编辑器编辑bitbake配置文件。本教程将使用nano—面向类似Unix的环境的简单命令-行-界面文本编辑器,如下所示:

1#cdconf/

2#nanolocal.conf

取消下列行的注释

1DL_DIR?="${TOPDIR}/downloads"

2SSTATE_DIR?="${TOPDIR}/sstate-cache"

3TMPDIR?="${TOPDIR}/tmp"

4SDKMACHINE?="i686"

建议为该映像构建所有其他的可用特性。最终的映像将特别大(每个大约8GB),但绝对完整,可满足所有开发需求。

1EXTRA_IMAGE_FEATURES="dbg-pkgsdev-pkgsptest-pkgstools-sdktools-debugeclipse-debugtools-profiletools-testappsdebug-tweaks"

现在,通过CTRL+X键组合保存对文件local.conf作出的所有更改。

然后:

1#cd..

2#hob

现在,Hob实例(面向BitBake、基于GTK2的图形用户界面)将启动,检查构建系统的准确程度。

现在在下拉菜单中选择qemux86机器。

等Hob完成BitBake方案解析并生成依赖关系树。然后选择目标映像,以从上述菜单的"selectanimagerecipe"开始构建。在本示例中,我们选择不包含GUI的完整核心映像:core-image-full-cmdline。

现在点击"AdvancedConfiguration"。

如欲构建最新的稳定版,在"Imagetypes"面板中保留"Distro"菜单中的poky。然后在"Imagetypes"字段中选择所需的格式:通常我选择".iso"、".vdi"和".vmdk",它们最好用。

请在"Output"面板中选择能够满足要求的最佳选项。建议为映像增加4GB可用存储,以放置面向i686架构的SDK(如果您使用Edison开发板)。另外,我认为将"deb"设置为面向根文件系统的打包格式非常有用。因此,如下所示:

好的,保存。现在,您已准备好构建映像!点击"Buildimage"按钮!

Hob将启动bitbakecore-image-full-cmdline示例,以及您钟爱的设置。

注7:这一流程将花费很长时间构建最终映像。不过,根据您主机功能的不同,可以更改用于在"BitBakeparallelthreads"和"Makeparallelthreads"上执行构建操作的处理器内核的数量。可从Hobsettings窗口更改这些变量:

注8:您可以借助Hob确定将要构建的映像包含哪些包。为此,可以在开始构建映像之前选择"Editimagerecipe"。

如何安装yocto1.Yocto简介:

Yocto是一个开源社区,它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM,PPC,MIPS,x86(32&64bit)硬件体系架构。

2.Yocto定制准备工作

(1)确保电脑能联网,并且有100G的空闲,电脑配置不低于4核

(2)获取yocto脚本:$gitclonegit://git.yoctoproject.org/poky

(3)获取硬件相关层:$gitclonegit://git.yoctoproject.org/meta-intel.git

(4)关于yocto的帮助:http://www.yoctoproject.org/documentation

3.开始搭建环境

(1)$sourcepoky/oe-init-build-envxxx

xxx$cdconf

xxx/conf$vimbblayers.conf

#LAYER_CONF_VERSIONisincreasedeachtimebuild/conf/bblayers.conf

#changesincompatibly

LCONF_VERSION="4"

BBFILES?=""

BBLAYERS?="\

/hda5/hmi/x86/yocto/poky/meta\

/hda5/hmi/x86/yocto/poky/meta-yocto\

/hda5/hmi/x86/yocto/poky/meta-intel\

/hda5/hmi/x86/yocto/poky/meta-intel/meta-crownbay\

(2)修改local.conf

xxx/conf$vimlocal.conf

#MACHINE??="qemux86"

MACHINE??="crownbay"

4.开始编译

注:(官方下载的只是脚本,yocto一边下载一边编译所以很慢而且还受资源下载限制和电脑配置,下载的文件在工作目录中的downloads中,第一次下载后保存好downloads以后就方便了)

(1)配置内核

xxx$bitbakelinux_yocto-cmenuconfig

(2)定制微型yocto

xxx$bitbakecore-image-minimal

(3)定制桌面型yocto

xxx$bitbakecoure-image-sato

(4)hobconfig

xxx$hob

可以在图形化界面中方便的定制系统。

Yocto编译杰发或MTK的linux或android时的几个问题编译问题1(audiomanager_7.0.bb的do_configure报错):

错误:CMakeErroratPlugins/PluginCommandInterfaceCAPI/cmake/CommonAPI.cmake:352(message):

   FailedtogeneratefilesfromFIDL:

手动执行一下:

$commonapi-generator-linux-x86-llverbose-skDefault-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:badELFinterpreter:Nosuchfileordirectory

解决(需要安装32位的glibc库和32位java jre环境):

$sudoyuminstallglibc.i686

$sudoyuminstalljava-1.8.0-openjdk.i686

$sudoln-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:objcopyfailedwithexitcode256(cmdwas‘arm-poky-linux-gnueabi-objcopy’–only-keep-debug

…generate_uudmap:Fileformatnotrecognized

解决(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/–excludemail.test–excludedelete.test|(cd${D}${PTEST_PATH}&&tar-xf–)

修改成:

        tar-c–exclude=\*.inbin/|(cd${D}${PTEST_PATH}&&tar-xf–)

        tar-c–exclude=\*.incompat/|(cd${D}${PTEST_PATH}&&tar-xf–)

        tar-c–exclude=\*.inquilt/|(cd${D}${PTEST_PATH}&&tar-xf–)

        tar-c–exclude=mail.test–exclude=delete.testtest/|(cd${D}${PTEST_PATH}&&tar-xf–&&chmod777test)

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/–excludenfs|(cd${D}${PTEST_PATH}&&tar-xf–)

修改成:

tar-c–exclude=nfstest/|(cd${D}${PTEST_PATH}&&tar-xf–)

sources/meta/poky/meta/recipes-support/attr/attr.inc

tar-cf–test/–excludeext|(cd${D}${PTEST_PATH}&&tar-xf–)

修改成:

tar-c–exclude=exttest/|(cd${D}${PTEST_PATH}&&tar-xf–)

sources/meta/poky/meta/recipes-devtools/perl/perl-ptest.inc

    tar-cf–*–exclude\*.o–excludelibperl.so–excludeMakefile–excludemakefile–excludehostperl\

        –excludeminiperl–excludegenerate_uudmap–excludepatches|(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:Commandnotfound

解决:

$sudoyuminstalltexlive-tetex

$sudorpm-ivh~/latex2man-1.18-2.noarch.rpm

编译问题3(qt5-app_1.0.bb的do_compile报错):

错误(有一批类似的错误):ld:cannotfind-lgtest

解决:

$viatc_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

}

$viatc_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

}

$viatc_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

}

$viatc_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:line169:mkisofs:commandnotfound

解决:$sudoyuminstallmkisofs

编译问题5(修改ac83xx_systemd_defconfig再编译时报错):

报错:Applyingpatchremove-selinux-android.patch

patchingfilesystem/extras/ext4_utils/make_ext4fs.c

Hunk#1FAILEDat62.

1outof1hunkFAILED—rejectsinfilesystem/extras/ext4_utils/make_ext4fs.c

解决:

$visources/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:internalcompilererror:inadd_stores,atvar-tracking.c:6000

解决:

$cdsources/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

$visources/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

Fromb30ffb8097749fdb55704aa7d8307ca1a58255d6MonSep1700:00:002001

From:=?UTF-8?q?Stefan=20M=C3=BCller-Klieser?=<s.mueller-klieser@phytec.de>

Date:Tue,7Apr201516:15:11+0200

Subject:[PATCH]gcc/var-tracking.c:backportfromgcctrunkr212178

MIME-Version:1.0

Content-Type:text/plain;charset=UTF-8

Content-Transfer-Encoding:8bit

resolvesabugseenoncortexa8buildingqt5libraries.

2014-06-30 JosephMyers <joseph@codesourcery.com>

  *var-tracking.c(add_stores):Returninsteadofassertingifold

  andnewvaluesforconditionalstorearethesame.

git-svn-id:svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178138bc75d-0d04-0410-961f-82ee72b054a4

Signed-off-by:StefanMüller-Klieser<s.mueller-klieser@phytec.de>

---

gcc/var-tracking.c|3++-

1filechanged,2insertions(+),1deletion(-)

diff--gita/gcc/var-tracking.cb/gcc/var-tracking.c

index65d8285..7c38910100644

---a/gcc/var-tracking.c

+++b/gcc/var-tracking.c

@@-5997,7+5997,8@@add_stores(rtxloc,const_rtxexpr,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:fatalerror:check.h:Nosuchfileordirectory

解决:

$vimeta/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:Commandnotfound

解决:

$viatc_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

#ifndefNULL

   #defineNULL0

#endif

python 比较好用的库有哪些Python常用库大全,看看有没有你需要的。

环境管理

管理Python版本和环境的工具

p–非常简单的交互式python版本管理工具。

pyenv–简单的Python版本管理工具。

Vex–可以在虚拟环境中执行命令。

virtualenv–创建独立Python环境的工具。

virtualenvwrapper-virtualenv的一组扩展。

包管理

管理包和依赖的工具。

pip–Python包和依赖关系管理工具。

pip-tools–保证Python包依赖关系更新的一组工具。

conda–跨平台,Python二进制包管理工具。

Curdling–管理Python包的命令行工具。

wheel–Python分发的新标准,意在取代eggs。

包仓库

本地PyPI仓库服务和代理。

warehouse–下一代PyPI。

Warehousebandersnatch–PyPA提供的PyPI镜像工具。

devpi–PyPI服务和打包/测试/分发工具。

localshop–本地PyPI服务(自定义包并且自动对PyPI镜像)。

分发

打包为可执行文件以便分发。

PyInstaller–将Python程序转换成独立的执行文件(跨平台)。

dh-virtualenv–构建并将virtualenv虚拟环境作为一个Debian包来发布。

Nuitka–将脚本、模块、包编译成可执行文件或扩展模块。

py2app–将Python脚本变为独立软件包(MacOSX)。

py2exe–将Python脚本变为独立软件包(Windows)。

pynsist–一个用来创建Windows安装程序的工具,可以在安装程序中打包Python本身。

构建工具

将源码编译成软件。

buildout–一个构建系统,从多个组件来创建,组装和部署应用。

BitBake–针对嵌入式Linux的类似make的构建工具。

fabricate–对任何语言自动找到依赖关系的构建工具。

PlatformIO–多平台命令行构建工具。

PyBuilder–纯Python实现的持续化构建工具。

SCons–软件构建工具。

交互式解析器

交互式Python解析器。

IPython–功能丰富的工具,非常有效的使用交互式Python。

bpython-界面丰富的Python解析器。

ptpython–高级交互式Python解析器,构建于python-prompt-toolkit之上。

文件

文件管理和MIME(多用途的网际邮件扩充协议)类型检测。

imghdr–(Python标准库)检测图片类型。

mimetypes–(Python标准库)将文件名映射为MIME类型。

path.py–对os.path进行封装的模块。

pathlib–(Python3.4+标准库)跨平台的、面向对象的路径操作库。

python-magic-文件类型检测的第三方库libmagic的Python接口。

Unipath-用面向对象的方式操作文件和目录

watchdog–管理文件系统事件的API和shell工具

日期和时间

操作日期和时间的类库。

arrow-更好的Python日期时间操作类库。

Chronyk–Python3的类库,用于解析手写格式的时间和日期。

dateutil–Pythondatetime模块的扩展。

delorean-解决Python中有关日期处理的棘手问题的库。

moment–一个用来处理时间和日期的Python库。灵感来自于Moment.js。

PyTime–一个简单易用的Python模块,用于通过字符串来操作日期/时间。

pytz–现代以及历史版本的世界时区定义。将时区数据库引入Python。

when.py–提供用户友好的函数来帮助用户进行常用的日期和时间操作。

文本处理

用于解析和操作文本的库。

通用

chardet–字符编码检测器,兼容Python2和Python3。

difflib–(Python标准库)帮助我们进行差异化比较。

ftfy–让Unicode文本更完整更连贯。

fuzzywuzzy–模糊字符串匹配。

Levenshtein–快速计算编辑距离以及字符串的相似度。

pangu.py–在中日韩语字符和数字字母之间添加空格。

pyfiglet-figlet的Python实现。

shortuuid–一个生成器库,用以生成简洁的,明白的,URL安全的UUID。

unidecode–Unicode文本的ASCII转换形式。

uniout–打印可读的字符,而不是转义的字符串。

xpinyin–一个用于把汉字转换为拼音的库。

关于bitbake安装,bitbucket安装的介绍到此结束,希望对大家有所帮助。

虚拟货币

预复试是什么意思

基金营销拓展

本文地址:http://www.cj8845.cn/13416.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。

上一篇: bitaway中文解释是什么
下一篇: bitbaseappbitbaseapp下载