Modprobe vboxdrv astra linux

Модули ядра Linux

Как вы знаете из статьи что такое ядро Linux, ядро является монолитным. Это значит, что весь исполняемый код сосредоточен в одном файле. Такая архитектура имеет некоторые недостатки, например, невозможность установки новых драйверов без пересборки ядра. Но разработчики нашли решение и этой проблеме, добавив систему модулей.

Ядро Linux позволяет драйверам оборудования, файловых систем, и некоторым другим компонентам быть скомпилированными отдельно — как модули, а не как часть самого ядра. Таким образом, вы можете обновлять драйвера не пересобирая ядро, а также динамически расширять его функциональность. А еще это значит, что вы можете включить в ядре только самое необходимое, а все остальное подключать с помощью модулей. Это очень просто.

Модули ядра Linux

В этой статье мы рассмотрим модули ядра Linux, основы работы с ними, просмотр уже загруженных модулей, загрузку, установку и отключение модулей. А также полное отключение, добавление в черный список и добавление новых модулей ядра.

Модули ядра Linux собираются только под определенную версию ядра, есть способ запуска модуля независимо от версии ядра, если они совместимы с помощью dkms, но об этом мы поговорим позже.

Находятся все модули в папке /lib/modules/. Учитывая, что модули рассчитаны только для определенной версии ядра, то в этой папке создается отдельная подпапка, для каждой установленной в системе версии ядра. В этой папке находятся сами модули и дополнительные конфигурационные файлы, модули отсортированы по категориям, в зависимости от назначения например:

Перед тем как переходить к практике, давайте коротко рассмотрим основные команды для управления модулями.

  • lsmod — посмотреть загруженные модули
  • modinfo — информация о модуле
  • insmod — загрузить модуль
  • rmmod — удалить модуль

Работа с модулями ядра Linux выполняется, в основном, с помощью этих команд, но могут использовать и другие.

Все модули

Такая задача возникает нечасто, но если вы хотите посмотреть все установленные модули ядра Linux в системе, делается очень просто. Все модули расположены в папке /lib/modules, а поэтому очень просто вычислить их все одной командой, или даже просто зайти в папку файловым менеджером и посмотреть.

В Ubuntu команда будет выглядеть вот так:

dpkg -S *.ko | grep /lib/modules

Можно смастерить такую конструкцию с помощью find:

Можем искать только для текущего ядра:

find /lib/modules/$(uname -r) -name *.ko

Также, все модули записаны в конфигурационном файле /lib/modules/modules.aliases, поэтому мы можем просто посмотреть его содержимое:

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

find /lib/modules -name *.ko | grep vbox

Что загружено?

Все информация о загруженных модулях хранится в файле /proc/modules, мы можем ее вывести командой:

Читайте также:  Linux какие есть графические оболочки

Но для этого дела есть более цивилизованные методы. Это утилита lsmod и modinfo. Чтобы посмотреть загруженные модули ядра linux выполните:

Удобно проверять загружен ли модуль с помощью grep:

А более подробную информацию о каждом модуле можно получить с помощью утилиты modinfo:

Здесь вы можете увидеть файл модуля, его лицензию, автора и зависимости. Зависимости — это те модули, которые должны быть загружены для его нормальной работы. К сожалению, не для всех модулей доступно нормальное описание, но вы можете попробовать посмотреть описание зависимостей модуля.

Запуск модулей ядра

Загрузить модуль ядра Linux можно с помощью команд modprobe или insmod. Например, загрузим модуль vboxdrv

Чтобы загрузить модуль ядра linux с помощью insmod необходимо передать адрес файла модуля:

sudo insmod /lib/modules/4.1.20-11-default/weak-updates/misc/vboxdrv.ko

Напоминаю, что его можно узнать с помощью команды modinfo. Запуск модуля ядра Linux предпочтительно выполнять с помощью modprobe, поскольку эта команда не только находит файл модуля в файловой системе, но и загружает все его зависимости.

Удаление модулей ядра

Здесь аналогично две команды — modprobe, позволяет удалить модуль если ей передать опцию -r, а также есть команда rmmod. Начнем с modprobe:

Другая команда в этом случае выглядит немного проще:

Если вы получили ошибку во время выгрузки модуля, например: rmmod: ERROR: Module vboxdrv is in use by: vboxnetadp vboxnetflt, значит он еще используется другими модулями, и сначала нужно выгрузить их. В данном случае это vboxnetadp и vboxnetflt. Правильно отработавшая команда не должна ничего возвращать.

rmmod vboxnetadp vboxnetflt

Блокирование загрузки модулей

Иногда, во время загрузки системы для используемых нами устройств, загружаются не те модули ядра Linux, они либо не поддерживают нужную функциональность либо конфликтуют с другими модулями. Ярким примером можно назвать загрузку драйвера b43 вместо brcmsmac для беспроводных адаптеров Broadcom. Чтобы решить эту проблему вы можете добавлять модули в черный список. Для этого достаточно добавить одну строчку в файл /etc/modprobe.d/blacklist.conf:

sudo vi /etc/modprobe.d/blacklist.conf

Этот код добавит в черный список модуль b43.

Автозагрузка модулей

Кроме чёрного списка существует отдельный каталог, в котором можно настроить автоматическую загрузку модулей при старте системы. Это /etc/modules.load.d/. Этот каталог тоже содержит конфигурационные файлы с расширением *.conf, в которых перечислены все модули, которые надо загружать при старте системы. Для добавления своего модуля можно воспользоваться файлом /etc/modules.load.d/modules.conf. Например, добавим brcmsmac:

sudo vi /etc/modules.load.d/modules.conf

Установка модулей ядра Linux

Собранные для этой версии ядра модули вы можете просто скопировать в нужную папку, собственно, мы так и поступаем, когда собираем ядро из исходников. Но с проприетарными драйверами и другими внешними драйверами, не поставляемыми в комплекте с ядром дело обстоит иначе. Эти модули поддерживают несколько версий ядра, но для их установки используется специальная технология — DKMS (Dynamic Kernel Module Support). Причем модуль, установленный таким образом один раз, будет пересобираться для каждой новой версии ядра автоматически. Обычно такие модули поставляются в виде пакетов, которые устанавливаются как и все другие приложения пакетным менеджером. Ручная установка модулей с помощью dkms выходит за рамки данной статьи.

Читайте также:  Vmware tools vsphere linux

Выводы

Скорее всего, вам редко придется возиться с этими модулями. Но работа с модулями ядра будет необходима, если ваш дистрибутив не поддерживает аппаратное обеспечение вашего устройства из коробки, а также когда вы работаете со сторонним программным обеспечением, таким как VirtualBox, Vmware и т д. Но очень полезно знать как обращаться с модулями, когда вам нужно добавить или удалить их. Даже если у вас нет необходимости в этом сейчас, вы можете протестировать, как все работает, чтобы быть вооруженным потом.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

VBox Запускаю гостевую ОС ошибка

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) — The support driver is not installed. On linux, open returned ENOENT.
Что не так? VBox вместе с системой установлен. Как починить?

viv567

New member

Вместе с virtualbox (установленного deb-пакетом) необходимо установить расширение » Oracle_VM_VirtualBox_Extension» и набор системных драйверов «VBoxGuestAdditions.iso». Их можно скачать на оф. сайте Oracle для соответствующей ОС.

mfp

New member

Победить ошибку так и не смог. Установил последнюю версию VBOX с сайта производителя. Теперь такая ошибка
Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) — The support driver is not installed. On linux, open returned ENOENT.

Команда от рута /sbin/vboxconfig не помогла

viv567

New member

Нужно установить пакет linux-headers-. для вашего ядра. Это пакет с заголовками ядра. Он есть на диске разработчика.

inpmdy

New member

Да, каждый раз так после обновления ядра. Переустанавливаю virtualbox-dkms и перезагружаю. Естественно, для компиляции, linux-headers так-же должны быть установлены

Olej

New member

Если заголовочные файлы ядра установлены (обновились), то с VirtualBox (из их родного репозитория установленного!) ничего вручную делать не надо при обновлениях ядра. На то оно и DKMS:

olej@astra:~$ uname -a Linux astra 4.19.0-1-generic #astra1 SMP Wed Mar 20 12:59:21 UTC 2019 x86_64 GNU/Linux
olej@astra:~$ VirtualBox --help | head -n3 Oracle VM VirtualBox Manager 5.2.12_AstraCE (C) 2005-2018 Oracle Corporation All rights reserved.
olej@astra:~$ lsmod | grep vb vboxvideo 36864 0 vboxpci 24576 0 vboxnetadp 28672 0 vboxnetflt 28672 0 vboxdrv 475136 3 vboxpci,vboxnetadp,vboxnetflt vboxguest 339968 5 ttm 106496 2 vmwgfx,vboxvideo drm_kms_helper 180224 2 vmwgfx,vboxvideo drm 471040 7 vmwgfx,drm_kms_helper,vboxvideo,ttm

Olej

New member

Победить ошибку так и не смог. Установил последнюю версию VBOX с сайта производителя. Теперь такая ошибка
Kernel driver not installed (rc=-1908)

У VirtualBox (на сайте Oracle) существуют несколько линий версий, развиваемых параллельно и одновременно. На сегодня это версии 5.1.Х, 5.2.Х, 6.0.Х — они отличаются используемым способом загрузки модулей ядра. Как только вы начинаете играться с инсталляциями из разных линий версий (одну снесёте — другую устанавливаете) — у вас будет возникать вот такая тяжёлая ошибка с невозможностью загрузить модули ядра — не выгружены модули предыдущей снесённой версии.
Как делу помочь?
1. не играться со «смесью» инсталляций: из своего репозитория и из Oracle — либо одно, либо другое!
2 если вы удаляете VirtualBox, то а). обязательно перезагрузить Linux после удаления, б). убедиться (lsmod) что в системе нет модулей вида vb*, в). только после этого устанавливать новую версию.

Читайте также:  Консоль linux основы работы

P.S. В рамках одной линии версий (5.1.Х, 5.2.Х, 6.0.Х) версии VirtualBox обновляются без таких проблем.

larinnik

New member

аналогичная проблема, поэтому не стал создавать новую тему:
astra 1.6 smolensk, свежеустановленная по дефолту
делал по вики именно эту версию virtualbox
мои действия
————-
sudo apt install linux-headers-generic
sudo dpkg -i /home/user/Desktop/virtualbox-5.2_5.2.12-122591~Debian~stretch_amd64.deb

Для установки пакета расширений в сети, не имеющей подключения к Интернет, следует скачать файл пакета, VirtualBox 5.2.12: Oracle_VM_VirtualBox_Extension_Pack-5.2.12.vbox-extpack

Запустить VirtualBox.
Выбрать в меню VirtualBox «Файл» — «Настройки» — «Плагины».
Для добавления нового плагина нажать на кнопку с зелёным плюсом.
Найти и выбрать ранее скачанный файл, и нажать кнопку «Открыть».
Подтвердить согласие с установкой, прокрутить лицензионное соглашение до конца, подтвердить свой согласие с ним.
Ввести пароль администратора.
После этого пакет должен установиться.
———————
всё прошло без ошибок

но при запуске гостевой ОС ошибка:
——

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) — The support driver is not installed. On linux, open returned ENOENT.
——

я не ахти спец в линуксе, можно на пальцах, пожалуйста, что делать дальше?

Источник

Как исправить ошибку запуска VirtualBox VM в Linux

Как исправить ошибку запуска VirtualBox VM в Linux

Чаще всего ошибка запуска виртуальной машины (ошибка: kernel driver not installed rc -1908) в VirtualBox Linux, заключается в том, что в системе не установлен драйвер ядра VirtualBox.

Т.к. заголовки ядра Linux позволяют создавать собственные модули (драйвер ядра VirtualBox один из таких модулей), нам нужно проверить их наличие в системе и при необходимости доустановить их.
Если они установлены, то система проигнорирует эту команду установки.

sudo apt install linux-headers-$(uname -r)
sudo apt-get install linux-headers-$(uname -r)
sudo pacman -S linux-headers
sudo dnf install "kernel-devel-uname-r == $(uname -r)"
sudo zypper install kernel-devel

Следующая команда переустановит модуль драйвера ядра VirtualBox.
Мы полностью переустановим этот пакет модуля VirtualBox.

sudo apt install virtualbox-dkms --reinstall
sudo apt install virtualbox-dkms --reinstall
sudo pacman -R virtualbox-host-modules-arch sudo pacman -S virtualbox-host-modules-arch
sudo dnf remove VirtualBox akmod-VirtualBox sudo dnf install VirtualBox akmod-VirtualBox
sudo zypper remove virtualbox-kmp-default sudo zypper install virtualbox-kmp-default

Следующая команда настроит и загрузит модуль ядра VirtualBox.

Так же можно перезагрузить компьютер, чтобы загрузить драйвер ядра.

Источник

Оцените статью
Adblock
detector