Как я могу прочитать напряжение, подаваемое с PMBUS или SMBus?

Вопрос или проблема

Я могу контролировать напряжение, подаваемое на компьютер. Как я могу прочитать это напряжение, используя терминал Linux? Я пробовал i2c и hwmon, но ничего не показало правильные значения.

Ответ или решение

Как считать напряжение с помощью PMBus или SMBus в Linux

Чтение напряжения, подаваемого на компоненты компьютера через интерфейсы PMBus (Power Management Bus) или SMBus (System Management Bus), предоставляет ценную информацию для мониторинга и управления питанием. В этой статье мы рассмотрим последовательные шаги, которые помогут вам правильно считывать данные о напряжении в системе Linux.

1. Подготовка окружения

Прежде всего, убедитесь, что ваш компьютер поддерживает PMBus или SMBus. Это можно сделать, проверив документацию к материнской плате или спецификации вашего устройства (например, БП или материнской платы). В Linux для работы с I2C и SMBus используются пакеты, такие как i2c-tools и lm-sensors. Убедитесь, что они установлены:

sudo apt-get update
sudo apt-get install i2c-tools lm-sensors

2. Проверка наличия I2C-устройств

Чтобы проверить доступные I2C-устройства, выполните команду:

i2cdetect -l

Эта команда покажет список доступных шины. Убедитесь, что вы можете увидеть вашу шину, к которой подключено устройство.

Затем используйте следующую команду, чтобы просмотреть устройства на конкретной шине (например, на шине 1):

i2cdetect 1

Это выдаст таблицу, в которой вы сможете увидеть адреса I2C-устройств на вашей шине, включая контроллеры PMBus и SMBus.

3. Чтение данных о напряжении

Если вы обнаружили адрес устройства (например, 0x5B), вы можете использовать команду i2cget для чтения напряжения. Сначала нужно узнать, какие регистры доступны у вашего устройства. Для этого обратитесь к спецификации PMBus или SMBus, соответствующей вашему оборудованию.

Для чтения данных с устройства используйте:

i2cget -y 1 0x5B <адрес регистров>

Обратите внимание, что -y используется для процедуры без подтверждения, 1 – это номер шины, 0x5B – адрес вашего устройства, а <адрес регистров> – адрес регистра, откуда вы хотите считать данные.

4. Использование lm-sensors

Если ваше устройство поддерживает мониторинг с помощью lm-sensors, вам нужно сначала сконфигурировать его:

sudo sensors-detect

Следуйте указаниям на экране и введите yes, когда будет предложено. После завершения процедуры проверьте доступные датчики:

sensors

Эта команда выведет значения, включая напряжение, если они поддерживаются.

5. Идентификация проблем

Если предыдущие шаги не дали нужных сведений, рассмотрите следующие моменты:

  • Проверьте, установлены ли все нужные драйвера для вашего оборудования.
  • Убедитесь, что права доступа к I2C-устройствам корректны. Для работы с I2C может потребоваться суперпользовательский доступ.
  • Иногда необходимо вручную загружать модули ядра для поддержки SMBus или I2C. Проверьте, установлены ли модули i2c-dev и i2c_bcm2835 (только для Raspberry Pi, например):
sudo modprobe i2c-dev
sudo modprobe i2c_bcm2835

Заключение

Чтение напряжения с помощью PMBus или SMBus в Linux требует учета нескольких факторов, включая правильную конфигурацию оборудования и программных компонентов. Следуя вышеописанным шагам и рекомендациям, вы сможете получить необходимые данные о напряжении, что существенно облегчит мониторинг и управление электропитанием вашего устройства.

Оцените материал
Добавить комментарий

Капча загружается...