2014-03-28 65 views
0

我想編譯一個內核(金魚)以便稍後插入一些模塊。我知道我需要啓用模塊支持,模塊加載和卸載。我正在使用OSX Mavericks。啓用可加載模塊Android

到目前爲止,我已經簽出,從git的金魚,並已完成了以下:

make ARCH=arm goldfish_armv7_defconfig 

沒有問題存在。現在,當我做的:

make ARCH=arm CROSS_COMPILE=/Volumes/untitled/WORKING_DIRECTORY/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi- menuconfig 

我得到如下:

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: * [scripts/kconfig/mconf] Error 1 make: * [menuconfig] Error 2

有沒有辦法,我可以使模塊另一種方式?也許進入一個文件並手動執行它?

如果我只是運行(這我應該後運行得到的zImage):

make ARCH=arm SUBARCH=arm CROSS_COMPILE=/Volumes/untitled/WORKING_DIRECTORY/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi -j16 

內核編譯,我可以通過模擬器運行它,但顯然我不能上傳內核模塊。

回答

0

默認情況下在android內核中禁用模塊加載。 在配置文件中使用CONFIG_MODULES = y啓用它。

0

打開腳本/ kconfig命令/ lxdialog/check-lxdialog.sh

更換LDFLAGS()與此

ldflags() 
{ 
    for ext in so a dylib ; do 
     for lib in ncursesw ncurses curses ; do 
      #$cc -print-file-name=lib${lib}.${ext} | grep -q/
      #if [ $? -eq 0 ]; then 
      if [ -f /usr/lib/lib${lib}.${ext} ]; then 
       echo "-l${lib}" 
       exit 
      fi 
     done 
    done 
    exit 1 
} 

現在make menuconfig應該工作。這個問題似乎是由於在OS X上出現叮噹聲而導致的。-print-file-name選項無法正常工作。

或者,你可以在一個文本編輯器打開config文件,並設置

CONFIG_MODULES=y