Команда Modprobe не найдена в Debian

Обновлено: 04.07.2024

Поскольку команда modprobe может добавлять или удалять более одного модуля из-за того, что модули имеют зависимости, нам нужен способ указать, какие параметры следует использовать с этими модулями. Все файлы в каталоге /etc/modprobe.d, которые заканчиваются расширением .conf, указывают эти параметры по мере необходимости. Их также можно использовать для создания удобных псевдонимов: альтернативных имен для модуля, или они могут полностью переопределить обычное поведение modprobe для тех, у кого есть особые требования (например, вставка более одного модуля).

Обратите внимание, что в именах модулей и псевдонимов (как и в именах других модулей) может быть - или _: оба они взаимозаменяемы во всех командах модуля, поскольку преобразование подчеркивания происходит автоматически.

псевдоним шаблон имя модуля

Это позволяет дать модулю альтернативные имена. Например: «псевдоним my-mod real_long_modulename» означает, что вы можете использовать «modprobe my-mod» вместо «modprobe real_long_modulename». Вы также можете использовать подстановочные знаки в стиле оболочки, поэтому «псевдоним my-mod* действительно_длинное_имя_модуля» означает, что «modprobe my-mod-something» имеет тот же эффект. У вас не может быть псевдонимов для других псевдонимов (это безумие), но у псевдонимов могут быть опции, которые будут добавлены к любым другим опциям.

Обратите внимание, что модули также могут содержать собственные псевдонимы, которые вы можете увидеть с помощью modinfo. Эти псевдонимы используются в крайнем случае (т. е. если в конфигурации нет реального модуля, команды установки, удаления или псевдонима).

черный список имя модуля

Модули могут содержать собственные псевдонимы: обычно это псевдонимы, описывающие устройства, которые они поддерживают, например "pci:123. ". Эти «внутренние» псевдонимы могут быть переопределены обычными ключевыми словами «псевдоним», но бывают случаи, когда два или более модулей поддерживают одни и те же устройства, или модуль неверно утверждает, что поддерживает устройство, которое на самом деле не поддерживает: ключевое слово «черный список» указывает, что все внутренних псевдонимов этого конкретного модуля следует игнорировать.

установить имя_модуля команда.

Эта команда указывает modprobe выполнить вашу команду вместо того, чтобы вставлять модуль в ядро, как обычно. Команда может быть любой командой оболочки: это позволяет вам выполнять любую сложную обработку, которую вы пожелаете. Например, если модуль «fred» работает лучше с уже установленным модулем «barney» (но он не зависит от него, поэтому modprobe не загрузит его автоматически), вы можете сказать «install fred /sbin/modprobe barney». ; /sbin/modprobe --ignore-install fred", что сделает то, что вы хотели. Обратите внимание на --ignore-install, который останавливает второй modprobe от повторного запуска той же команды установки. См. также удаление ниже.

Долгосрочное будущее этой команды как решения проблемы обеспечения дополнительных зависимостей модулей не гарантировано, и предполагается заменить эту команду предупреждением о ее возможном удалении или устаревании в какой-то момент в будущем выпуске. Его использование усложняет автоматическое определение зависимостей модулей утилитами дистрибутива, такими как mkinitrd (поскольку им теперь нужно каким-то образом интерпретировать действия команд установки. В идеальном мире модули предоставляли бы всю информацию о зависимостях без использования этой команды и ведутся работы по реализации поддержки мягких зависимостей в ядре Linux.

Если вы используете в команде строку "$CMDLINE_OPTS", она будет заменена любыми параметрами, указанными в командной строке modprobe. Это может быть полезно, поскольку пользователи ожидают, что «modprobe fred opt=1» передаст модулю аргумент «opt=1», даже если в файле конфигурации есть команда установки. Таким образом, наш приведенный выше пример становится «установить fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS»

options имя модуля option.

Эта команда позволяет вам добавлять параметры к модулю modulename (который может быть псевдонимом) каждый раз, когда он вставляется в ядро: либо напрямую (используя modprobe modulename ) или потому, что вставляемый модуль зависит от этого модуля.

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

удалить имя_модуля команда.

Команда softdep позволяет указать программные или необязательные зависимости модуля. modulename можно использовать без установки этих дополнительных модулей, но обычно с отсутствующими некоторыми функциями. Например, драйвер адаптера главной шины хранилища может потребовать загрузки другого модуля для использования функций управления.

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

Примечание: если есть команды установки или удаления с одним и тем же аргументом modulename, softdep имеет приоритет.

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

Эта страница руководства изначально защищена авторским правом, Расти Рассел, корпорация IBM, 2004 г. Поддерживается Джоном Мастерсом и другими.

Мой шелл-баш дает мне баш : . : ошибка command not found, и я не знаю, как начать ее решать. Также я понятия не имел, что нужно выбирать теги ведьм, кроме «bash» «Debian».

Я root, и эти две программы уже установлены. ОС — Debian Buster, только что установленная. В процессе установки я отключил все опции на этапе настройки Tasksel. Я думаю, что это больше связано с моей оболочкой. Позже я использую для установки потрясающих мозаичных окон.

Вот два примера: Сначала я попытался запустить программу. Во-вторых, я проверяю, установлена ​​ли программа.

root @machine vs root @adrien хорошая попытка скрыть ваше имя хоста, но вам нужно охватить все экземпляры :) или это произошло само по себе?

4 ответа 4

Обратите внимание, что Debian переключился на другую ветвь команды su в Debian 10 ("Buster"). В отличие от предыдущих версий Debian, он больше не добавляет автоматически /sbin , /usr/sbin и /usr/local/sbin в ваш $PATH автоматически, когда вы используете простой su, чтобы стать пользователем root.

Многих это удивило.

Вместо этого вы можете использовать su - для явной полной повторной инициализации среды при переключении на пользователя root: это вызовет ошибку . Каталоги /sbin должны быть включены в $PATH .

Кроме того, вы можете автоматизировать добавление каталогов в $PATH всякий раз, когда вы становитесь пользователем root, как это предлагается в ответе GAD3R.

(Примечание: правило Stack Exchange заключается в том, чтобы задавать только один вопрос в каждом сообщении с вопросом. Подобные множественные вопросы затруднят поиск подходящих ответов другим людям с той же проблемой.)

Это оболочка совместимости, которая позволяет вам по-прежнему использовать классические команды выключения/перезагрузки в стиле SysV, которые, возможно, глубоко укоренились в мышечной памяти многих давних администраторов Linux/Unix.

В Debian Buster это нормально, если у вас установлен пакет systemd-sysv. Существует символическая ссылка /sbin/reboot -> /bin/systemctl , поэтому, если вы использовали su - или sudo -i, чтобы стать пользователем root, или каким-либо другим способом добавили /sbin в свой $PATH, вы можете просто запустить reboot . Команда systemctl проверит свой $0 и увидит, что он вызывается как «перезагрузка», и сделает именно это, чтобы сохранить совместимость со старой командой перезагрузки в стиле SysV. Команды halt , shutdown и poweroff работают одинаково.

Проверьте $PATH и посмотрите, есть ли в нем эти программы.

должен показывать ваш системный путь поиска. Сравните с чем

сообщит вам полный/абсолютный путь к программе.

Если вы не можете найти его таким образом, попробуйте:

Modprobe находится в /sbin (или может быть в /usr/sbin ) и является символической ссылкой на /bin/kmod . Если у вас нет пути к каталогу, в котором находится modprobe, вы не сможете его использовать, если не укажете полный путь, например $ /sbin/modprobe .

Вы можете отправить результат $ set | grep PATH, и мы можем увидеть, что с ним не так.

Поскольку ваш выходной PATH указывает, что в нем нет /sbin и /usr/sbin, вы должны добавить его в свой $HOME/.bashrc . Чтобы проверить это, сначала используйте:

и проверьте, работает ли он. Если это так, добавьте его в $HOME/.bashrc, и если вы хотите, чтобы он был доступен для каждого пользователя, добавьте его в /etc/profile, как предложил @GAD3R.

Ядро Linux имеет модульную структуру. Функциональность расширяется с помощью модулей или драйверов. Используйте команду modprobe для добавления или удаления модулей в Linux. Команда работает разумно и автоматически добавляет любые зависимые модули.

Ядро использует modprobe для запроса модулей. Команда modprobe выполняет поиск необходимых драйверов в каталогах стандартных установленных модулей.

В этой статье объясняется, как использовать modprobe для добавления или удаления модулей ядра.

Как использовать команду modprobe в Linux

  • Система под управлением Linux
  • Доступ к терминалу/командной строке
  • Учетная запись пользователя с правами sudo или root

Объяснение синтаксиса команды modprobe

Все команды modprobe требуют прав sudo. Общий синтаксис для использования modprobe:

По умолчанию команда modprobe добавляет модуль.

Для нескольких модулей добавьте параметр -a или -all :

Параметры команды modprobe

Доступные параметры команды modprobe разделены на категории в зависимости от их варианта использования.

Параметры управления

Параметры управления позволяют обрабатывать различные ситуации с модулями при вставке или удалении модулей с помощью команды modprobe.

Терминальный вывод доступных модулей с помощью команды find

Примечание. Рассмотрите возможность удаления старых версий ядра. Ознакомьтесь с нашим руководством по удалению старых ядер в Ubuntu.

Добавление модулей ядра с помощью команды modprobe

<р>1. Добавьте модуль с помощью команды modprobe:

 Добавление модуля с помощью команды modprobe в терминале

<р>2. Подтвердите загруженный модуль:

Вывод выводит ошибку, поскольку модуль уже находится в ядре.

Терминальный вывод добавления модуля с modprobe --first-time error

В качестве альтернативы найдите модуль в списке загруженных активных модулей с помощью lmod :

 Терминальный вывод модуля lsmod и grep

Удаление модулей ядра с помощью команды modprobe

<р>1. Удалите модуль с помощью команды modprobe -r:

<р>2. Подтвердите удаление модуля, запустив:

Появляется сообщение об ошибке, говорящее о том, что модуль отсутствует в ядре:

Терминальный вывод удаления модуля с помощью modprobe -r --first-time error

В качестве альтернативы проверьте список загруженных активных модулей:

Удаленный модуль отсутствует в списке загруженных модулей.

Ядро Linux создано модульным и легко расширяемым. Обязательно изучите модули, которые вы хотите добавить или удалить, чтобы избежать проблем с ядром.

Для дальнейшего чтения следуйте нашему руководству по сборке ядра Linux с нуля.

Милика Данчук — начинающий технический писатель в phoenixNAP и специалист по работе с данными. Ее образование в области электротехники и вычислительной техники, а также ее опыт преподавания дают ей уникальный набор навыков — способность легко объяснять сложные технические концепции с помощью своего контента.

Все дистрибутивы Linux поставляются с предустановленным ядром. Однако они обычно устаревают. Следуйте этому.

Linux выпустила свою последнюю версию ядра LTS, ядро ​​Linux 5.7. Ознакомьтесь со всеми новыми функциями и.

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

Ядро Linux очень похоже на центральный мозг операционной системы. Хотя это с открытым исходным кодом - смысл.

В вашем ядре есть поддержка модулей, но у вас не установлен modprobe.
Настоятельно рекомендуется установить modprobe (обычно из kmod).
Ваше ядро ​​поддерживает модули, но у вас нет modinfo установлен.
Настоятельно рекомендуется установить modinfo (обычно из kmod).
Предупреждение: обнаружение драйвера без modinfo может привести к неточным результатам.

Популярные темы в Linux в целом

GerardBeekmans

Этот человек является проверенным специалистом

Джерард Бикманс

  • отметить 36 лучших ответов
  • thumb_up — 109 благодарных голосов

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

Например, в системах Ubuntu пакет kmod предоставляет modinfo, modprobe и другие соответствующие инструменты.

Вы бы установили его с помощью:

В других дистрибутивах будут другие методы.

2 ответа

GerardBeekmans

Этот человек является проверенным специалистом

Джерард Бикманс

  • отметить 36 лучших ответов
  • thumb_up — 109 благодарных голосов

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

Например, в системах Ubuntu пакет kmod предоставляет modinfo, modprobe и другие соответствующие инструменты.

Вы бы установили его с помощью:

В других дистрибутивах будут другие методы.

Я вижу, что вы упомянули Chrome OS, а на Chromebook, использующем виртуальную машину терминала, отсутствовала команда modprobe. «sudo apt install kmod» работал для установки команды, а «sudo modprobe -h» показывает все параметры и т. д., и так оно и есть. Хотите знать, почему вам нужно выполнить modprobe в Chrome OS?

Эта тема заблокирована администратором и больше не открыта для комментариев.

Чтобы продолжить это обсуждение, задайте новый вопрос.

Эргономичное оборудование

Кто в США должен нести ответственность за предоставление эргономичного оборудования по запросу сотрудника? Это ИТ, поскольку ИТ предоставляет клавиатуры и мыши? Должен ли это быть HR, поскольку он эргономичен и несет потенциальную ответственность, если НЕ предоставляется? Должен ли это быть тот отдел.

Приветствие Xfinity (личный домашний Интернет)

Во-первых, мне больно. Я мог бы произнести речь «Он ставит передо мной задачу», как Хан в «Звездном пути 2: Гнев Хана». Просто замените «Они» на «Он». Но они сделали то, чего я хотел годами (десятилетиями?), так что, думаю, это должно быть признано. Ю.

Щелкни! SATCOM Threat, IE End of Life, Mac с кирпичами, Planet 9, Lego Delorean

Ваша ежедневная доза технических новостей. Вы должны это услышать. ФБР и CISA предупреждают об угрозах для сетей спутниковой связи Согласно новому предупреждению ФБР и CISA спутниковые сети находятся в зоне высокого риска. Согласно ZDNet.

Какими сверхспособностями вы хотели бы обладать?

Что может сделать ИТ-специалист со сверхспособностями? В каких ИТ-задачах вы бы их использовали и как?

Можно ли подключить интерфейс управления коммутатора к одному из его собственных портов коммутатора?

Недавно я понял, что у меня есть конфигурация коммутатора с непреднамеренным потенциальным побочным эффектом. У меня есть Aruba 6300F с несколькими виртуальными локальными сетями. Он работает в режиме уровня 3. Это работает следующим образом: я просто «включаю» функции маршрутизатора, а затем.

Читайте также: