Solução para ERRO: modpost indefinido encontrado ao compilar o módulo do kernel Linux ko

fundo

Quando o autor estava compilando koo módulo, encontrei o seguinte erro:
( modpostOs prompts são todas funções comumente usadas, como _printk, kfree, kmalloc, memsetetc.)

ERROR: modpost: "__raw_copy_from_user" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "_printk" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "nonseekable_open" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "kmalloc_caches" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "kmalloc_trace" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "kfree" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "warn_slowpath_fmt" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "memset" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!
ERROR: modpost: "__register_chrdev" [/home/geng/Item/nscscc_drivers/lcd/lcd.ko] undefined!

As mensagens de erro são todas ERRO: modpost!

Certa vez, suspeitei que havia um problema com meu Makefile, compilador cruzado, etc.

solução

O problema está no .configarquivo de código-fonte do kernel Linux!

CONFIG_TRIM_UNUSED_KSYMSApenas desligue ! Lembre-se de revisar o código-fonte do Linux após a modificação make! Lembre-se de revisar o código-fonte do Linux após a modificação make!

Ele pode ser modificado através do menuconfig. Aqui está o menuconfig do MIPS como exemplo:
menu de primeiro nível menuconfig Habilita suporte moudle carregável
Desative Cortar símbolos de kernel exportados não utilizados
Você também pode .configarquivar diretamente, colocar:

CONFIG_TRIM_UNUSED_KSYMS=y

Substitua diretamente por

# CONFIG_TRIM_UNUSED_KSYMS is not set

Lembre-se de revisar o código-fonte do Linux após a modificação make! Lembre-se de revisar o código-fonte do Linux após a modificação make!

Acho que você gosta

Origin blog.csdn.net/weixin_52027058/article/details/132019367
Recomendado
Clasificación