# device-tree

Помогает ИИ писать описания оборудования на DTS/DTSI и разбираться с ошибками сопоставления драйверов в ядре Linux.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 314 установок · ★ 267
- Автор: mohitmishra786
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/kernel-dev/device-tree/SKILL.md
- Обновлён: 2026-06-27
- HTML: https://affpapa.org/nevibecode/skills/device-tree

## Что делает

Скилл задаёт правила работы с Devicetree в Linux: синтаксис файлов `.dts` и свойства вроде `compatible` или `reg`. Он объясняет агенту, как подсистема Open Firmware преобразует узлы дерева в структуры `platform_device`, сопоставляя их с таблицами `of_match_table` драйверов.

Инструкция охватывает сборку дерева через компилятор `dtc`, инспекцию запущенного ядра в `/proc/device-tree` и работу с оверлеями через `configfs`. Для применения оверлеев на лету в ядре требуется опция `CONFIG_OF_OVERLAY`.

Внутри также описаны частые сбои: расхождения в `#address-cells`, неверные индексы прерываний или задержки зондирования `-EPROBE_DEFER` из-за отсутствующих тактовых сигналов. Без точного совпадения строки `compatible` ядро не вызовет функцию инициализации. Драйвер просто пропустит устройство.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill device-tree -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/device-tree/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/device-tree/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill device-tree -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/device-tree/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill device-tree -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/device-tree/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install mohitmishra786/low-level-dev-skills device-tree
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/device-tree/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill device-tree -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/kernel-dev/device-tree
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/device-tree/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill device-tree -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/kernel-dev/device-tree/SKILL.md

## Когда брать
- написать узел устройства или фрагмент оверлея для шины I2C или SPI
- найти причину отказа при вызове probe из-за опечатки в свойстве compatible
- рассчитать диапазоны адресов MMIO с учётом address-cells и size-cells
- настроить phandle-связи для тактовых сигналов и линий прерываний

## Примеры запросов агенту
- /device-tree Напиши узел DTS для датчика температуры на шине i2c1 с прерыванием на GPIO5
- /device-tree Разберись, почему драйвер не привязывается к узлу serial@40011000
- /device-tree Создай фрагмент оверлея для включения второго UART через configfs

## Похожие
- [jetson-customize-pcie](https://affpapa.org/nevibecode/skills/jetson-customize-pcie.md) — скилл · 1100 установок
- [jetson-build-source](https://affpapa.org/nevibecode/skills/jetson-build-source.md) — скилл · 1100 установок
- [kernel-exploitation](https://affpapa.org/nevibecode/skills/kernel-exploitation.md) — скилл · 3600 установок
- [analyzing-linux-kernel-rootkits](https://affpapa.org/nevibecode/skills/analyzing-linux-kernel-rootkits.md) — скилл · 442 установки
- [performance-tuning](https://affpapa.org/nevibecode/skills/performance-tuning.md) — скилл · 403 установки
- [tree-shaking](https://affpapa.org/nevibecode/skills/tree-shaking.md) — скилл · 1400 установок

Из того же набора: [mohitmishra786/low-level-dev-skills](https://affpapa.org/nevibecode/by/mohitmishra786/low-level-dev-skills.md) — 95 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
