Для кото-то данная проблема может показаться пустяком, но я бьюсь над ней уже не меньше месяца.
Суть такова - загружаю модуль ядра, в нем при старте вызываю kern_execve на файл - успешно вызывается бинарник, отрабатывает, затем модуль дозагружается. Но мне надо параллельное выполнение, чтобы модуль не ждать завершения исполнения бинарника.
Делаю так - загружаю бинарник, в нем при старте вызывают kthread_create, следом в функции потомка вызываю kern_execve - получаю ошибку errno 2 "нет такого файла", т.е. моего бинарника. Почему? Я перепробывал много - менял флаги процесса потомка; отлаживал запуск kthread_create дна; игрался с сруктурами родителя и потомка... - безуспешно, максимум чего получалось достичь - сис вызовы возвращали 0, т.е. успех, а вызова все равно не происходил.
Суть такова - загружаю модуль ядра, в нем при старте вызываю kern_execve на файл - успешно вызывается бинарник, отрабатывает, затем модуль дозагружается. Но мне надо параллельное выполнение, чтобы модуль не ждать завершения исполнения бинарника.
Делаю так - загружаю бинарник, в нем при старте вызывают kthread_create, следом в функции потомка вызываю kern_execve - получаю ошибку errno 2 "нет такого файла", т.е. моего бинарника. Почему? Я перепробывал много - менял флаги процесса потомка; отлаживал запуск kthread_create дна; игрался с сруктурами родителя и потомка... - безуспешно, максимум чего получалось достичь - сис вызовы возвращали 0, т.е. успех, а вызова все равно не происходил.