LINUX.ORG.RU

Работа со сторонними модулями ядра.

 ,


0

1

Здравствуйте! У меня возникло 2 вопроса про работу со сторонними модулями ядра: 1. Модуль был добавлен в систему при помощи modprobe, потом был удалён .ko файл. Какие неприятные последствия из-за этого могу быть? Останутся ли где-нибудь ненужные записи об этом модуле? Как их (записи) убрать? 2. Как правильно добавить в систему модуль ядра? (куда положить исходники? какую конечную директорию для .ko указать?)



Последнее исправление: cetjs2 (всего исправлений: 1)

Как их (записи) убрать?

Выполнить заново построение списка зависимостей модулей. Команда 'depmod' .

Как правильно добавить в систему модуль ядра? (куда положить исходники? какую конечную директорию для .ko указать?)

Помещайте исходники куда хотите, единственно выполните конфигурирование исходных кодов, сборку и установку:

./configure
make
make install
или другие аналогичные команды.

Для сборки модуля нужны либо исходные коды текущего ядра, сконфигурированные под ядро либо заголовочные файлы от сборки текущего ядра.

Сборку модуля нужно производить отдельно под каждую версию ядра.

Если в системе есть dkms, то можете написать конфигурация для dkms для сборки нужного вам модуля ядра.

После установки модуля ядра опять же обновите списки зависимостей модуле, команда depmod.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Модуль пытается установить себя в не существующую папку. Если создать такую папку, то она удалится после какого нибудь небольшого обновления.

P.S. Спасибо за ответ!

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

Директорию в /lib/modules/версия_ядра/ не удаляются при обновлении, только при удалении и установки пакета с ядром.

Ну и что это за модуль такой, авторы которого не удосужились в процедуру 'make install' прописать создание нужных директорий ?

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Модуль от компании asix для USB <-> Ethernet переходника идущего в комплекте с Asus Zenbook.

Она удаляется при пересборке ядра.

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

А я уже подумал по описанию задачи, что ты вирус пишешь.

yurikoles ★★★
()
Ответ на: комментарий от Dm3Ch

Она удаляется при пересборке ядра.

Ну, а что вы хотите, конечно 'make modules_install' очистит директорию с модулями.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

1.Можно ли как-то обойти чистку директории с модулями? 2.modprobe при описании полного пути к .ko файлу пишет, что не может его найти. Что с этим делать?

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

1.Можно ли как-то обойти чистку директории с модулями?

После пересборки ядра модуль под ядро нужно собирать заново.

modprobe при описании полного пути к .ko файлу пишет, что не может его найти.

Нужно выполнить 'depmod -a' для обновления списка зависимостей. Для 'modprobe' не нужно указывать полный путь к модули и даже вредно, нужно указывать просто имя модуля без окончания '.ko', т.е. вместо drivers/video/nvidia.ko нужно указывать просто nvidia.

Полный путь указывается лишь при использовании insmod.

В случае выполнение 'depmod -a' достаточно вызывать 'modprobe nvidia'

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо за ответ!

P.S. Это уже не относится к теме, но всё-таки почему после пересборки ядра модуль надо собирать под него заново?

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

Потому, что . Почитайте, что такое 'magic version'.

Это защита от предотвращения загрузки модулей от другого ядра. В случае, если в ядре отсутствуют опции, которые нужны для работы кода в модуле или присиутствует опции, которые блокируют работу кода в модуле, то при загрузке такого модуля произойдёт сбой в работе ядра, а скорее всего kernel panic.

Вот скажи, ты уже примерно с пол года, а то и год знаком с Linux, например ставил Gentoo, неужели до сих пор не разобрался ?

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Разбираюсь по чуть-чуть, но времени мало. Так что основное изучение происходит, когда понадобится.

P.S. Спасибо за помощь и ответы на вопросы!

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

А можно ли сборку этого модуля как-нибудь подсунуть в Makefile для того, чтобы он сам его подключался при пересборке.

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

В принципе вы можете интегрировать исходные коды этого модуля в исходные коды ядра. Посмотрите, хотя бы навскидку патчи поддержки aufs:
http://aufs.sourceforge.net/
http://sourceforge.net/p/aufs/aufs3-standalone/ci/master/tree/

И действуйте по аналогии.

kostik87 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.