yocto相关class总结

2016-08-26 14:31:15来源:oschina作者:linuxhunter人点击

1. allarch.bbclass


该class用在架构无关的镜像上。通常的recipes只要继承base和package类就可以完成基本的工作,继承allarch类的recipe主要是只包含配置文件、媒体文件以及脚本文件等。


2. archiver.bbclass


该class支持以源代码的方式发布。


3. autotools*.bbclass


该class簇支持使用autotool工具进行编译的软件包。使用autotool类编译包括了对autoconf/automake/libtool的标准使用。通常情况下,autotools*簇针对out-of-tree builds,即:B!=S。若想使用B==S的则需要使用autotools-brokensep类。


do_configure:通过autoconf工具产生configure脚本,通常情况下使用变量EXTRA_OECONF来传递额外的参数;


do_compile:通过执行make命令来实现编译和链接,通常情况下使用变量EXTRA_OEMAKE来传递额外的参数;


do_install:通过执行make install命令将编译好的文件安装到${D}指定的目录中,通常设置DESTDIR=${D};


4. base.bbclass


该class是yocto最基本的类,所有的recipes都直接或间接的继承该类。在base类中定义了标准的yocto执行流程,当然继承了base类的recipes可以重载或重构base类中定义的方法。


5. bash-completion.bbclass


该class在recipes的基础上多了一个bash-completion的包以及定义了bash-completion包中的内容;


6. bin_package.bbclass


该class从二进制包中直接读取二进制文件后将其打包输出而不需要经过源代码编译过程;


7. binconfig.bbclass


该class用于正确设置package和sysroot的目录结构。目前大都采用pkg-config方式了;


8. binconfig-disabled.bbclass


该class不采用binconfig方式;


9. blacklist.bbclass


该class用于设置recipes黑名单,也就是说编译系统不去编译某些recipes。通常的用法是在local.conf中添加如下内容:


INHERIT += “blacklist”


PNBLACKLIST[recipes_name] = “No Support by our organization”


在local.conf中添加继承blacklist的声明,之后在PNBLACKLIST变量中添加以recipes_name为varflags的声明;


10. bluetooth.bbclass


该class为recipes或packages提供蓝牙支持;


11. bugzilla.bbclass


该class自动的将编译的错误上报到bugzilla中;


12. buildhistory.bbclass


该class记录编译输出的metadata历史数据;


13. buildstats.bbclass


该class纪录每一个任务执行的性能统计,统计的结果输出到${TMPDIR}/buildstats目录中;


buildstats类默认在local.conf配置文件中的USER_CLASSES变量中指定;


14. ccache.bbclass


该class用来加速C/C++的编译速度,但是效果不明显,因此不推荐使用该类;


15. chrpath.bbclass


该class是对chrpath命令的包装,该类主要用在nativesdk,cross,cross-canadian这些recipes中用来修改RPATH变量;


16. clutter.bbclass


该class用major和minor版本以及其它的items来获取源代码;


17. cmake.bbclass


该class用在使用cmake进行编译的recipes中。通常使用EXTRA_OECMAKE变量向cmake命令行添加配置选项;


18. cml1.bbclass


该class提供类似linux内核的编译配置系统;


19. compress_doc.bbclass


该class用于压缩man pages和info pages,默认的压缩格式是gzip。可以通过DOC_COMPRESS变量来指定其它压缩格式;


20. core-image.bbclass


该class针对core-image-*镜像recipes的通用变量定义,比如:IMAGE_FEATURES等;


21. cpan*.bbclass


该class簇主要是针对Perl模块的编译。对于使用Makefile.PL的则需要使用cpan.bbclass,对于使用Build.PL的则需要使用cpan_build.bbclass。这两个bbclass都是继承于cpan-base类;


22. cross.bbclass


该class用于编译交叉编译链;


23. cross-canadian.bbclass


该class用于编译Canadian交叉编译链;


24. crsssdk.bbclass


该class用于编译交叉编译链且该链用于编译SDK;


25. debian.bbclass


该class用于输出debian标准的包名称;


26. deploy.bbclass


该class用于部署文件到DEPLOY_DIR_IMAGE目录中。继承该类的recipes需要手动编写do_deploy()函数来复制文件到DEPLOYDIR目录,之后使用addtask命令将do_deploy()函数添加到do_compile或do_install之后。该类主要负责从DEPLOYDIR到DEPLOY_DIR_IMAGE的文件复制过程。


27. distro_features_check.bbclass


该class允许recipes检查DISTRO_FEATURES变量的合法性。该class中提供REQUIRED_DISTRO_FEATURES和CONFLICT_DISTRO_FEATURES变量来支持对DISTRO_FEATURES的检查;


28. distrodata.bbclass


该class提供自动检查recipe的更新。该类提供do_distrodata和do_distro_check任务用于检查和验证。默认系统不包含该类,若使用该类则调用INHERIT += “distrodata”即可;


29. distuils*.bbclass


该class提供python2的扩展;


30. disutils3*.bbclass


该class提供python3的扩展;


31. externalsrc.bbclass


该class提供OE编译系统外的源代码编译工作。在OE编译系统中默认使用S和B变量来分别保存unpack和build目录,而对于继承externalsrc类的recipes来说,需要使用EXTERNALSRC和EXTERNALSRC_BUILD变量来代替S和B;


32. extrausers.bbclass


该class用来配置用户和组的相关信息。继承了extrausers类的recipes需要使用变量EXTRA_USER_PARAMS变量来设置用户和组。比如:


inherit extrausers


EXTRA_USERS_PARAMS = "/


useradd -p '' tester; /


groupadd developers; /


userdel nobody; /


groupdel -g video; /


groupmod -g 1020 developers; /


usermod -s /bin/sh tester; /


"


33. fontcache.bbclass


该class用来生成合适的post-install或post-remove字体相关的脚本,比如:在脚本中执行fc-cache等命令;


34. fs-uuid.bbclass


该class用来从${ROOTFS}中提取UUID。该类只能用在ext文件系统下且依赖tune2fs;


35. gconf.bbclass


该class用来提供安装GConf的通用函数。


36. gettext.bbclass


该class用来提供GNU gettext支持的国际化本地化处理;


37. gnome.bbclass


该class用于编译GNOME相关软件;


38. grub-efi.bbclass


该class用于提供grub-efi规范函数来编译可启动的镜像;


39. gsettings.bbclass


该class用于提供安装GSettings的通用函数;


40. gtk*.bbclass


该class簇用于gtk相关任务的开发;


41. icecc.bbclass


该class用来支持使用Icecream编译系统的软件;


42. image.bbclass


该class用来支持创建不同格式的镜像。通常使用IMAGE_FSTYPES变量指定镜像的类型,使用IMAGE_INSTALL变量来指定安装到镜像中的packages;


43. image_types.bbclass


该class用来指出支持的所有镜像类型,这些类型值可以出现在IMAGE_FSTYPES变量中;


44. image_types_uboot.bbclass


该class指出uboot的类型;


45. image-live.bbclass


该class支持编译live类型的镜像;


46. image-mklibs.bbclass


该class支持在do_rootfs任务中使用mklibs工具对镜像中所有的库大小进行优化。通常做法是在local.conf文件中将image-mklibs添加到USER_CLASSES变量中,即:USER_CLASSES ?= “buildstats image-mklibs image-prelink”;


47. image-prelink.bbclass


该class支持在do_rootfs任务中使用prelink工具优化动态链接库。通常做法是在local.conf文件中将image-mklibs添加到USER_CLASSES变量中,即:USER_CLASSES ?= “buildstats image-mklibs image-prelink”;


48. insane.bbclass


该class用来提供在OE整个运行过程中对各个步骤的输出进行的相关检查。通常通过WARN_QA和ERROR_QA变量来控制检查的行为和粒度,使用变量INSANE_SKIP来禁止某些检查动作;


49. insserv.bbclass


该class使用insserv工具来更新/etc/rc?.d/中的符号链接;


50. kernel*.bbclass


该class用来处理linux内核及其内核模块;


51. lib_package.bbclass


该class支持编译库和可执行文件,但是这些可执行文件默认是不安装的。使用该类将可执行文件打包到${PN}-bin包中;


52. libc*.bbclass


该class支持recipes使用libc编译包;


53. license.bbclass


该class提供license清单的创建和排除。通常该类默认在INHERIT_DISTRO变量中;


54. linux-kernel-base.bbclass


该class提供编译linux内核的基本函数;


55. linuxloader.bbclass


该class为动态loader/linker提供值;


56. logging.bbclass


该class提供log信息;


57. meta.bbclass


该class作为meta target来编译其它recipes;


58. metadata_scm.bbclass


该class提供函数来查询SCM配置库;


59. mime.bbclass


该class提供对MIME类型文件的支持;


60. mirrors.bbclass


该class设置MIRRORS变量作为SRC_URI的备份;


61. module.bbclass


该class提供编译linux内核模块的相关函数;


62. multilib*.bbclass


该class提供编译multilib的相关函数;


63. native.bbclass


该class提供编译后在build host上执行的通用函数。使用native类有如下两种方式:


使用myrecipe-native.bb方式,则需要使用inherit native且该语句在所有inherit语句的最后;


使用BBCLASSEXTEND = “native”方式


64. nativesdk.bbclass


该class用于编译后在SDK上执行的通用函数。使用nativesdk类有如下两种方式:


使用myrecipe-nativesdk.bb方式,则需要使用inherit native且该语句在所有inherit语句的最后;


使用BBCLASSEXTEND = “nativesdk”方式


65. nopackages.bbclass


该class禁用打包功能;


66. npm.bbclass


该class支持编译Node.js软件;


67. own-mirrors.bbclass


该class使得下载源代码包优先于SRC_URI。使用该类的recipes如下:


INHERIT += "own-mirrors"


SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"


68. package.bbclass


该class用来从编译的输出文件中生成包。用户可以在local.conf配置文件中通过设置PACKAGE_CLASSES = “package_rpm“来指定输出rpm类型的包。通常IPK类型的包适用于小型系统;


69. packagedata.bbclass


该class提供通用的函数来读取PKGDATA_DIR中的pkgdata文件。这些文件包含了OE编译系统输出包的所有信息;


70. packagegroup.bbclass


该class提供PACKAGES,PACKAGE_ARCH以及ALLOW_EMPTY等变量的默认值;


71. patch.bbclass


该class提供do_patch任务中的所有函数;


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台