Какие у меня есть возможности для жесткой переустановки драйвера linux?
У меня проблема с моими подключенными через USB dvb-тюнерами. Время от времени они падают с трассировкой стека в журнале ядра и исчезают из диспетчера устройств. Приложение (tvheadend, которое работает в контейнере docker) замирает и больше не может быть убито, а контейнер docker не может выключиться, даже не будучи убитым.
Поскольку все это связано с нестабильным состоянием драйвера, мне интересно, возможно ли принудительно выгрузить или сбросить его, чтобы я мог снова запустить всю подсистему dvb без перезагрузки машины?
Драйверы в моем случае - si2157
и em28xx*
. Выгрузка с помощью modprobe -r
для всех модулей, имеющих отношение к dvb, не удается, поскольку устройства все еще используются замороженным процессом.
Выгрузку модулей можно выполнить с помощью rmmod -f
Обратите внимание на часть ниже, где написано DANGEROUS
. Это может не сработать, если оно полностью заблокировано. Лучшим подходом может быть попытка исправить драйверы, возможно, не до «рабочего» состояния, но, по крайней мере, до состояние «в случае сбоя можно выгрузить и повторить попытку»
Usage:
rmmod [options] modulename ...
Options:
-f, --force forces a module unload and may crash your
machine. This requires Forced Module Removal
option in your kernel. DANGEROUS
-s, --syslog print to syslog, not stderr
-v, --verbose enables more messages
-V, --version show version
-h, --help show this help