Вопрос или проблема
Я могу контролировать напряжение, подаваемое на компьютер. Как я могу прочитать это напряжение, используя терминал 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 требует учета нескольких факторов, включая правильную конфигурацию оборудования и программных компонентов. Следуя вышеописанным шагам и рекомендациям, вы сможете получить необходимые данные о напряжении, что существенно облегчит мониторинг и управление электропитанием вашего устройства.