繁体   English   中英

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

[英]How to use QEMU for learning ARM Linux kernel development?

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

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

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

至于驱动开发,第一版应该在QEMU上快速开发。 但是自然涉及硬件的测试,应该在硬件上进行。

底线是:x86 的速度要快得多,以至于在 x86 在 ARM 板上启动之前,始终会在 x86 上完成交叉编译。 在板子上编译太费时间,有时可能会占用相当大的存储空间来存放开发库和源代码。

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

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

kernel、工具链、用户空间和 QEMU 具有惊人的便携性,从 x86 到 ARM 几乎是微不足道的。

实际上,您很少会触及拱形细节,因此您不妨从 x86 开始。

我还没有玩过 ARM 设备, 只有 x86 ,但我敢打赌它会同样容易(即由于缺乏教程而并非微不足道,但可行)。

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

没有做过ARM开发,不知道是不是学习ARM的最佳选择。 但是,如果您是司机新手,这可能是一个不错的起点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM