Как читать, определенное устройство PCI регистрируются в Linux от CLI?

Для управления моей подсветкой я должен сделать следующее:

sudo setpci -s 00:02.1 F4.B=x

Это могло быть считано как:

Для устройства PCI с идентификатором 00:02.1, набор регистр F4 (только байт) к x.

Для выяснения значения, я хочу для x, я хотел бы считать его текущее значение (в сценарии, который я пишу). Как я делаю это?

Ранняя работа:

Это, кажется, домен lspci. Я попробовал

sudo lspci -x -s 00:02.1

но это не дает достаточно диапазона (не достигает регистра/адреса F4). Я могу сделать это с -xxx командная строка, как бы то ни было. Это дает мне дамп, в котором я вижу байт в F4, который я проверил, что могу управлять с setpci команда. Однако в руководстве говорится:

  -xxx   Show hexadecimal dump of the whole PCI configuration space. It is  available  only  to  root  as  several  PCI
         devices  crash when you try to read some parts of the config space (this behavior probably doesn't violate the
         PCI standard, but it's at least very stupid). However, such devices are rare, so you needn't worry much.

Таким образом, я скорее не поместил это в программу, которая работает автоматически как корень. Какой-либо способ просто считать значение для регистра F4? A getpci программа? A setpci флаг? Некоторое специальное предложение lspci отметьте я отсутствовал?

(Среда является Ремиксом Нетбука Ubuntu 9,04 (кармических) (32-разрядных) на нетбуке Samsung N140),

4

1 ответ

Вы хотите программу setpci. Похоже, что этот формат сделал бы то, что Вы хотите:

setpci -s 00:02.1 F4.B

Посмотрите man setpci: единственная разница для Вашей версии, Вы пытаетесь установить регистр, таким образом, Вы называете его и присваиваете значение ("F4.B=x"). Здесь, просто назовите его; не присваивайте значение.

Из страницы справочника:

Операции

Для запросов значения регистра конфигурации просто назовите его (или путем введения его имени или путем ввода адреса регистра с дополнительным.B.W или суффиксом.L, указывающим ширину регистра как байт, слово или длинное слово).

Для установки регистра запишите reg=values, где reg совпадает с Вами, использовал бы для запросов регистра, и значения разделенный запятыми список значений, которые Вы хотите записать запуску с данного адреса. Каждое значение, которое будет записано, может быть указано или как шестнадцатеричное число или как bits:mask пара, которая заставляет биты, соответствующие двоичным единицам в маске быть измененными на значения соответствующих битов в битах

9
ответ дан 07.12.2019, 19:25

Теги

Похожие вопросы