Встроенный парсер устройств Linux в python? - PullRequest
5 голосов
/ 05 июля 2010

Я хочу создать утилиту, которая проверяет файлы Embedded (PPC или ARM) Linux * .dts (источник дерева устройств) или * .dtb (двоичные) на соответствие файлу конфигурации XML из другого инструмента.Итак, мне нужно разобрать файлы dts или dtb.Я действительно хотел бы сделать это с Python.Кто-нибудь знает библиотеку Python или инструмент, который разбирает dts или dtb файлы?Реализация Python компилятора дерева устройств (dtc) была бы идеальной, но я еще не видел.

Ответы [ 2 ]

1 голос
/ 05 августа 2010

Пока нет привязки python для libfdt (библиотеки манипулирования деревом устройств, поставляемой с dtc), но ее создание должно быть довольно простым.

Если вы заинтересованы в этом, в документации по Python есть немного о расширении python с помощью модулей c: http://docs.python.org/release/2.6/extending/extending.html. Утилита swig может использоваться для автоматического создания интерфейса Python-to-C, поэтому вы просто пишете небольшой файл конфигурации swig.

Если вы в конечном итоге сделаете это, отправьте электронное письмо по адресу devicetree-discuss@lists.ozlabs.org - мы будем рады узнать, как вы поступите!

0 голосов
/ 20 июля 2016

libfdt используется для анализа файла dtb вместо файла дерева устройств (dts / dtsi), поэтому он может не помочь в чтении libfdt, и вы не можете просто использовать SWIG для создания привязки Python к существующему анализатору устройств. Поскольку dtc использует lex / yacc в качестве инструмента синтаксического анализа и его определение синтаксиса доступно в ядре, я предлагаю вам использовать lex / yacc в python ([PLY]: http://www.dabeaz.com/ply/) для создания собственного синтаксического анализатора дерева устройств.

...