К основному содержанию
скилл CX Codex

qemu-for-kernel-development — скилл для Claude Code: как настроить

Скилл помогает запускать самосборные ядра Linux и тестировать драйверы в QEMU. Пригодится для отладки модулей ядра через GDB и проверок с rootfs на virtio или NFS.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mohitmishra786/low-level-dev-skills --skill qemu-for-kernel-development -a claude-code
Открыть на GitHub

Что делает qemu-for-kernel-development

Скилл содержит инструкции для запуска ядер Linux на архитектурах arm64 и x86_64 в виртуальной машине QEMU. Он задаёт параметры командной строки, включая конфигурацию консоли через console=ttyAMA0 или ttyS0 и подключение накопителей virtio-blk. Внутри собраны готовые шаблоны для сборки корневой файловой системы с помощью Buildroot и рецепты монтирования общих каталогов хоста через протокол 9p.

Для проверки драйверов описан процесс компиляции внешних модулей ядра и их загрузки через insmod. Скилл также подсказывает, как подключить отладчик GDB через порт 1234 ключами -s -S, переопределить Device Tree с помощью флага -dtb и настроить сеть с устройством virtio-net-device.

При запуске без аппаратной виртуализации KVM эмуляция TCG работает заметно медленнее. Внешний модуль ядра выдаст ошибку vermagic, если дерево исходников при компиляции отличается от запущенного образа.

Какие задачи решает

  • запустить самосборное ядро Linux в QEMU для arm64 или x86_64
  • подключить отладчик GDB к ядру через удалённый порт
  • настроить обмен исходниками драйверов с хостом через virtio-9p
  • собрать минимальный rootfs с помощью Buildroot
  • устранить ошибку vermagic при загрузке внешнего модуля

Примеры запросов агенту

  • /qemu-for-kernel-development собери команду QEMU для запуска arm64 Image с virtio rootfs и консолью ttyAMA0
  • /qemu-for-kernel-development покажи, как настроить шаринг папки хоста в гостевую систему через virtio-9p
  • /qemu-for-kernel-development как запустить QEMU с GDB-сервером и остановиться на start_kernel?

Как установить qemu-for-kernel-development

1Через Skills CLI (Vercel)

npx skills add mohitmishra786/low-level-dev-skills --skill qemu-for-kernel-development -a claude-code

2Вручную: положить файлы

~/.claude/skills/qemu-for-kernel-development/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/qemu-for-kernel-development/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о qemu-for-kernel-development

Как установить qemu-for-kernel-development в Claude Code?

Выполните команду npx skills add mohitmishra786/low-level-dev-skills --skill qemu-for-kernel-development -a claude-code. Файл навыка будет сохранён по пути ~/.claude/skills/qemu-for-kernel-development/SKILL.md.

Для чего нужен скилл qemu-for-kernel-development?

Он помогает разработчикам ядра и драйверов запускать тестовые сборки в QEMU без реального оборудования. Внутри описаны готовые параметры запуска, монтирование virtio rootfs и сценарии отладки.

Почему ядро в QEMU падает в panic с ошибкой no root?

Причиной обычно является неверно указанный параметр root= в командной строке ядра. При использовании блочных устройств virtio передайте root=/dev/vda rw.

Исходный текст

SKILL.md · MIT
---
name: qemu-for-kernel-development
description: QEMU kernel development skill for driver and kernel testing. Use when booting custom kernels in QEMU, Buildroot/Yocto rootfs, virtio devices, or NFS root for driver iteration. Activates on queries about QEMU kernel dev, Buildroot QEMU, virtio block, kernel module test QEMU, or -append root=
---

# QEMU for Kernel Development

## Purpose

Guide agents through QEMU-based kernel and driver development workflows: building/booting custom kernels, attaching virtio block/network, using Buildroot or minimal initramfs, and rapid module test cycles — focused on kernel dev vs general `skills/virtualization/qemu-kvm`.

## When to Use

- Test kernel patch without bare metal
- Develop driver against virtio or emulated DT platform
- CI kernel boot smoke test
- NFS or 9p root for fast edit-compile-test

## Workflow

### 1. Minimal direct kernel boot (arm64 virt)

```bash
qemu-system-aarch64 \
  -machine virt -cpu cortex-a57 -smp 4 -m 2G \
  -kernel arch/arm64/boot/Image \
  -append "console=ttyAMA0 root=/dev/vda rw" \
  -drive if=virtio,file=rootfs.ext4,format=raw \
  -netdev user,id=net0 -device virtio-net-device,netdev=net0 \
  -nographic
```

x86_64:

```bash
qemu-system-x86_64 -enable-kvm -m 4G -smp 4 \
  -kernel arch/x86/boot/bzImage \
  -append "console=ttyS0 root=/dev/vda rw" \
  -drive file=rootfs.img,format=raw,if=virtio \
  -nographic
```

### 2. Buildroot rootfs loop

```bash
cd buildroot
make qemu_aarch64_virt_defconfig
make
# output/images/Image, rootfs.ext4
```

Integrate custom kernel: set `BR2_LINUX_KERNEL_CUSTOM_VERSION` or external tree.

### 3. Out-of-tree module test

```bash
# on host — cross build
make -C $KERNEL_SRC M=$PWD modules
# in guest or via initramfs
insmod mydriver.ko
dmesg | tail
```

Share tree with 9p:

```bash
-fsdev local,id=dev,path=$PWD,security_model=none \
-device virtio-9p-pci,fsdev=dev,mount_tag=hostshare
# guest: mount -t 9p -o trans=virtio hostshare /mnt
```

### 4. GDB stub for kernel

```bash
qemu-system-aarch64 ... -s -S
gdb vmlinux
(gdb) target remote :1234
(gdb) break start_kernel
```

Use `CONFIG_KGDB` for live kernel debugging after boot.

### 5. Device tree overrides

```bash
qemu-system-aarch64 -machine virt -dtb myboard.dtb ...
```

virt machine provides virtio devices; platform drivers can target QEMU `-device` models.

### 6. Agent usage

```
/qemu-for-kernel-development Boot arm64 virt with custom Image and virtio rootfs for driver CI
```

## Common Problems

| Symptom | Cause | Fix |
|---------|-------|-----|
| Kernel panic no root | Wrong `root=` | `root=/dev/vda` for virtio blk |
| No console output | Missing `console=` on cmdline | `console=ttyAMA0` / `ttyS0` |
| Module vermagic error | Built against wrong tree | Same `KERNEL_SRC` as booted image |
| Slow without KVM | TCG emulation | `-enable-kvm` on x86 host |
| DTB mismatch | Wrong machine | Use `virt` DTB from kernel `make dtbs` |

## Related Skills

- `skills/virtualization/qemu-kvm` — KVM, VFIO, libvirt
- `skills/qemu/qemu-embedded-simulation` — bare-metal MCU QEMU
- `skills/kernel/kernel-testing` — KUnit, kselftest
- `skills/kernel-dev/device-tree` — DT for virt/platform
- `skills/debuggers/gdb` — remote GDB basics

© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills

Похожие скиллы

Все скиллы по теме «Тесты и QA» →
improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок

Из того же набора90

reverse-engineering Скилл для разбора скомпилированных бинарей: подсказывает агенту порядок работы с Ghidra, radare2 и Binary Ninja. Пригодится, когда исходников нет, а логику восстановить надо. CX Codex +1 350установок abi-and-calling-conventions Скилл для ИИ-агента, который разбирает правила ABI: какие регистры держат аргументы, как выравнивается стек, что ломается в FFI. CX Codex +1 342установок linux-kernel-architecture Даёт агенту карту ядра Linux: порядок загрузки, крупные подсистемы, уровни initcall и места, где искать код в linux.git. CX Codex +1 333установок cuda Помогает агенту писать и оптимизировать CUDA-ядра: иерархия потоков, разделяемая память, потоки, флаги nvcc и Thrust. CX Codex +1 320установок kernel-debugging-advanced Скилл для трассировки ядра Linux: ftrace, trace-cmd, perf, kprobes, kgdb и разбор vmcore. Пригодится, когда драйвер тормозит без явной ошибки. CX Codex +1 317установок virtual-memory-paging-and-tlb Скилл объясняет принципы работы виртуальной памяти, многоуровневых таблиц страниц и буфера TLB. Он помогает разбирать сбои page fault, настраивать huge pages и отлаживать segfault. CX Codex +1 316установок cuda-profiling Ведёт агента по профилированию CUDA-приложений: таймлайн в Nsight Systems, метрики ядер в Nsight Compute, разбор roofline и узких мест. CX Codex +1 316установок device-tree Помогает ИИ писать описания оборудования на DTS/DTSI и разбираться с ошибками сопоставления драйверов в ядре Linux. CX Codex +1 314установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой