How to use QEMU to learn ARM Linux kernel development?

I want to study it as developing some device drivers, etc. and use QEMU for this because I donโ€™t have a hardware board for ARM, such as a beagle board. What are you offering? Can I use the Qemu simulator to study the Linux kernel for ARM purposes? or any other option i should try?

+4
source share
3 answers

I used Qemu some time ago to develop device drivers for an embedded programming class. It worked well enough. At that time, we studied device driver programming, and then switched to Gumstix boards. I donโ€™t remember exactly which kernel we used in, but Qemu worked well.

I did not develop ARM, so I donโ€™t know if this is the best choice for learning ARM. But if you're new to drivers, this is probably a good place to start.

0
source

It depends on what you want to know: hardware or software. If you really want to experiment with different GPIO outputs to implement features such as servo control, LED flashing and display, a cheap board (like Raspberry Pi, around USD25) is very preferable.

But if you want to study the software in general, qemu is certainly much faster, and this allows you to see the internal origin of what is happening. For experiments with hardware, you need an oscilloscope, etc. But an experiment with software will depend on the conclusion of the error that others have implemented in their software.

Regarding driver development, the first version should be quickly developed on QEMU. But testing, which, of course, is associated with equipment, must be performed on the equipment.

Bottomline is: x86 is much faster that cross-cropping is always performed on x86 before it boots onto the ARM board. Compiling on the board is too time-consuming, and sometimes it may require a significant amount of space for development libraries and source codes.

0
source

QEMU + Buildroot - Great Combination for ARM Core Development

Here is my setup that supports (mostly) both x86 and ARM: https://github.com/cirosantilli/linux-kernel-module-cheat

The kernel, toolchain, userland, and QEMU are surprisingly portable that the transition from x86 to ARM is almost trivial.

Actually, you will rarely touch on the features of the arc, so you can start with x86.

I have not played with ARM devices yet, only x86 , but I'm sure it will be equally easy (i.e. not trivial due to the lack of tutorials, but doable).

0
source

All Articles