Гость nill 7 февраля, 2016 Опубликовано 7 февраля, 2016 · Жалоба Продолжаю осваивать разработку модулей и столкнулся с очередной непонятной мне ситуацией. Я экспериментирую с существующим в основной ветке модулем и устанавливал его командой 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, что занимает некоторое время. Почему перестала работать установка из указанного каталога? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 7 февраля, 2016 Опубликовано 7 февраля, 2016 · Жалоба Ну если вы пробовали разные версии кернела, то может версии ядра и модулей отличаются. Вообще-то в модулях (вернее в ядре) жесткая адресация и при изменении в кернеле надо все модули перекомпиллировать и переустановить (make modules_install). Если не сделать этого, то могут возникнуть "необъяснимые" глюки. сравните выдачу uname -r с modinfo your_module.ko Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость nill 7 февраля, 2016 Опубликовано 7 февраля, 2016 · Жалоба Я работал только с одной версией ядра. Все изменения и путешествия по истории касались только одного тестового модуля, так что я не уверен, что проблема именно в разных версиях ядра и модулей. Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 8 февраля, 2016 Опубликовано 8 февраля, 2016 · Жалоба Я работал только с одной версией ядра. Все изменения и путешествия по истории касались только одного тестового модуля, так что я не уверен, что проблема именно в разных версиях ядра и модулей. Возможно, что после git commit ядро было "помечено" как dirty и тогда ситуация с разными версиями вполне вероятна. Проверю, когда доберусь до тестовой машины. Спасибо за подсказку. У меня svn к версии ядра в конце добавляет порядковый номер под которым был сделан checkin в svn repository. Разные версии имеют разные номера версии ядра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость nill 9 февраля, 2016 Опубликовано 9 февраля, 2016 · Жалоба Вид суффикса в версии ядра зависит в том числе и от используемой системы контроля версий. Если интересны подробности, то можно заглянуть в scripts/setlocalversion. У меня совпадают версия ядра и vermagic модулей, так что вопрос остаётся открытым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться