Как же cat может что-то вычитать, если вы выбросили из реализации операцию node_read ?PaiMeiPetrovich писал(а): ↑28 авг 2022, 16:03Да, я же специально, так как хотел проверить, сможет ли считывать cat)
Создание модуля ядра линукс и програмки к этому модулю.
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
-
- Писатель
- Сообщения: 36
- Зарегистрирован: 26 авг 2022, 20:56
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
inux Petrovich 5.15.0-46-generic #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
-
- Писатель
- Сообщения: 36
- Зарегистрирован: 26 авг 2022, 20:56
- Контактная информация:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Потому что вся информаци, описания, ссылки, публикации ... - относятся к предыдущим версиям ядра. И если произошли в этой части изменения - то можно на этм месте засесть на дни тупой и бессмысленной работы!
Если нужно на свежее ядро, то отлаживаем ... на сегодня, на 5.4...5.10, а только потом адаптируем на последнее.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Так 5.15, а не 5.19 - почему я и удивиился.PaiMeiPetrovich писал(а): ↑28 авг 2022, 16:16Petrovich 5.15.0-46-generic #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Заголовочный файлы нужно смотреть в первую очередь на: https://elixir.bootlin.com/linux/v5.9.1 ... lude/linux
И только в последнюю очередь в: /lib/modules/`uname -r`/build/include
-
- Писатель
- Сообщения: 36
- Зарегистрирован: 26 авг 2022, 20:56
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Ну да! Что скажите по поводу основного алгоритма? Я там немножко отредактировал запись, чтобы понятее было.
Вроде бы я понял, как это должно работать. У меня есть модуль, который при выполнении команды "sudo insmod hello.ko period=n" создает точку входа и начинает записывать строки в другой файл с периодом n. Далее, у нас имеется программа, которая при запуске, записывает новый период в точку входа. И, соответственно модуль должен считать это изменение в точке входа и изменить параметр периода уже у себя в коде. Для реализации этого, я вижу только один вариант:
В созданное "файловое имя" при инициализации модуля я записываю начальное значение периода.
Далее я запускаю мой цикл по записи константной строки в этот псевдофайл и, в теле цикла, я просто считываю этот период из этого файла ( с помощью kernel_read()??), перевожу строку в число ( тот же вопрос, kernel_atoi()??) и в функцию "msleep()" уже посылаю параметром это число.
Делаю я это для того, чтобы моментально отреагировать на изменения в точке входа, которые может произвести прикладное приложение (я же постоянно буду считывать информацию из этого файла)
Как вам идея? Не удивлюсь, если делать надо все по-другому:D
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Там можно и 5.19 посмотреть ... и даже 6.0 подсмотретьOlej писал(а): ↑28 авг 2022, 16:23Заголовочный файлы нужно смотреть в первую очередь на: https://elixir.bootlin.com/linux/v5.9.1 ... lude/linux
-
- Писатель
- Сообщения: 36
- Зарегистрирован: 26 авг 2022, 20:56
- Контактная информация:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Создание модуля ядра линукс и програмки к этому модулю.
Нет!PaiMeiPetrovich писал(а): ↑28 авг 2022, 16:23Далее я запускаю мой цикл по записи константной строки в этот псевдофайл и, в теле цикла, я просто считываю этот период из этого файла ( с помощью kernel_read()??), перевожу строку в число ( тот же вопрос, kernel_atoi()??) и в функцию "msleep()" уже посылаю параметром это число.
Делаю я это для того, чтобы моментально отреагировать на изменения в точке входа, которые может произвести прикладное приложение (я же постоянно буду считывать информацию из этого файла)
Никаких там циклов.
Записывает значение (ничего не читая) node_write.
А считывает значение, и возвращает читающему, node_read.
А цикл задержка-сообщение ... крутится само по себе независимо.
P.S. По хорошему, значение, записываемое-считываемое, нужно защищать от одновременного изменения node_write и цикла выводящего сообщения - примитивами синхронизации или атомарными операциями ... но это для тебя пока - высшая математика.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей