LINUX.ORG.RU

Доступ к sysfs из модуля ядра

 ,


1

1

Привет всем!

Прошу подсказать, как из модуля ядра читать/писать уже созданные другими модулями атрибуты/файлы из sysfs. Гугл циклически переводит в тему «Create sysfs entry». Насколько я разобрался в вопросе, то необходимо получить указатели на kobjects (ksets?), определённые в ядре, и, возможно, использовать какие-то функции для выяснения взаимосвязей между ними. Поскольку программирование ядра для меня — вещь новая, то неплохо заодно порекомендовать доступные начинающему руководства поновее.

ЗЫ. Костыльное решение чтения/записи файла, как такового, я рассматривал, но оно нежелательно из-за архитектурной специфичности.


You are doing it wrong. Если тебе просто нужна информация, предоставленная в этой ФС (хз, что за ФС такая, но как я понял псевдофс), смотри её исходники и делай у себя так же, как и там. Если надо менять какой-то параметр, то аналогично - делай прям из ядра соответствующую низкоуровнивщену, а не пиши в псевдофс. Если же надо создать какие-то новые файлы для программ из юзерспейса — таки создавай новую запись или вообще свою фс. В общем скажи лучше, какова твоя цель.

anonymous ()
Ответ на: комментарий от anonymous

Если надо менять какой-то параметр, то аналогично - делай прям из ядра соответствующую низкоуровнивщену

Именно это я и пытаюсь сделать. Хочу, например, прочитать атрибуты из thermal_zone. Возиться с конкретикой каждого типа сенсора не имею времени/желания.

В общем скажи лучше, какова твоя цель.

Я уже достаточно подробно сказал в стартовом сообщении.

pS ()
Ответ на: комментарий от pS

Я уже достаточно подробно сказал в стартовом сообщении.

Читать из /sys в ядре - это не цель.

Хочу, например, прочитать атрибуты из thermal_zone.

А смотрел, как оно там реализовано?

anonymous ()
Ответ на: комментарий от anonymous

Читать из /sys в ядре - это не цель.

Почему бы и нет? Хочется воспользоваться стандартным ABI.

А смотрел, как оно там реализовано?

Смотрел. С околонулевым опытом ядерного программирования разобраться непросто.

pS ()

читать/писать уже созданные другими модулями атрибуты/файлы из sysfs.

другими модулями атрибуты/файлы из sysfs.

sysfs

You're doing it wrong. sysfs - интерфейс для userspace, куда драйвер может выставить свои крутилки. Внутри ядра нужно использовать внутриядерные интерфейсы для обращения к устройствам.

То, что эти интерфейсы зачастую сделаны хз как и имеют привычку раз в пару версий ломаться - дык «Stable api is non-sense» (C)

Dark_SavanT ★★★★★ ()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
  • Идёшь в больничку.
  • Ищешь проктолога.
  • Записываешь приемные часы.
  • Гуглишь, блджад.

Вот например что-то есть на второй странице: http://www.linuxjournal.com/article/8110

Зы: Мы тебя предупреждали. Геморрой будет.

anonymous ()
Ответ на: комментарий от pS

Во-первых, если stable API на уровне исходников — уже нонсенс, как ты собрался получить стабильный ABI? Во-вторых, про ABI там тоже написано.

proud_anon ★★★★★ ()
Ответ на: комментарий от anonymous

Блджад, когда люди начнут читать стартовый топик дальше заголовка?

Вот он: http://www.linux.org.ru/forum/development/11773482! Прочти там строку, начиная с «ЗЫ». Для Ъ:

ЗЫ. Костыльное решение чтения/записи файла, как такового, я рассматривал, но оно нежелательно из-за архитектурной специфичности.

Теперь ты веришь, что я не нуждаюсь в проктологе?

pS ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.