Возможно ли получить информацию для дерева устройств с помощью / sys работающего ядра?

Обычно для систем рук, деревья устройств поставляют аппаратную информацию в ядро ​​(Linux). Эти деревья устройств существуют как файлы dts (источник дерева устройства), которые скомпилированы и загружены в ядро. Проблема в том, что у меня нет доступа к такому файлу dts , даже к файлу dtb .

У меня есть доступ к /sys и /proc на машине, и я хотел спросить, позволит ли это «угадать правильные значения», которые будут использоваться в dts?

Кроме того, потенциальный ответ может дополнительно подчеркнуть аспект, если ответ на этот вопрос также зависит от того, был ли вначале использован интерфейс дерева устройств (т. dtb Был создан и предоставлен ядру dtb ) вместо некоторого взлома «мы просто отвлекаемся от ваниль и исправить ядро, чтобы решить проблему с информацией об устройстве для нашего ядра только «-решение?

2 Solutions collect form web for “Возможно ли получить информацию для дерева устройств с помощью / sys работающего ядра?”

/proc/device-tree или /sys/firmware/devicetree/base

Я думаю, что оба являются псевдонимами, /sys/firmware/devicetree/base вероятно, лучшим выбором после укрощения /proc .

Затем вы можете получить доступ к свойствам dts из файлов:

 hexdump /sys/firmware/devicetree/base/clk48mhz/clock-frequency 

Формат вывода для целых чисел является двоичным, поэтому требуется hexdump .

dtc -I fs

Получить полное дерево устройств из файловой системы:

 sudo apt-get install device-tree-compiler dtc -I fs -O dts /sys/firmware/devicetree/base 

выводит dts на stdout.

Из: https://unix.stackexchange.com/a/289630/32558

Я не уверен, правильно ли я вас понимаю.

Если вы находитесь в системе, загруженной с использованием dtb, ваше дерево устройств должно быть доступно внутри debugfs.

Вы также можете попробовать инструменты dtc от Pantelis Antoniou, они включают fdtdump и fdtget, которые печатают dts из blob.

Если у вас нет дерева устройств вообще и не загружалась загрузка из dtb, вам придется самому пройти машинный код и добавить все атрибуты и узлы устройства к вашим dts. Для такой загрузки нет «синтетического» дерева устройств. Отправной точкой будет аналогичная машина или родительская, а затем работающая система через систему.

  • Как узнать, какой параметр конфигурации ядра включен моим драйвером?
  • Нет сетевого интерфейса в QEMU
  • Как вы скомпилируете свое ядро ​​в системе RHEL6?
  • Почему необходимо скомпилировать все ядро ​​для простого патча?
  • Где в настройках Ubuntu SPI настроены?
  • Что предоставляют обновления для Linux?
  • Как начать писать драйверы?
  • В каком дистрибутиве используется ядро ​​3.19 или выше
  • Как мне вернуться к предыдущему ядру Ubuntu? (работает Ubuntu 16.04)
  • Загрузочный сектор ядра Linux (vmlinuz) в x86-системе с форматом bzImage
  • Как сократить время загрузки Linux?
  • Linux и Unix - лучшая ОС в мире.