LINUX.ORG.RU
решено ФорумAdmin

Как удалить полностью модуль ядра?

 , ,


2

1

Привет!

Перерыл гугл, ответа не нашел. Описание удаление модуля в документациях и howto это как оказывается совсем не удаление, а отключение/выключение его в ядре. Мне же, необходимо удалить его полностью из системы.

Есть модуль vmnet, который скомпилировал и установил его VMWare. Хочу вычистить этот модуль из системы вручную. Что делаю:

  • Отключаю модуль в ядре:
$ sudo modprobe -r vmnet
  • Модуль выгрузился, дполнительно проверяю, что в выводе его нет:
$ lsmod | grep vmnet
  • Но в системе он всё еще есть:
$ modinfo vmnet
filename:       /lib/modules/4.20.11-1-MANJARO/misc/vmnet.ko
supported:      external
license:        GPL v2
description:    VMware Virtual Networking Driver.
author:         VMware, Inc.
srcversion:     118E4A26C0F7927B72EE07E
depends:        
retpoline:      Y
name:           vmnet
vermagic:       4.20.11-1-MANJARO SMP preempt mod_unload modversions 
parm:           vnet_max_qlen:Maximum queue length of the vmnet, default is 1024, maximum is 1024 (uint)

Если попытаться удалить файл /lib/modules/4.20.11-1-MANJARO/misc/vmnet.ko, то при следующем запросе modinfo выдаст ошибку:

$ modinfo vmnet
filename:       /lib/modules/4.20.11-1-MANJARO/misc/vmnet.ko
modinfo: ERROR: could not get modinfo from 'vmnet': No such file or directory

Подозреваю, что есть какая-то база данных, репозиторий где устанавливаются (прописываются) модули. Как корректно удалить модуль?


Попробуй выполнить depmod.

есть какая-то база данных, репозиторий где устанавливаются (прописываются) модули

Она в файлах /lib/modules/$(uname -r)/modules*. Руками менять их не надо.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Спасибо! Помогло!

P.S. После удаления файла /lib/modules/4.20.11-1-MANJARO/misc/vmnet.ko Запустил команду sudo depmod которая видимо перестроила/атуализировала БД модулей в файлах /lib/modules/4.20.11-1-MANJARO/modules.

dva20
() автор топика
Ответ на: комментарий от Deleted

Вероятно использует, но на Manjaro Linux родной VMWare installer/uninstaller не заработал, вываливался в ошибку. Связано было с отсутствующей библиотекой libncursesw.so.5 в дистрибутиве. Вместо того, чтобы разбираться с Python’ом, решил вместо vmware-installer самостоятельно подчищать за ним и упаковал всё в пакет с помощью арчевого PKGBUILD.

Но позже, обнаружил, что достаточно создать симлинки для библиотек

sudo ln -s /lib/libncursesw.so.6.1 /lib/libncursesw.so.5
sudo ln -s /lib/libncursesw.so.6 /lib/libtinfo.so.5

и vmware-installer не выдает ошибок и корректно работает, за собою подчищает установленные модули ядра.

Вместо этого кода:

  # Unloading kernel modules
  for mod in vmnet vmmon vmw_vsock_vmci_transport vmw_vmci vsock; do
    modprobe -r $mod > /dev/null; # 2>&1
  done

  # Deleting kernel modules compiled VMWare Player
  for mod in vmnet vmmon; do
    mod_filename=$(modinfo $mod | grep filename | sed 's/^filename: *//')
    rm "$mod_filename"
    rmdir --ignore-fail-on-non-empty "$(dirname $mod_filename)" # Try remove empty dir
  done

  depmod # Rebuilding modules database (/lib/midules/$(uname -r)/modules*) after deleting files

сейчас вызываю просто деинсталлятор, который делает тоже самое (и не только), что и выше код:

/usr/bin/vmware-installer -u vmware-player
dva20
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.