Jump to content

    

Мониторинг PCIe-платы по PMBUS/SMBUS

Даже не знаю, есть ли смысл тут спрашивать, вопрос у меня больше софтовый, но тем не менее...

Хочется сделать плату PCIe в которой была бы возможность контролировать работу через служебный интерфейс, автоматически управлять серверными вентиляторами в зависимости от температуры и т.д. С нижним уровнем SMBUS/I2C все понятно, а вот дальше как-то мутно. Есть спецификация PMBUS, которая содержит в протоколе ряд команд для передачи данных о напряжении/температуре/вентиляторах и т.д. И оставляет довольно много для manufacturer-specific. В то же время, если смотреть исходники linux, там есть некая поддержка pmbus, но пилят драйвера под конкретные чипы.

 

Собственно вопросы:

1. Будет ли поддерживаться биосом (системным контроллером серверным) и ОС (Windows/linux) мое абстрактное устройство, если я реализую поддержку PMBUS по спецификации или потребуется пользовательская программа?

2. Если поставить стандартное устройство (или мимикрировать под него), например из списка https://github.com/torvalds/linux/tree/mast...ers/hwmon/pmbus , то повышаются ли шансы на автоматическую поддержку всяким ПО для мониторинга?

 

Пытался читать описание материнских плат серверных, там слово pmbus вообще отсутствует, про smbus один раз упоминается.

Share this post


Link to post
Share on other sites

По опыту не на всех материнских платах на слотах PCI-E/PCI-32 подключены линии SMBus, причем на настольных машинах чаще их нет. На серверах - как повезет.

 

А для управления в любом случае понадобится ПО + драйвера, т.к. ОС/BIOS оптимизированы на работу с устройствами (стандартными) на мат.плате и априори не рассчитаны на все то многообразие, которое может быть в нее воткнуто.

Share this post


Link to post
Share on other sites
А для управления в любом случае понадобится ПО + драйвера, т.к. ОС/BIOS оптимизированы на работу с устройствами (стандартными) на мат.плате и априори не рассчитаны на все то многообразие, которое может быть в нее воткнуто.

 

если только не заплатить конкретным разработчикам, конкретной материнки, для поддержки конкретного устройства

тогда часть работы по настройке ПО/Драйвера/ос/биос переходит на их плечи.

Но выйти на разработчика и заплатить денюшку, это , увы, только для ОЧЕНЬ богатых клиентов

 

Share this post


Link to post
Share on other sites
если только не заплатить конкретным разработчикам, конкретной материнки, для поддержки конкретного устройства

тогда часть работы по настройке ПО/Драйвера/ос/биос переходит на их плечи.

Но выйти на разработчика и заплатить денюшку, это , увы, только для ОЧЕНЬ богатых клиентов

 

С учетом количества доступных примеров и документации задачу написания такого ПО может сейчас решить студент на коленке. Я конечно утрирую, но по-моему не стоит упираться в поддержку BIOSом и платформой заказного железа, когда эта функциональность нужна только под ОС.

Share this post


Link to post
Share on other sites
Пытался читать описание материнских плат серверных, там слово pmbus вообще отсутствует, про smbus один раз упоминается.

Можно попробовать добраться к SMBUS через слоты памяти... SPD память там практически всегда присутствует.

 

Share this post


Link to post
Share on other sites
Хочется сделать плату PCIe в которой была бы возможность контролировать работу через служебный интерфейс, автоматически управлять серверными вентиляторами в зависимости от температуры и т.д. С нижним уровнем SMBUS/I2C все понятно, а вот дальше как-то мутно. Есть спецификация PMBUS, которая содержит в протоколе ряд команд для передачи данных о напряжении/температуре/вентиляторах и т.д. И оставляет довольно много для manufacturer-specific. В то же время, если смотреть исходники linux, там есть некая поддержка pmbus, но пилят драйвера под конкретные чипы.

я бы посоветовал организовать контроллер вентиляторов/термодатчиков прямо на своей плате - тем самым исключается перегрев при зависание внешнего софта. а интерфейс мониторинга/управления пробросить через канал PCIe и поддержать из своего драйвера: либо через управление своей внешней софтиной (типа как Nvidia control panel) либо через слой в класс "Hardware Monitoring support" (это в линуксе), тогда есть шанс быть поддержанным сторонним софтом для мониторинга. для windows движуха похожая, но видимо более затратная..

в общем, ищите инфу в классе видеокарт, там схожие условия

Share this post


Link to post
Share on other sites
С учетом количества доступных примеров и документации задачу написания такого ПО может сейчас решить студент на коленке. Я конечно утрирую, но по-моему не стоит упираться в поддержку BIOSом и платформой заказного железа, когда эта функциональность нужна только под ОС.

 

вот видите, какой вы разносторонний. А я только про ACPI таблицы + WMI, с их термозонами, и подумал.

 

Share this post


Link to post
Share on other sites
Можно попробовать добраться к SMBUS через слоты памяти... SPD память там практически всегда присутствует.

 

А с платой PCIe связываться через отдельный кабель с переходником на DIMM? По-моему это не самая лучшая идея, особенно с учетом небольшого числа слотов DIMM на некоторых мат.платах.

Share this post


Link to post
Share on other sites
но пилят драйвера под конкретные чипы.

 

потому как иной чип имеет по 6 штук I2C , и не факт что память, ЕС, GPIO expander и BMC физически висят все вместе на одном I2C.

Это как бог на душу, разработчику сервера, положит. И на какой из I2C кинут PMBus, тоже не ведомо.

Но подозреваю, что если PMBus всетаки реализован, то обязательно будет и разьем для подключению к нему на материнке, и описание оного в документации на сервер.

 

А "пилящие" драйвера под конкретный чип, скорее всего имеют схему сервера и потому знают что где искать.

Edited by Bios71

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now