커널 컴파일시 WARNING: modpost : Found 2 section mismatch(es).
안녕하세요? 커널 컴파일 중에 에러가 발생해서 질문드립니다.
먼저 처음 make를 하니 아래와 같은 메시지가 나왓습니다.
*cho@cho-desktop:~/shared_virtual/linux-2.6.32.1$ make -j 4
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
Building modules, stage 2.
Kernel: arch/x86/boot/bzImage is ready (#3)
MODPOST 1716 modules
WARNING: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
그래서 다시 이렇게 make를 하니 아래와 같은 메시지가 발생했네요.
* $ make -j4 CONFIG_DEBUG_SECTION_MISMATCH=y
MODPOST 1716 modules
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Root device is (8, 1)
Setup is 13532 bytes (padded to 13824 bytes).
System is 3484 kB
CRC 68cc64a9
Kernel: arch/x86/boot/bzImage is ready (#4)
WARNING: drivers/char/hw_random/virtio-rng.o(.data+0x88): Section mismatch in reference from the variable virtio_rng to the function .devexit.text:virtrng_remove()
The variable virtio_rng references
the function __devexit virtrng_remove()
If the reference is valid then annotate the
variable with __exit* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
WARNING: drivers/virtio/virtio_balloon.o(.data+0x88): Section mismatch in reference from the variable virtio_balloon to the function .devexit.text:virtballoon_remove()
The variable virtio_balloon references
the function __devexit virtballoon_remove()
If the reference is valid then annotate the
variable with __exit* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
제가 검색해보고 생각해본 결과 두개의 module 설정이 잘못된거 같은데, 그렇다면 menuconfig 에서 이부분을 잡으면 되는 것인지?
감을 못잡겠네요.
unbuntu 설치시에 생성된 .config 파일을 사용한 것입니다.
즉, 2.6.28.11의 .config파일을 새로운 커널 2.6.28.10에서 사용한 것입니다.
에러 메시지가 발생된 원인을 감을 못잡겠네요.
도움 부탁드립니다.
댓글 달기