2011-03-30 113 views
2

我有三個Linux內核模塊(*.ko文件)。他們有循環依賴這樣的:插入具有循環依賴關係的模塊(* .ko)

  • mod1.komod1.ko出口mod1.ko
  • mod3.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

    那麼,如何將這三個模塊合併成一個?

    0

    我遇到了同樣的問題。 在我的情況下,合併模塊並不是一個好的解決方案。

    我偶然做的是添加使用回調函數,而不是原始函數。並使用註冊例程註冊其他模塊中的函數(需要使用函數指針)。

    這消除了模塊之間的依賴關係。

    然後,您可以先插入非依賴模塊,然後插入依賴模塊。