#linux-kernel
Вопрос:
Я пытаюсь создать чистый код драйвера сетевой карты e1000.
Используя следующую команду:
sudo make -C $PATH_TO_KERNEL_SRC M=drivers/net/ethernet/intel/e1000 modules
Сборка завершается ошибкой со следующей ошибкой:
Make: Entering directory '/home/estro/kernel_dev/linux-stable'
WARNING: Symbol version dump "Module.symvers" is missing.
Modules may not have dependencies or modversions.
MODPOST drivers/net/ethernet/intel/e1000/Module.symvers
FATAL: modpost: drivers/net/ethernet/intel/e1000/e1000: sizeof(struct pci_device_id)=40 is not a modulo of the size of section __mod_pci__<identifier>_device_table=1216.
Fix definition of struct pci_device_id in mod_devicetable.h
make[1]: *** [scripts/Makefile.modpost:124: drivers/net/ethernet/intel/e1000/Module.symvers] Error 1
make: *** [Makefile:1726: modules] Error 2
make: Leaving directory '/home/estro/kernel_dev/linux-stable'
Я предполагаю, что драйверы в стабильной ветке ядра должны компилироваться без проблем, что, вероятно, означает, что мне здесь чего-то не хватает.
Комментарии:
1. Предупреждение «ПРЕДУПРЕЖДЕНИЕ: дамп версии символа «Модуль.символы» отсутствует». обычно это означает, что вы не подготовили каталог (
/home/estro/kernel_dev/linux-stable
) для сборки модулей. ФайлModule.symvers
создается при сборке самого ядра.