如何使用QEMU学习ARM Linux内核开发?

时间:2011-07-20 15:19:09

标签: linux linux-kernel arm embedded-linux qemu

我想学习它,比如开发一些设备驱动程序等,并使用QEMU,因为我没有像beagle board那样的ARM硬件板。你们建议的是什么?我可以使用Qemu模拟器来学习ARM目标上的Linux内核吗?或者我应该尝试的任何其他选择?

3 个答案:

答案 0 :(得分:1)

这取决于您想要学习的内容:硬件或软件。如果你真的想尝试不同的GPIO输出来实现伺服电机控制,LED灯闪烁和显示等功能,那么便宜的电路板(例如,Raspberry Pi,约25美元)是首选。

但是如果你想学习一般的软件,qemu肯定要快得多,它可以让你看到正在发生的事情的内部。尝试使用硬件将需要使用示波器等。但是,使用软件进行实验将取决于其他人在其软件中实现的错误输出。

至于驱动程序开发,第一版应该在QEMU上快速开发。但是,测试哪些自然涉及的硬件,应该在硬件上完成。

Bottomline是:x86速度要快得多,在ARM板上启动之前,总是在x86上完成交叉编译。在电路板上进行编译太费时间了,有时可能会涉及到开发库和源代码的大量存储空间。

答案 1 :(得分:0)

我曾使用Qemu开发嵌入式编程类的设备驱动程序。它工作得很好。当时我们正在学习设备驱动程序编程,然后转换到Gumstix板。我不记得我们正在使用什么核心,但Qemu运作良好。

我没有做任何ARM开发,所以我不知道它是否是学习ARM的最佳选择。但如果你是司机的新手,那可能是一个很好的起点。

答案 2 :(得分:0)

QEMU + Buildroot是ARM内核开发的绝佳组合

这是我的设置,支持(主要)x86和ARM:https://github.com/cirosantilli/linux-kernel-module-cheat

内核,工具链,用户空间和QEMU非常便携,从x86到ARM几乎是微不足道的。

实际上,你很少会触及拱门细节,所以你最好从x86开始。

我还没有玩过ARM设备,only x86,但我敢打赌它会同样容易(因为缺少教程,但是可行,但不是很简单)。