Как быть, если ядро не поддерживает устройство? И зачем нужны команды ручной загрузки-выгрузки модулей??

Linux unix freebsd GNU/Linux

Как я понимаю, чтобы linux начал работать с каким-либо устройством, оно должно во-первых поддерживаться ядром, во-вторых, должен существовать соответствующий модуль. Отсюда следует, что если в компе что-то не работает, то либо надо ждать новое ядро, либо искать в настройках ядра, где поддержку этого устройства можно включить, после чего пересобирать ядро.. Т.е., например, нельзя просто ограничиться поиском подходящего модуля..(как в windows)?
И второй вопрос: зачем команды загрузки модулей, если все модули для поддерживаемых ядром устройств и так умеют загружаться автоматически! ???

Примечание:
Спасибо eugene pazhitnov, но я все-таки не вполне понял. Из статьи "http://www.linuxcenter.ru/lib/books/kostromin/gl_09_01.phtml" следует, что программный код драйвера может быть в ядре, в подключаемом к ядру модулю (как я понимаю, ядро об этом модуле должно что-то знать...) или в "специальной утилите, предназначенной для управления данным устройством" (см. статью).
В последнем случае получается, что поддержку устройства можно добавить не внося изменений в ядро!
Т.е. суть моего вопроса: если ядро чего-то не поддерживает, то можно ли какими-либо путями добиться работы этого устройства в Linux??? И насколько решает эту проблему NDISwrapper ???
Ответы:
Не совсем. Чтобы ядро работало с устройством, необходима поддержка ядром этого устройства. При этом соответствующий код может быть либо вкопмилирован в ядро, либо наличествовать в виде модуля. То есть, или одно, или другое (это по первому предложению).
Чтобы Linux работал с устройством, оно должно поддерживаться ядром. Существование модуля не обязательно, т.к. большинство модулей можно вкомпилировать в ядро.
Пересобрать ядро с поддержкой нового устройства можно, взяв файл конфигурации текущего ядра. Но это сложно, если никогда не собирали ядро.
Ответ на второй вопрос: Автоматическая загрузка модулей может и не поддерживаться ядром. Более того, модули тоже могут зависать. Именно для этого и нужна ручная загрузка/выгрузка ядра.
И насколько решает эту проблему NDISwrapper ???
NDISwrapper - это модуль ядра. То есть, придётся перекомпилировать ядро, если будете работать с ним.
В вике очень доходчиво разжевано что такое NDISwrapper
Можно добится работы устройства неподдерживаемого ядром собственными силами. Вы сильны в программировании на уровне железа?
увидел тэг FreeBSD, отвечаю как во фряхе с этим дело обстоит:


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.