Нужно ли включать файлы DTS для драйвера? - PullRequest
0 голосов
/ 02 февраля 2019

Моя цель - портировать этот драйвер на текущее ядро ​​Linux.То, что я делал до сих пор ....

1) Скачал исходный код текущей версии ядра.

2) Скачал dev_parallel.c, Makefile, Kconfig для доработки кода.

3) С помощью команды "make" я смог скомпилировать драйвер без ошибок.

4) С помощью команды "make modules" я смог сгенерировать файл .o.

5) Используя команду "make modules_install", я смог получить файл .ko.

6) Используя команду "modprobe", я смог успешно загрузить модуль без каких-либо панических ошибок ядра.

Но я вижу, что для этого драйвера есть файл DTS, расположенный здесь .Я знаю, что dts-файлы скомпилированы в dtb-файлы, которые читаются ядром во время загрузки, и он автоматически загружает модуль.

Но нужно ли иметь этот DTS-файл, или просто команда modprobe выполнит работу дляя?

Драйвер, о котором я говорю, предназначен для электронного бумажного дисплея (EPD).

Итак, если я подключу EPD, а затем выполню modprobe для загрузки драйвера, он будет работать или будет работать?Мне нужен файл DTS для правильной работы?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Дерево устройств - это набор текстовых файлов в дереве исходных кодов ядра Linux, которые описывают аппаратное обеспечение определенной платформы.Они могут иметь два расширения:

  • *. Файлы DTSI являются исходными файлами дерева устройств.Они описывают аппаратные средства, которые являются общими для нескольких платформ, которые включают эти файлы в свои файлы * .dts.
  • *. Файлы dts являются исходными файлами дерева устройств.Они описывают одну конкретную платформу.

Обычно загружаются образ ядра и двоичный файл дерева устройств (низкоуровневое описание устройства, специфичное для вашего устройства). Ядро 3.8+ уже поддерживает дерево устройствдля всех платформ Armadeus, кроме APF9328.Большинство встроенных платформ не обеспечивают способ обнаружения имеющегося у них оборудования.Вы должны либо прибегнуть к догадкам (что нежизнеспособно), либо предоставить ядру Linux информацию о плате и периферийных устройствах. Файлы дерева устройств находятся в arch / your_device_arch / boot / dts.

0 голосов
/ 04 февраля 2019

Нет необходимости использовать файл DTS в драйвере, но по некоторым причинам, таким как определение выводов, настройка конфигурации и т. Д. Он должен получить параметры из файла DTS, чтобы пользователь не мог изменить драйвер и перекомпилировать его.

Кажется, что ваш пример не получает никаких параметров из файла DTS, но, с другой стороны, он жестко закодировал некоторые определения выводов, поэтому вам нужно позаботиться о них.Если вы хотите, чтобы он считывал параметры из файла DTS, вам следует переписать драйвер.Вы можете использовать this для драйвера и this для GPIO.Затем вы должны включить новый драйвер в текущий файл DTS и перекомпилировать его.

Для компиляции драйвера вы можете создать модуль ядра.Вы можете использовать этот урок для ознакомления с основами.

...