Linux kernel raspberry pi:编写Linux设备驱动程序

Linux kernel raspberry pi:编写Linux设备驱动程序,linux-kernel,linux-device-driver,embedded-linux,Linux Kernel,Linux Device Driver,Embedded Linux,我有一些关于Linux(RHEL 5.4)设备驱动程序和内核内部的基础知识,希望获得相同的专业知识。我开始了解树莓皮板 我的问题是,我在Linux服务器上编写的代码将在那里工作——它们的体系结构和概念是否相同。请注意,如果情况不同,那么我需要购买一台台式电脑,否则用于离线练习 注意-我无法添加树莓pi组,因此需要删除相同的组并添加以下组 Is their architecture and concepts same?? 我想澄清一下,这是基于ARM的板。我猜您的服务器主要运行在X86上 用于设

我有一些关于Linux(RHEL 5.4)设备驱动程序和内核内部的基础知识,希望获得相同的专业知识。我开始了解树莓皮板

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

注意-我无法添加树莓pi组,因此需要删除相同的组并添加以下组

Is their architecture and concepts same??
我想澄清一下,这是基于ARM的板。我猜您的服务器主要运行在X86上

用于设备的设备驱动程序。Rasperry Pi应该有您正在为其编写驱动程序的设备。 我建议您学习rasperry pi和linux驱动程序模型的数据表


仅与纹理无关。因此,将X86驱动程序移植到ARM只需要一些努力。你需要专注于硬件部分

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

是的,这取决于体系结构,在x86上编译的相同代码不会在pi上运行。然而,有一些方法可以绕过它

正如在上面的文章中提到的,使用交叉编译工具链(附带自己的libc)来编译代码(内核/用户空间),在rpi上进行测试。再次这样做,您仍然无法测试代码。要做到这一点,可以使用像qemu这样的VM工具。我不确定Rpi是否有qemu端口,但通常基于ARM11(ARMv6)的qemu应该可以。下面的链接可以让您在不拥有RPI的情况下在PC上进行初始内核开发

干杯
Subbu

有一个问题需要澄清——我们可以用什么主机启动Rasperry PI?我计划编写一个示例字符设备驱动程序,并研究主机内核数据结构——在字符设备驱动程序中的RHEL中,我可以访问内核数据结构——比如任务、当前运行的线程、停止的线程等等。这将给我带来两个好处:a)用Rasperry编写设备驱动程序,b)理解主机Kernel@Prakash是一些什么信息。