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

我想学习它像开发一些设备驱动程序等,并使用QEMU这一点,因为我没有ARM的硬件板如beagle板。 你们有什么build议? 我可以使用Qemu模拟器学习ARM内核上的Linux内核吗? 或者我应该尝试的其他选项?

Solutions Collecting From Web of "如何使用QEMU学习ARM Linux内核开发?"

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

我还没有做过任何的ARM开发,所以我不知道这是不是学习ARM的最佳选择。 但是,如果你对驾驶员不熟悉,那么可能是一个很好的起点。

这取决于你想学习什么:硬件或软件。 如果你真的想试用不同的GPIO输出来实现伺服电机控制,LED灯闪烁和显示,那么便宜的电路板(例如树莓派,约USD25)是首选。

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

至于驾驶员的发展,QEMU的第一个版本应该快速发展。 但是测试自然涉及的硬件,应该在硬件上完成。

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

QEMU + Buildroot是ARM内核开发的完美结合

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

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

实际上,你很少碰触拱形细节,所以你不妨从x86开始。

我还没有玩ARM设备, 只有x86 ,但我敢打赌,这将是同样容易(即不是微不足道的,由于缺乏教程,但可行)。