Yocto: Install different config files based on MACHINE type or target image

后端 未结 3 1249
悲&欢浪女
悲&欢浪女 2020-12-20 07:15

I\'ve got a couple of HW platforms (same cpu, etc.) that require different asound.conf files.

The way that I\'m controlling the target platform is via the MACHINE va

3条回答
  •  被撕碎了的回忆
    2020-12-20 08:12

    You can have configuration files in machine specific directories in your particular case (just a specific configuration file for each machine). OpenEmbedded will fetch the most specific one. The directory structure in your recipe directory will look like:

    files//asound.conf
    files//asound.conf
    

    And your alsa-state.bbappend will contain just one line (you don't need to change do_install because alsa-state.bb already installs asound.conf):

    FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
    

    BTW: We are using that setup to have specific asound.state file per machine in our project.

    Moreover, OpenEmbedded will detect that SRC_URI contains machine specific file and change the PACKAGE_ARCH accordingly, see: https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#var-SRC_URI_OVERRIDES_PACKAGE_ARCH

    Few more words on machine, distro or arch specific files: OE is trying to fetch the most specific file in file:// fetcher. It searches also in the directories named by distro (e.g files//asound.conf) and architecture (e.g. armv7a, arm). It might be useful if you want to have file specific for some set of devices. More information: https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#var-FILESOVERRIDES and also https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#best-practices-to-follow-when-creating-layers (section "Place Machine-Specific Files in Machine-Specific Locations")

提交回复
热议问题