【问题标题】:Could I Build a kernel driver for Ubuntu without building Ubunto kernel?我可以在不构建 Ubunto 内核的情况下为 Ubuntu 构建内核驱动程序吗?
【发布时间】:2022-01-22 06:01:56
【问题描述】:

我有一块 Zynq Ultrascale 板,我想使用 Aarch64 处理器的 DMA 接口,该处理器将 Linux 作为操作系统运行。 为此,我应该将 .ko 驱动程序文件放在内核中并将其加载到 Linux 内核中。

目前,我使用 Petalinux 并通过它构建驱动程序 .ko 文件,Petalinux 将此 .ko 文件放在 rootfs 和 Petalinux 内核中。

现在,我想从 Petalinux 迁移到 Ubuntu 并在 Zynq 板上使用 Ubuntu,所以我想知道我是否可以独立于 ubuntu 内核构建一个 DMA 驱动程序,然后将其添加到其内核中?

以前,Petalinux 在构建整个 linux 内核的同时构建了我的驱动程序。但我只想构建驱动程序并使用现有内核(不构建 ubuntu 内核)

如果可以并且我可以单独构建驱动程序,我该如何为 Ubunto 构建驱动程序?

【问题讨论】:

  • 应该根据那些配置和头文件构建 Linux 内核驱动程序,而内核本身是根据这些文件构建的。 “我如何将我的 c++ 代码构建为 Ubunto 的驱动程序?” - 你不能。 Linux 内核是由 C 代码构建的,它不支持 C++。
  • @Tsyvarev 对不起。我的意思是 c,不是 c++。
  • 您仍然需要 Ubuntu 内核配置和源代码。此外,您需要对模块签名做一些事情,因为 Ubuntu 模块已签名。

标签: ubuntu linux-kernel linux-device-driver embedded-linux petalinux


【解决方案1】:

幸运的是,我把 Petalinux 构建的驱动复制到了 Ubuntu 上,可以正常使用。

这意味着我可以在不编译 Ubuntu 内核的情况下使用 Petalinux 构建驱动程序,我将驱动程序的 .c 文件作为一个模块添加到 Petalinux,然后完全构建 Petalinux,然后从 Petalinux 中的 /lib/modules/5.10.0-xilinx-v2021.2/extra/ 路径中选择驱动程序的 .ko 文件,然后将其复制到 Ubuntu 中的某个位置并调用 insmod 命令。

我知道这个解决方案不尊重人,但它对我有用,并将我从沼泽中拉了出来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2012-04-20
    • 2018-08-10
    • 2011-12-10
    • 2014-03-01
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多