После краха модуля - вследствии oops модуль совершенно невозможно удалить даже rmmod -f <modname>. Я эту тему поднимал в пятницу и результата конкретного не было. Виртуалку грузить ради маленького можуля и постоянно ребутить - роскош да и накладно по времени. Вот моё решение - были догадки в пятницу к вечеру, а в ночь с пятницы на субботу приснилось :-) и получилось. Всё распишу по пунктам:
1) Всё что нада, так это поработать со структурой модуля (в смысле struct module). #include <linux/module.h>.
2) Прошарившись по исходникам ядра понял, что модуль может быть выгружен когда он "живой" и никем не используется (refcnt). Последнее - можно упустить поскольку с помощью опции -f (rmmod) система модуль спокойно удаляет. Когда модуль делает oops он переходит в состояние "coming", а надо "live".
3) Переводим модуль из состояния "coming" в "live" (echo "live"> /sys/module... не проходит): struct module *m; m->state = 0;
4) Убиваем модуль с помощью rmmod -f <modname>.
Кто успел заметить - в коде неинициализированный указатель. Значет может снова быть упсик. Как же узнать аддресс структуры - всё просто (аж смешно, что мне эта идея приснилася с пятницы на субботу)? После второй попытки выяснилось - struct module *m = <знач. из /sys/module/<modname>/sections/.gnu.linkonce.this.module>.
Вся процедура в кратце - пишем ещё один модуль с следующим кодом:
#include <linux/module.h>
....
struct module *m = <см. выше>;
m->state = 0;
....
Макаем и запускаем модуль, после - rmmod -f <неубиваемій модуль>.
--------------------------------------
P.S. Была попытка простого обнуления счётчика использования модуля (refcnt) и последующее удаление, но абсурд - первый раз модуль удаляется, а после второго упса этого же модуля он никак не хочет удалятся. :-)
Ответ на:
комментарий
от Uncle_Theodore
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как удалить неудаляемый апплет? (2013)
- Форум [Debian] удалить неудаляемый пакет (2012)
- Форум неудаляемая папка (2012)
- Форум «Неудаляемые» файлы (2008)
- Форум Неудаляемые файлы... :-((( (2004)
- Форум Удалить модули, использующие данный (2016)
- Форум удалить модуль из автозагрузки (2015)
- Форум Удаление неудаляемых файлов (2015)
- Форум Неудаляемый файл «sense» (2004)
- Форум Как удалить полностью модуль ядра? (2019)