【问题标题】:Yocto kernel module pathYocto 内核模块路径
【发布时间】:2018-06-20 13:01:53
【问题描述】:

我需要访问配方中内核模块的目标路径,是否有包含此类信息的变量?

我的意思是,我在哪里可以得到“/lib/modules/4.1.23-fslc+g3617c73”,因为这个路径可能会因为配置而改变?

【问题讨论】:

  • 嗨,你读过this 吗?
  • 是的,但我不明白。从这里我明白我可以在哪里找到我的内核源代码,对吧?我需要目标机器上的“.ko”路径。我是否遗漏了手册中的某些内容?
  • 为什么要.ko的路径?您可以添加 KERNEL_MODULE_AUTOLOAD 来处理模块加载。
  • 我有这个应用程序,不是我开发的,它需要知道路径,并且这些信息在构建时是硬编码的。我不想修补代码,我只需要其配方中的路径。在询问后我安排使用“/lib/modules/KERNEL_VERSION”,但也许有更好的选择?
  • INSTALL_MOD_PATH 被本机内核 Makefile 使用,我认为 Yocto 应该在某个地方设置它。

标签: linux-kernel kernel-module yocto bitbake


【解决方案1】:

目标目录如下。

在 poky/meta/classes/ 函数 kernel_do_install 中查看 bbclass 文件 kernel.bbclass 它作为 make 选项传递

 oe_runmake DEPMOD=echo MODLIB=${D}${nonarch_base_libdir}/module/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${nonarch_base_libdir}/firmware modules_install

【讨论】:

    【解决方案2】:

    希望以下信息对您有所帮助, 内核模块路径是`

    tmp-glibc/work/beaglebone-linux-gnueabi/linux-ti/3.12.30-phy10-r0.0/image/lib/modules/3.12.30-AM335x-PD15.3.0`

    如果您将代码添加到您的 linux 内核中并默认编译为模块(.ko),它将添加到上述路径中。

    如果您想手动将模块(.ko)复制到 lib/modules 路径,请将您的.ko 文件复制到 sources/meta-youlayer/recipes-kernel/linux 并在行下方创建 linux-ti_%.bbappend 文件广告

    FILESEXTRAPATHS_prepend := "${THISDIR}:"
    SRC_URI +="file://your.ko"
    do_install_append(){
    install -m 0777 ${S}/your.ko ${D}/lib/modules/version
    }
    

    我还没有尝试过。希望它会奏效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2021-10-20
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      相关资源
      最近更新 更多