Перейти к содержанию
    

make modules_instal не устанавливает модули из указанного каталога

Гость nill

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

INSTALL_MOD_PATH=./mods make M=./drivers/ata modules_install

После нескольких переходов по истории git и правок исходников этот метод перестал работать, и я уже не могу точно вспомнить в какой момент это всё сломалось. Выглядит это как-то вот так после пересборки модуля:

$ ls -l ./drivers/ata/*.ko | grep libahci
-rw-rw-r-- 1 mk mk 382712 Feb  3 16:08 ./drivers/ata/libahci_debug.ko
-rw-rw-r-- 1 mk mk 538128 Feb  3 16:08 ./drivers/ata/libahci_exp.ko
-rw-rw-r-- 1 mk mk 489336 Feb  2 17:59 ./drivers/ata/libahci.ko
-rw-rw-r-- 1 mk mk 364528 Feb  2 17:59 ./drivers/ata/libahci_platform.ko
$ ls -l /lib/modules/4.3.0+/kernel/drivers/ata/ | grep libahci
-rw-rw-r-- 1 mk mk 382966 Feb  3 15:24 libahci_debug.ko
-rw-rw-r-- 1 mk mk 538838 Feb  3 15:24 libahci_exp.ko
-rw-rw-r-- 1 mk mk 490046 Feb  3 15:24 libahci.ko
-rw-rw-r-- 1 mk mk 365238 Feb  3 15:24 libahci_platform.ko
$ INSTALL_MOD_PATH=./mods make M=./drivers/ata modules_install 
 DEPMOD  4.3.0+
$ 

/lib/modules/4.3.0+ здесь является симлинком на ./mods.

Теперь мне приходится переустанавливать все модули командой make modules_install, что занимает некоторое время. Почему перестала работать установка из указанного каталога?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если вы пробовали разные версии кернела, то может версии ядра и модулей отличаются.

Вообще-то в модулях (вернее в ядре) жесткая адресация и при изменении в кернеле надо все модули перекомпиллировать и переустановить (make modules_install). Если не сделать этого, то могут возникнуть "необъяснимые" глюки.

 

сравните выдачу

uname -r

с

modinfo your_module.ko

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость nill

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

Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку.

 

У меня svn к версии ядра в конце добавляет порядковый номер под которым был сделан checkin в svn repository. Разные версии имеют разные номера версии ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость nill

Вид суффикса в версии ядра зависит в том числе и от используемой системы контроля версий. Если интересны подробности, то можно заглянуть в scripts/setlocalversion.

У меня совпадают версия ядра и vermagic модулей, так что вопрос остаётся открытым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...