AVISO “[algo]” não tem CRC

1

Estou tentando compilar um kernel Linux a partir do código fonte ( link ) no VirtualBox do Ubuntu.

Quando eu corro:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make modules

Eu recebo um monte de avisos como:

WARNING: "do_sync_read" [fs/nfs/nfs.ko] has no CRC!

Estes módulos não estão sendo construídos. Como resolvo esse problema?

    
por JHarden13 11.07.2018 / 17:27

1 resposta

1

Este tópico parece relacionado à sua mensagem de erro, intitulada: kbuild: bogus não tem aviso de CRC :

# 2004/08/15 11:54:27+02:00 sam@xxxxxxxxxxxxxxxxx 
# kbuild: Bogus "has no CRC" in external module builds
# 
# From: Pavel Roskin <proski@xxxxxxx>
# The recent fixes for the external module build have fixed the major
# breakage, but they left one annoyance unfixed. If CONFIG_MODVERSIONS is
# disabled, a warning is printed for every exported symbol that is has no
# CRC. For instance, I see this when compiling the standalone Orinoco
# driver on Linux 2.6.6-rc3:
# 
# *** Warning: "__orinoco_down" [/usr/local/src/orinoco/spectrum_cs.ko] has
# no CRC!
# *** Warning: "hermes_struct_init" [/usr/local/src/orinoco/spectrum_cs.ko]
# has no CRC!
# *** Warning: "free_orinocodev" [/usr/local/src/orinoco/spectrum_cs.ko] has
# no CRC!
# [further warnings skipped]

A partir deste tópico, se você pesquisar por "CONFIG_MODVERSIONS linux", você acabará nesta página intitulada: Símbolos do kernel e CONFIG_MODVERSIONS . Trecho da página:

CONFIG_MODVERSIONS is a notion thought up to make people's lives easier. In essence, what it is meant to achieve is that if you have a module you can attempt to load that module into any kernel, safe in the knowledge that it will fail to load if any of the kernel data structures, types or functions that the module uses have changed.

If your kernel is not compiled with CONFIG_MODVERSIONS enabled you will only be able to load modules that were compiled specifically for that kernel version and that were also compiled without MODVERSIONS enabled.

However, if your kernel is compiled with CONFIG_MODVERSIONS enabled you will be able to load a module that was compiled for the same kernel version with MODVERSIONS turned off. But - here's the important part folks - you will also be able to load any modules compiled with MDOVERSIONS turned on, as long as the kernel API that the module uses hasn't changed.

Dentro dessa página é isso:

If you only require that none of the module's symbols are exported you can use the EXPORT_NO_SYMBOLS macro.

Eu criaria com esse conjunto, pois não acho que você esteja planejando levar os módulos compilados deste sistema para nenhum outro.

NOTA: Você pode fazer isso no arquivo .config ou durante make menuconfig .

Referências

por 12.07.2018 / 07:44