2011-03-30 3 views
2

세 개의 Linux 커널 모듈 (*.ko 파일)이 있습니다. 그들은이 같은 순환 종속성이 :순환 의존성이있는 모듈 (* .ko) 삽입

  • mod1.komod1.ko
  • mod3.ko 사용합니다 mod1.ko 내 보낸 함수와 mod2.ko

내가 처음을로드 할 수 없습니다에 의해 mod3.ko

  • mod2.ko 내 보낸 함수를 사용하여 내 보낸 함수를 사용 mod1.ko "알 수없는 기호"오류가 발생했습니다. 또한 두 가지 다른 방법을 시도하지만 같은 오류가있어 :

    • 부하 /lib/modules/kernel_version/my_modules에서 이러한 파일을 넣어 한 번

      insmod mod1.ko mod2.ko mod3.ko 
      
    • 에서 모든 모듈을하고

      depmod kernel_version 
      modprobe mod3 
      
    을 실행

    아무도 도와주세요. 모든 제안을 부탁드립니다. 미리 감사드립니다 :)

  • 답변

    1

    글쎄,이 3 개의 모듈을 하나에 병합하는 것은 어떻습니까?

    0

    동일한 문제가 발생했습니다. 모듈을 병합하는 것은 좋은 해결책이 아닙니다.

    내가 수행 한 작업은 원래 함수 대신 콜백 함수를 사용하는 것입니다. 등록 루틴을 사용하여 다른 모듈의 함수를 등록하려면 (함수 포인터를 사용해야 함).

    이렇게하면 모듈 간의 종속성이 제거됩니다.

    그런 다음 비 종속 모듈을 먼저 삽입하고 종속 모듈을 나중에 삽입 할 수 있습니다.