Как использовать QEMU для изучения разработки ядра ARM Linux? - PullRequest
4 голосов
/ 20 июля 2011

Я хочу научиться этому, например, разработать драйвер устройства и т. Д. И использовать QEMU для этого, потому что у меня нет аппаратной платы для ARM, такой как плата beagle.Что вы, ребята, предлагаете?Могу ли я использовать симулятор Qemu для изучения ядра Linux на ARM-мишенях?или любой другой вариант, который я должен попробовать?

Ответы [ 3 ]

1 голос
/ 06 апреля 2014

Это зависит от того, что вы хотите изучить: аппаратное или программное обеспечение.Если вы действительно хотите поэкспериментировать с различными выходами GPIO для реализации таких вещей, как управление серводвигателем, мигание светодиодного индикатора и отображение, вам предпочтительнее дешевая плата (например, Raspberry Pi, около 25 долларов США).

Но если выЕсли вы хотите изучать программное обеспечение в целом, QEMU определенно намного быстрее, и это позволяет вам увидеть внутреннюю часть происходящего.Экспериментирование с аппаратным обеспечением потребует осциллографа и т. Д. Но эксперимент с программным обеспечением будет зависеть от вывода ошибок того, что другие реализовали в своем программном обеспечении.

Что касается разработки драйверов, первая версия должна быть быстро разработана на QEMU.Но тестирование, которое, естественно, включало аппаратное обеспечение, должно проводиться на аппаратном обеспечении.

Суть в том, что x86 настолько быстрее, что перекрестная компрометация всегда выполняется на x86 до того, как он загружается на плату ARM.Компиляция на плате занимает слишком много времени, а иногда может потребовать значительного объема памяти для библиотек разработки и исходных кодов.

0 голосов

QEMU + Buildroot - отличная комбинация для разработки ядра ARM

Вот моя установка, которая поддерживает (в основном) как x86, так и ARM: https://github.com/cirosantilli/linux-kernel-module-cheat

Ядро, toolchain, userland и QEMU потрясающе переносимы, переход с x86 на ARM почти тривиален.

На самом деле, вы редко будете касаться особенностей арки, так что вы также можете начать с x86.

Я еще не играл с устройствами ARM, только x86 , но держу пари, что это будет одинаково легко (т.е. не тривиально из-за отсутствия учебных пособий, но выполнимо).

0 голосов
/ 21 июля 2011

Некоторое время назад я использовал Qemu для разработки драйверов устройств для встроенного класса программирования. Это работало довольно хорошо. В то время мы изучали программирование драйверов устройств, а затем переходили к платам Gumstix. Я не помню точно, какое ядро ​​мы использовали, но Qemu работал хорошо.

Я не занимался разработкой ARM, поэтому не знаю, является ли это лучшим выбором для изучения ARM. Но если вы новичок в драйверах, это, вероятно, хорошее место для старта.

...