Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: make modules_instal не устанавливает модули из указанного каталога
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
nill
Продолжаю осваивать разработку модулей и столкнулся с очередной непонятной мне ситуацией. Я экспериментирую с существующим в основной ветке модулем и устанавливал его командой
Код
INSTALL_MOD_PATH=./mods make M=./drivers/ata modules_install

После нескольких переходов по истории git и правок исходников этот метод перестал работать, и я уже не могу точно вспомнить в какой момент это всё сломалось. Выглядит это как-то вот так после пересборки модуля:
CODE
$ 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, что занимает некоторое время. Почему перестала работать установка из указанного каталога?
Tarbal
Ну если вы пробовали разные версии кернела, то может версии ядра и модулей отличаются.
Вообще-то в модулях (вернее в ядре) жесткая адресация и при изменении в кернеле надо все модули перекомпиллировать и переустановить (make modules_install). Если не сделать этого, то могут возникнуть "необъяснимые" глюки.

сравните выдачу
uname -r
с
modinfo your_module.ko
nill
Я работал только с одной версией ядра. Все изменения и путешествия по истории касались только одного тестового модуля, так что я не уверен, что проблема именно в разных версиях ядра и модулей.
Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку.
Tarbal
Цитата(nill @ Feb 8 2016, 03:52) *
Я работал только с одной версией ядра. Все изменения и путешествия по истории касались только одного тестового модуля, так что я не уверен, что проблема именно в разных версиях ядра и модулей.
Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку.


У меня svn к версии ядра в конце добавляет порядковый номер под которым был сделан checkin в svn repository. Разные версии имеют разные номера версии ядра.
nill
Вид суффикса в версии ядра зависит в том числе и от используемой системы контроля версий. Если интересны подробности, то можно заглянуть в scripts/setlocalversion.
У меня совпадают версия ядра и vermagic модулей, так что вопрос остаётся открытым.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.