2016-02-05 5 views
0

Я работаю над загружаемым модулем ядра Linux, и я ищу подходящий способ его настройки и способ загрузки/хранения двоичных данных при загрузке/выгрузке модуля. Модуль должен считывать данные конфигурации во время загрузки, но он может изменять данные и сохранять их во время выполнения. Я читал во многих местах, что чтение/запись в файл не рекомендуется, и я также читал, что sysfs можно использовать для этой цели. Могут ли быть бинарные данные конфигурации, хранящиеся в sysfs? Или существует более подходящее решение? Можете ли вы предоставить ссылку на какой-то пример или документ, где я могу найти некоторые сведения о том, как загружать/сохранять постоянную конфигурацию по модулю?Ядро Linux, концепция конфигурации и постоянное состояние

Питер

ответ

0

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

+0

спасибо. Это модуль netfilter, и ему требуется загрузка конфигурации без использования пользовательского пространства приложения и, если это возможно, без дополнительного демона. Например, какой-то сетевой интерфейс соединяется с машиной и модулем, улавливая это событие и загружая конфигурацию. Все это должно быть в состоянии работать в режиме ядра. – StackPeter

1

Возможно, вы можете использовать интерфейс прошивки в модуле. Он должен иметь возможность загружать двоичный файл, который включает ваши настройки с помощью request_firmware(..)

Я думаю, что это не обязательно, чтобы записать этот двоичный файл в аппаратное обеспечение ...?

+0

Спасибо Schnudi, я знал об этом, первый раз, когда вижу функцию request_firmware(). Я нашел это: https://www.kernel.org/doc/Documentation/firmware_class/README, но у меня есть сомнения использовать этот способ, потому что в нашем случае это не прошивка, а файл конфигурации. Ядро модуля, над которым я работаю, не является драйвером для аппаратного устройства. После установки продукта нет файла конфигурации, но он может быть создан как обычный файл в файловой системе или может быть импортирован с другого компьютера. – StackPeter

+0

После некоторого расследования я считаю, что это хороший способ загрузки двоичной конфигурации из файла. Тем не менее, я ищу другие способы и хочу их сравнить. – StackPeter

 Смежные вопросы

  • Нет связанных вопросов^_^