Как выгрузить используемый модуль ядра?

Я следую этому руководству, чтобы заставить мой кард-ридер работать: http://ubuntuforums.org/showthread.php?t=636867

Однако я не могу выгрузить свой модуль sdhci:

sudo modprobe -rv sdhci mmc_core mmc_blockmodprobe: FATAL: Module sdhci is in use.

Как мне следует поступить?

Во-первых, выясните, какие другие модули используют этот модуль sdhci:

lsmod | grep sdhci

Вы получите список, подобный этому:

module size used_by

Попробуйте выгрузить эти модули (used_by) до или вместе с модулем, который вы хотите выгрузить:

sudo modprobe -r <module found from lsmod> <module you want to remove>

Если вы хотите запретить загрузку модуля при следующей загрузке, добавьте его в черный список:

echo -e "sdhci\n" | sudo tee -a /etc/modprobe.d/blacklist.conf

Еще одно место, на которое стоит обратить внимание, - это "lsof" помимо выгрузки зависимых модулей.

# lsof | grep < соответствующая строка для модуля >

Здесь должен быть список файлов, которые открываются с помощью модуля. Попробуйте убить те процессы, которые открыли файлы, и проверьте, что количество ссылок на модуль уменьшается из-за "lsmod" команда.

С помощью каких других модулей используется sdhci?

Это то, что я не знаю, как выяснить

lsmod | grep sdhci

выгрузка sdhci_pci исправила это. Спасибо! Хочешь записать это в ответ?