首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

开放:构建嵌入式Linux发行版 2

开放:构建嵌入式Linux发行版 2

列表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"
   
    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或opkg数据包管理器处理。相比之下,opkg更新,因此也更有优势。数据包格式会使更多的元数据存储在数据包中。这样能够避免加载不兼容的数据包,并确保带来正确运行时间的相关项。Arago可定义其预先构建的IPK源程序(见列表7),但可能不具有最为广泛的数据包。在需要更多数据包时,可启用Angstrom源程序,但是在混合使用不同源程序时需要更加小心谨慎。
   
    列表7:发行版配置文件摘要
   
    ANGSTROM_PKG_FORMAT ?= "ipk"
   
    require conf/distro/include/
   
    angstrom-package${ANGSTROM_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 = "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_STRIP = "1"
   
    # Build a package such that you can use gprof to profile it.
   
    PROFILE_OPTIMIZATION = "-pg"
   
    SELECTED_OPTIMIZATION = "${PROFILE_OPTIMIZATION}"
   
    LDFLAGS =+ "-pg
   
    设备配置文件可定义在电路板上引导Linux所需的基本要素。例如,ARM926或ARM Cortex-A8等目标CPU的定义,提供了Linux内核的优先方法提供方以及相应引导加载程序,如列表9所示,显示了TI arm9视频器件的DM365设备配置文件。
   
    列表9:设备配置文件
   
    [email=#@TYPE]#@TYPE[/email]: Machine
   
    [email=#@NAME]#@NAME[/email]: DM365 CPUs on a Davinci DM365 EVM board
   
    [email=#@DESCRIPTION]#@DESCRIPTION[/email]: 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
   
    MACHINE_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 = "0x80008000"
   
    UBOOT_LOADADDRESS = "0x80008000"
   
    EXTRA_IMAGEDEPENDS += "u-boot"
   
    SERIAL_CONSOLE ?= "115200 ttyS0"
   
    EXTRA_IMAGECMD_jffs2 = "--pad --little-endian
   
    --eraseblock=0x20000 -n"
   
    #ROOT_FLASH_SIZE = "29"
   
    MACHINE_FEATURES = "kernel26 serial ethernet usbhost
   
    usbgadget mmc alsa"
   
    每款电路板都需要设备配置文件。实际上,由于使用相同或类似器件的不同电路板的配置步骤通常相同,通用步骤可以合并到包含文件中。这样通过便于维护的无错误方法来简化新设备配置文件的创建。在以上示例中,我们了解了部分包含文件,并更深入地了解了整个设备配置文件的面貌。
返回列表