경고 "[something]"에 CRC가 없습니다.

경고 "[something]"에 CRC가 없습니다.

소스에서 Linux 커널을 컴파일하려고 합니다(https://github.com/UDOOboard/linux_kernel) 우분투 가상 머신에서.

내가 실행할 때 :

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

다음과 같은 경고가 많이 표시됩니다.

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

이 모듈은 아직 구축되지 않았습니다. 이 문제를 어떻게 해결할 수 있나요?

답변1

이 스레드는 다음과 같은 오류 메시지와 관련이 있는 것으로 보입니다.kbuild: 가짜 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]

이 스레드에서 "CONFIG_MODVERSIONS linux"를 검색하면 다음 제목의 페이지가 표시됩니다.커널 기호 및 CONFIG_MODVERSIONS. 이 페이지에서 발췌:

CONFIG_MODVERSIONS사람들의 삶을 더 편리하게 만들기 위해 개발된 개념입니다. 본질적으로 달성하려는 목적은 모듈이 있는 경우 해당 모듈의 커널 데이터 구조, 유형 또는 기능이 로드되면 로드에 실패한다는 것을 알고 해당 모듈을 모든 커널에 로드하려고 시도할 수 있다는 것입니다. 모듈 목적이 변경되었습니다.

커널이 사용 중이 아닌 경우CONFIG_MODVERSIONS활성화되면 해당 커널 버전용으로 특별히 컴파일된 모듈과 MOVERSIONS를 활성화하지 않고 컴파일된 모듈만 로드할 수 있습니다.

그러나 커널이 다음으로 빌드된 경우CONFIG_MODVERSIONS활성화되면 동일한 커널 버전에 대해 컴파일되고 MOVERSIONS가 꺼진 모듈을 로드할 수 있습니다. 그러나 이것이 중요한 부분입니다. 모듈에서 사용하는 커널 API가 변경되지 않는 한 MDOVERSIONS를 켠 상태로 컴파일된 모든 모듈을 로드할 수도 있습니다.

이 페이지는 다음과 같습니다:

모듈의 기호를 내보내지 않기만 원하는 경우 다음을 사용할 수 있습니다.EXPORT_NO_SYMBOLS매크로.

나는 이 시스템을 사용하여 구축할 것입니다. 왜냐하면 여러분이 이 시스템에서 다른 시스템으로 컴파일된 모듈을 가져갈 계획이 없다고 생각하기 때문입니다.

노트:.config 파일이나 .config 파일에서 이 작업을 수행할 수 있습니다 make menuconfig.

인용하다

관련 정보