【问题标题】:raspberry pi : writing Linux device driver树莓派:编写Linux设备驱动程序
【发布时间】:2013-08-29 22:07:20
【问题描述】:

我对 Linux (RHEL 5.4) 设备驱动程序和内核内部有一些基础知识,并希望获得这方面的专业知识。我开始知道树莓派板。

我的问题是,我在 Linux 服务器上编写的相同代码将在那里工作 - 它们的架构和概念是否相同。请注意,如果不是同一情况,那么我需要购买台式电脑,否则用于离线练习。

注意 - 我无法添加 raspberry pi 组,因此需要删除它并添加以下组。

【问题讨论】:

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


    【解决方案1】:

    是的,它取决于架构,在 x86 上编译的相同代码不会在 Pi 上运行。但是,有一些方法可以绕过它。

    如上篇文章所述,使用交叉编译工具链(自带 libc)编译您的代码(内核/用户空间)以在 R pi 上试用。再次这样做,您仍然无法测试您的代码。为此,请使用 qemu 之类的 VM 工具。我不确定是否有用于 R pi 的 qemu 端口,但通常基于 ARM 11 (ARMv6) 的 qemu 应该可以。以下链接可以帮助您在不拥有 R pi 的情况下在 PC 上进行初始内核开发。

    http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/

    干杯 分部

    【讨论】:

      【解决方案2】:
      Is their architecture and concepts same??
      

      我想澄清一下Rasperry Pi 是基于 ARM 的主板。大多数情况下,我猜你的服务器是在 X86 上运行的。

      用于设备的设备驱动程序。 Rasperry Pi 应该有您正在为其编写驱动程序的设备。 我建议你研究一下rasperry pi和linux驱动模型的数据手册。

      Linux driver model 仅与架构无关。所以你只需要一些努力就可以将你的 X86 驱动程序移植到 ARM 上。您需要专注于硬件部分。

      【讨论】:

      • 一个澄清 - 我们可以使用什么主机来启动 Rasperry PI?我计划编写一个示例字符设备驱动程序并研究 HOST 内核数据结构 - 在 RHEL 中的字符设备驱动程序中,我可以访问内核数据结构 - 比如什么是任务,当前正在运行的线程,停止等等等等。它会给我 2 折好处 - a) 在 Rasperry 中编写设备驱动程序和 b) 了解主机内核
      • @Prakash lifehacker.com/5976912/… 提供了一些信息。
      【解决方案3】:

      您可能需要为 ARM 架构交叉编译代码。如果您在 Linux 服务器上使用 x86 机器。您可以使用 GNU ARM 工具链交叉编译您的 ARM 模块,然后在 Raspberry pi 上运行。

      【讨论】:

        猜你喜欢
        • 2019-02-14
        • 2018-11-16
        • 2018-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-28
        • 1970-01-01
        相关资源
        最近更新 更多