Модифицированный модуль ядра Ubuntu 15.10 не загружается - необходимо сделать вручную

623
Pingers

Модуль с именем alx, который управляет моим Qualcomm AR8161 Ethernet, загружается при загрузке и отображается с помощью lsmod.

Этот модуль глючит. Я нашел исправления, скачал исходный код для моего работающего ядра, исправил alx / files и, узнав, как, восстановил файл модуля alx.ko. После rmmod'а старого alx и modprobe -v моей новой версии ethernet начал работать отлично. Ура! Задача решена.

Раздражает то, что если я делаю прямой обмен оригинальной alx.ko с моей новой alx.ko, она все равно загружает старую при загрузке ?? Кроме того, если я полностью удаляю все файлы alx.ko из / lib / modules, модуль alx STILL загружается во время загрузки ??? Итак, вопрос в том, откуда он берется, и как мне заставить систему загрузить мою заменяющую версию (точно такое же имя файла)?

В данный момент я выдаю rmmod alx; modprobe -v alx во время загрузки, но я бы предпочел, чтобы это происходило автоматически.

0

2 ответа на вопрос

0
user2304953

Обычный способ сделать это - присвоить новому модулю несколько другое имя, например alx_fixed.ko, и добавить в черный список оригинал. Инструкции о том, как занести модуль в черный список, можно найти здесь. http://linuxconfig.org/how-to-blacklist-a-module-on-ubuntu-debian-linux Как только вы поместите новый модуль в / lib / modules / your-kernel-version / kernel / drivers / net / вам нужно запустить команду "sudo depmod -a", чтобы обновить список установленных модулей.

Я сомневаюсь, что это относится к драйверу Ethernet, но некоторые модули загружаются во время загрузки, поэтому вам может потребоваться также запустить «update-initramfs». https://wiki.ubuntu.com/Initramfs

Откуда взялись модули, даже если вы их удалили? Какую версию ядра вы используете? Вы уверены, что удалили их из правильной версии ядра? В общем, удаление системных файлов - плохая идея, потому что это может привести к нестабильной работе системы.

Я поместил новый модуль в /lib/modules/4.2.0-27-generic/updates/dkms/ и запустил depmod -av | grep alx и update-intramfs -uv | grep alx и увидел, что он только подхватывает моя версия модуля. Я заметил в журналах загрузки: Pingers 8 лет назад 0
0
Pingers

Я поместил новый модуль в /lib/modules/4.2.0-27-generic/updates/dkms/ и запустил depmod -av | grep alx и update-intramfs -uv | grep alx, убедившись, что он только подхватывает мой модифицированный модуль, а не исходный. В последующих журналах загрузки: alx: проверка модуля не удалась: отсутствует подпись и / или требуемый ключ - портится ядро, но оно все равно загружается и проблема решена.