Взаимодействие с ядром Sysfs без применения в пользовательском пространстве - PullRequest
0 голосов
/ 01 ноября 2019

Я работаю над драйвером устройства Linux для части аппаратного обеспечения, которая зависит от некоторой конфигурации, специфичной для каждой реализации. При первой загрузке нам требуется приложение из пользовательского пространства, чтобы сгенерировать эти данные конфигурации в процессе калибровки. Естественно, я бы сохранял эти данные конфигурации в файле и читал этот файл, когда драйвер загружен или аппаратное обеспечение настроено. Однако чтение из файла из пространства ядра крайне нежелательно .

Все взаимодействие пользователя с пространством ядра должно происходить через интерфейс sysfs. Это немного смущает меня по двум причинам:

  1. Файловая система sysfs является виртуальной, поэтому каждый раз при загрузке ядра пользователю (или приложению из пользовательского пространства) приходится писать конфигурациюданные в файловую систему sysfs для ядра, чтобы использовать его.
  2. Функция проверки драйвера запускается задолго до того, как приложение из пользовательского пространства сможет писать в sysfs.

Верны ли мои предположения о sysfs? Как бы я мог получить эти данные конфигурации в ядро, не полагаясь на приложение из пользовательского пространства, чтобы записать их в sysfs?

1 Ответ

0 голосов
/ 10 ноября 2019

Если в вашем случае возможно использование виртуального диска, вы можете выполнить настройку в некотором скрипте на этом виртуальном диске, например, например:

# insmod module.ko
# cat config.file > /sys/sys_file

Такое решение позволит вам настроить конфигурацию довольно рано. модуль ядра.

...