Интересует ваш рабочий процесс запуска и отладки модулей ядра с использованием qemu.
Задача состоит в том, чтобы в генте настроить минимальное окружение для запуска и отладки модулей ядра. Под словом «минимальное» подразумевается значительно более легкая среда, чем отдельная выделенная конкретно для целей разработки виртуальная машина.
Что уже получается на данный момент:
1. Были собраны initramfs и ядро.
2. Собранное ядро успешно запускается следующей командой:
qemu-system-x86_64 \
-append "console=ttyS0" \
-enable-kvm \
-initrd path/to/initramfs.gz \
-kernel path/to/bzImage \
-nographic \
В некоторых мануалах к этому ещё добавляются следующие опции:
-net nic,model=rtl8139
-net user
-net dump
Вопрос 1: в основном все найденные мануалы описывают процесс именно до этого момента. Минималистичное ядро загружено, ура, как будто на этом всё и закончилось. Далее подключаются с помощью внешнего отладчика.
Но мне необходимо вставить модуль. Какой обычно рабочий процесс (воркфлоу) у разработчиков модулей в данном случае (хотя бы вкрадце: ссылки, ключевые слова)?
Какой командой вы запускаете qemu и что делаете дальше?
jollheef, вот здесь ты писал, что запускаешь с помощью qemu. Буду признателен за комментарии.
Вопрос 2: предварительное изучение этого вопроса показало, что существуют ещё и другие подходы к разработке:
- система: использовать просто ядро рабочей машины/отдельную физическую машину/ полноценные виртуальные машины / qemu / etc.;
- диск: qemu-img / nfs / бездисковая загрузка / etc.;
- вывод: qemu monitor / консоль / virt-manager;
Как лично вы это делаете?