《2022年2022年开放嵌入式Linux系统开发指南 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年开放嵌入式Linux系统开发指南 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、开放嵌入式(OE Linux)Linux系统开发指南(下)在本文中,德州仪器(TI)Nick Lethaby 和 Denys Dmytriyenko概括介绍了开放嵌入式(OE,Open Embedded)Linux构建 环境的重要元素,并展示了如何使用它们构建和定制Linux 发行版。随着嵌入式处理器的功能日益强大,特性不断丰富,Linux 操作系统在嵌入式应用中得到了迅速普及。尽管 Linux 的开源性与免许可证费用这一事实是其迅速普及的一个主要推动力,但另一个重要推动因素则是来自Linux 在台式机与服务器领域广泛使用所提供的丰富应用软件与驱动。OE 配置文件配置文件主要分为两类:设备配置
2、与发行版(distro)配置。另外还有本地配置文件以及名为“bitbake.conf”的文件。Bitbake.conf是 BitBake 读取的第一个文件,包含所有其它配置文件。此外,它还可定义许多全局变量,并称之为bitbake.conf。不建议直接修改bitbake.conf,建议在 distro 配置文件或本地配置文件中进行覆盖。设备配置文件可定义特定目标电路板。发行版配置文件可为一台以上的设备定义特定的Linux 发行版(比如各种数据包版本)。发行版配置文件是进行全局设置的最佳场合,该设置可应用于发行版生成的所有镜像。OE可帮助开发人员根据具体镜像或数据包覆盖这些设置,从而高度灵活地处
3、理特殊情况。例如,本地配置(local.conf)文件往往用于放置用户专用配置,以适度修改默认发行版配置的设置。在完成对发行版配置文件和设备配置文件的更详细讨论后,我们将从总体上了解在Arago local.conf 文件中所做的其它配置设置。该发行版配置文件可设定各种基本“内务处理”参数(见列表5),如发行版本名称、下载源文件和存储所构建数据包的目录以及uImage 的支持文件格式等。列表 5:配置文件摘要#For now Arago is not big enough to warrant a separate distribution,#reuse Angstrom,but set th
4、e name to Arago DISTRO=angstrom-2008.1#Set the distro name and version,since we now produce own SDK DISTRO_NAME=Arago DISTRO_VERSION=2010.05 BUILDNAME=$DISTRO_NAME$DISTRO_VERSION#Use this to specify where BitBake should place the downloaded sources into DL_DIR=$SCRATCH/downloads#Put resulting images
5、 and packages in deploy directory outside of temp 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -#DEPLOY_DIR=$OEBASE/arago-deploy#Add the required image file system types below.Valid are#jffs2,tar(.gz|bz2),cpio(.gz),cramfs,ext2(.gz),ext3(.gz)#squashfs,squashfs-lzma IMAGE_FSTYPES=jffs2 tar.gz ext2.gz 此外,该发行版配置文
6、件还可指定构建发行版的目标设备,尽管每台设备启动Linux 的详细信息都存放在设备配置文件中。由于发行版配置文件所处的位置由工具链版本决定,因此支持大量设备可能会使文件变得更加复杂。例如,可能需要指定多个大数据包补丁或不同的工具链版本来适应各种不同的设备。其它需要在发行版配置文件中指定的架构相关项包括硬件与软件浮点、是否支持不同的指令集(ARM ARM 应用系统开发详解或 Thumb Thumb 指令集专题)、以及可能不适应发行版中包含的某些数据包的各类寻址方式。选择数据包版本是发行版配置文件中较为重要的常见功能之一,以确保所使用的已知兼容性版本。选择版本的方法很多。如果没有指定版本,就选择最
7、新版本。同样,也可指定某种“从不落后于”最新版本的版本。对于需要特定版本的数据包,可为发行版配置文件中的整个发行版指定默认首选版本,如列表6 的 Angstrom 发行版配置文件摘要所示。列表 6:发行版配置文件摘要ANGSTROM_QT_VERSION?=4.6.2 CE_VERSION?=latest PREFERRED_VERSION_autoconf=2.65 PREFERRED_VERSION_autoconf-native=2.65 PREFERRED_VERSION_automake-native=1.10.3 PREFERRED_VERSION_busybox?=1.13.2
8、PREFERRED_VERSION_glib-2.0?=2.24.0 PREFERRED_VERSION_glib-2.0-native=2.24.0 发行版的另一项重要功能是提供一套源程序,以便访问预先构建的二进制数据包。发行版一般使用二进制源程序在运行时动态加载新的数据包。为稳定可靠的添加数据包,发行版还整合了一个数据包管理系统。例如,Angstrom发行版在开始时使用ipkg 软件包管理器(近期转向 opkg),因为与 dpkag 或 RPM 等桌面数据包管理技术相比,其在满足空间有限的嵌入式应用需求方面具有一定的优势。Ipk 格式原本建立在deb 格式基础之上,可用 ipkg 或 op
9、kg数据包管理器处理。相比之下,opkg 更新,因此也更有优势。数据包格式会使更多的元数名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -据存储在数据包中。这样能够避免加载不兼容的数据包,并确保带来正确运行时间的相关项。Arago 可定义其预先构建的IPK 源程序(见列表 7),但可能不具有最为广泛的数据包。在需要更多数据包时,可启用Angstrom源程序,但是在混合使用不同源程序时需要更加小心谨慎。列表 7:发行版配置文件摘要ANGSTROM_PKG_FORMAT?=ipk require conf/distro/include/angstrom-package$ANG
10、STROM_PKG_FORMAT.inc#Use this variable to select which recipe you want to use to#get feed configs(/etc/ipkg/,#/etc/apt/sources.list).Useful#for derivative distros and local testing ANGSTROM_FEED_CONFIGS=arago-feed-configs#Feed configuration ARAGO_URI=http:/feeds.arago-project.org ARAGO_FEED_BASEPATH
11、=feeds/live/$ANGSTROM_PKG_FORMAT DISTRO_FEED_URI=$ARAGO_URI/$ARAGO_FEED_BASEPATH 在发行版配置文件中可以设置其它通用构建参数。例如,开发人员可将具有更多调试信息或配置文件信息的已完成构建流程指定为标准流程。这些代码行可通过“生产代码”镜像方法注释掉或覆盖,从而可提高最终生产版本的性能。列表 8:发行版配置文件摘要#Comment these two out if you want BitBake to build#production images.DEBUG_BUILD=1 INHIBIT_PACKAGE_STR
12、IP=1#Build a package such that you can use gprof to profile it.PROFILE_OPTIMIZATION=-pg SELECTED_OPTIMIZATION=$PROFILE_OPTIMIZATION 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -LDFLAGS=+-pg 设备配置文件可定义在电路板上引导Linux所需的基本要素。例如,ARM926或 ARM Cortex-A8等目标 CPU 的定义,提供了Linux 内核的优先方法提供方以及相应引导加载程序,如列表9 所示,显示了TI ARM9 视频器件的
13、DM365 设备配置文件。列表 9:设备配置文件#TYPE:Machine#NAME:DM365 CPUs on a Davinci DM365 EVM board#DESCRIPTION:Machine configuration for the TI Davinci DM365 EVM board require conf/machine/include/dm365.inc require conf/machine/include/tune-arm926ejs.inc#Increase this everytime you change something in the kernel MA
14、CHINE_KERNEL_PR=r45 TARGET_ARCH=arm KERNEL_IMAGETYPE=uImage PREFERRED_PROVIDER_virtual/kernel=linux-davinci-staging PREFERRED_PROVIDER_virtual/bootloader=u-boot UBOOT_MACHINE=davinci_dm365_evm_config UBOOT_ENTRYPOINT=0 x80008000 UBOOT_LOADADDRESS=0 x80008000 EXTRA_IMAGEDEPENDS+=u-boot SERIAL_CONSOLE
15、?=115200 ttyS0 EXTRA_IMAGECMD_jffs2=-pad-little-endian-eraseblock=0 x20000-n#ROOT_FLASH_SIZE=29 MACHINE_FEATURES=kernel26 serial ethernet usbhost 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -usbgadget mmc alsa 每款电路板都需要设备配置文件。实际上,由于使用相同或类似器件的不同电路板的配置步骤通常相同,通用步骤可以合并到包含文件中。这样通过便于维护的无错误方法来简化新设备配置文件的创建。在以上示例中,我们了解了部分包含文件,并更深入地了解了整个设备配置文件的面貌(Linux系统配置)。(嵌入式 Linux关键开发技术讲座)(嵌入式 Linux 的坎坷求职路)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -