Russian Qt Forum

Qt => Общие вопросы => Тема начата: BIS от Октябрь 11, 2016, 13:23



Название: Загрузка модуля ядра
Отправлено: BIS от Октябрь 11, 2016, 13:23
Есть проблема: загрузить (ну м потом выгрузить) модуль ядра из Qt-приложения. Как это делается ручками понятно : из терминала
 sudo insmod  имя_модуля параметры_запуска
sudo rmmod  имя_модуля
Вариант запуска при старте операционной системы не подходит, модуль должен функционировать только на время работы прикладного ПО и его параметры тоже зависят от одного из процессов из состава ПО.
Пробовала запускать insmod как процесс (класс QProcess, метод start). Компилятор ошибки не выдает, но модуль не загружается, хотя я запускаю прикладной процесс под sudo (прикладной процесс - это тот, из которого нужно загрузить модуль ядра).
Пробовала из прикладного процесса выполнять system(" sudo insmod имя_модуля параметры_запуска") - модуль загружается, но мой прикладной процесс слетает.
Есть мысли?


Название: Re: Загрузка модуля ядра
Отправлено: qate от Октябрь 11, 2016, 20:29
загружать модуль на старте ОС, при этом он будет неактивен
потом через fcntl активировать его



Название: Re: Загрузка модуля ядра
Отправлено: lit-uriy от Октябрь 14, 2016, 14:01
>>Компилятор ошибки не выдает
компилятор ошибки и не выдаст, т.к. для него одна текстовая строка ничем не лучше другой.

надо смотреть что возвращает  QProcess::error () и QProcess::state ()


Название: Re: Загрузка модуля ядра
Отправлено: break от Октябрь 23, 2016, 14:29
При запуске ручками команда sudo - просит ввести пароль - так же? Если из программы это делать скорее всего она не получает пароль.
Для проверки можно свою программу запустить из под sudo. Скорее всего дочерний вызов так же будет из под sudo. Второй вариант внести свой сервис в список sudoers, чтобы на него sudo пароль не спрашивало. Если в этом конечно дело.