LINUX.ORG.RU

Сообщения sdnvx

 

Как правильно запаковать проект?

 , ,

Некоторое время назад приходил сюда просить для своего проекта дампы dmidecode с реального железа. Спустя почти год проект прошёл путь от 0.1 до 0.5.1 и превратился из простого аналога dmidecode во что-то большее:

  • Имеет в базе движок на C, который предоставляет прямой доступ к типизированным данным по полям, причём кодеки в движке описываются декларативно
  • Декодирует гораздо больше структур, чем описано в спецификации, и даже гораздо больше, чем dmidecode. Многое пришлось реверс-инжинирить руками, зато теперь декодируются даже таблицы Intel vPro, FVI, AMT, MEI, SVT и так далее - даже если они перенесены на другие ID
  • Умеет определять таблицы не только по коду, но и по сигнатурам, есть платформно-зависимые модули (Acer, Dell, HP, Lenovo, AMI и так далее), auto-probing и т.п.
  • Умеет в string properties у таблиц, vendor-specific релокацию ID типов таблиц и даже бинарные оверлеи (additional information из SMBIOS specification)
  • Умеет проверять дампы своим линтером с кучей правил
  • Умеет экспортировать дампы в XML, JSON и YAML и даже анонимизировать их при сохранении
  • Имеет большой задел под компилятор прошивок SMBIOS (из YAML, JSON или XML), который может пригодиться OEM
  • Работает на Linux, FreeBSD, NetBSD, macOS и Windows

Ну и сайт и документацию как на библиотеку, так и на CLI наконец сделал. В ближайших релизах после некоторой стабилизации хочу прикрутить нативное API для C++, модуль ядра, который бы вытаскивал всё это добро на SysFS для удобства использования из скриптов, потом - API для Python, Go и Rust.

Собственно, вопрос: сейчас это всё собирается CMake с исходников на GitHub. Как лучше сделать пакеты для Linux, чтобы это можно было устанавливать без плясок с бубном, куда их лучше класть (в стандартные репы фиг прорвёшься) и вообще чего ещё хотелось бы от user experience такой штуки? Как лучше проводить тестирование, т.к. очевидно, что у реальных пользователей будут вылезать баги, где их брать в мире open-source?

Простите, если вопрос тупой, за 27 лет опыта ни разу не приходилось заниматься размещением бинарей в публичных репозиториях, это вообще мой первый крупный open-source проект и я нахожусь по этому поводу в лёгком ступоре.

Собственно, вот: https://opendmi.org/

Заранее спасибо!

Перемещено hobbit из general

sdnvx
()

Накидайте бинарных (!) дампов dmidecode

 , ,

Добрый день!

Разрабатываем с коллегой большой фреймворк для декодирования SMBIOS. Это «типа» как dmidecode, только с фокусом на автоматизацию, а не просто показ на экране:

  • С библиотекой для удобного доступа из C
  • С валидацией и линковкой структур между собой
  • С большим количеством vendor-specific extensions
  • Умеет даже в big-endian by design
  • Структурным экспортом во все возможные форматы (XML, YAML, JSON)
  • Красивым выводом в терминал
  • В ближайшем будущем - модулями для Python/Go/Rust, сервисом для D-bus, а после 1.0 - и с компилятором SMBIOS

Для тестирования очень нужны бинарные (не текстовые) дампы SMBIOS, которые можно получить через dmidecode --dump-bin <file>. Не важно с какого железа и каких платформ, чем больше разного - тем лучше, так как в дампах бывают ошибки и они разнятся от вендора к вендору и от модели к модели.

Увы, это редкость. В сети валяется огромное количество расшифрованных дампов, но не бинари. Количество доступного железа ограничено, а всех друзей уже обошли :(

Накидайте, пожалуйста, дампов на dmitry@sednev.ru!

P.S. Посмотреть/попробовать/потестировать то, что есть можно по ссылке https://github.com/sdnvx/opendmi. Лучше брать main, а не 0.1.4 - там уже много фиксов, которые не вошли в ветку 0.1. И не верьте выдаче --help, пока формат вызова идентичен dmidecode, новый красивый CLI будет к 0.2. Буду рад любой обратной связи.

P.P.S. Да, ROADMAP честный - этот проект как вторая работа, потому что интересно и хочется сделать круто.

sdnvx
()