2012-03-13 71 views
0

我試圖編譯三星Galaxy迷你的Android內核(氰),根據這些instructionsAndroid的內核編譯錯誤

我使用CM-7。

我完成以下步驟:

  1. 下載內核源代碼。

  2. 配置構建:

    adb pull /proc/config.gz /home/user_name/android/kernel/cm-kernel/config.gz 
    cat config.gz | gunzip > .config 
    make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig 
    
  3. 使構建:

    make ARCH=arm CROSS_COMPILE=$CCOMPILER -j4 
    

後這個內核開始編譯,一切工作正常,但隨後拋出一個錯誤,這裏是所述終端的輸出:

CC [M] drivers/gpio/wm8994-gpio.o 
LD [M] sound/usb/misc/snd-ua101.o 
LD [M] sound/usb/snd-usb-audio.o 
LD [M] sound/usb/snd-usbmidi-lib.o 
CC [M] drivers/gpio/sch_gpio.o 
CC [M] drivers/gpio/rdc321x-gpio.o 
LD  fs/nfs_common/built-in.o 
CC [M] fs/nfs_common/nfsacl.o 
CC [M] fs/nfs/direct.o 
CC  net/socket.o 
CC [M] drivers/gpio/janz-ttl.o 
LD [M] fs/nfs_common/nfs_acl.o 
    drivers/gpio/janz-ttl.c: In function 'ttl_set_value': 
    drivers/gpio/janz-ttl.c:107: error: implicit declaration of function 'iowrite16be' 
    make[2]: *** [drivers/gpio/janz-ttl.o] Error 1 
    make[1]: *** [drivers/gpio] Error 2 
    make: *** [drivers] Error 2 
    make: *** Waiting for unfinished jobs.... 
    CC [M] fs/nfs/pagelist.o 
    fs/nfs/direct.c: In function 'nfs_direct_read_schedule_segment': 
    fs/nfs/direct.c:364: warning: format '%zu' expects type 'size_t', but argument 5 has type 'unsigned int' 
    fs/nfs/direct.c: In function 'nfs_direct_write_schedule_segment': 
    fs/nfs/direct.c:799: warning: format '%zu' expects type 'size_t', but argument 5 has type 'unsigned int' 
    fs/nfs/direct.c: In function 'nfs_file_direct_read': 
    fs/nfs/direct.c:928: warning: format '%zd' expects type 'signed size_t', but argument 4 has type 'size_t' 
    fs/nfs/direct.c: In function 'nfs_file_direct_write': 
    fs/nfs/direct.c:982: warning: format '%zd' expects type 'signed size_t', but argument 4 has type 'size_t' 
CC  net/802/p8022.o 
CC [M] fs/nfs/proc.o 
CC  net/802/psnap.o 
CC  net/802/tr.o 
CC [M] fs/nfs/read.o 
CC  net/8021q/vlan_core.o 
CC [M] net/8021q/vlan.o 
CC  net/802/fc.o 
CC [M] fs/nfs/symlink.o 
CC  net/802/fddi.o 
CC [M] net/8021q/vlan_dev.o 
CC [M] fs/nfs/unlink.o 

如果任何人都可以請告訴如何解決這個問題。

+0

檢查我的編輯答案。看看它是否有幫助。 – 2012-03-13 14:30:53

回答

1

嘗試,包括這個頭

#include<asm/io.h> 

如果它不爲iowrite16be
http://lxr.free-electrons.com/ident?i=iowrite16be

所有定義工作,然後看看這個選擇基於你的架構相應的頭。

編輯:通常implicit declaration of function xyz()是一個警告。可能在您的系統中,它被迫與-Werror-implicit-function-declaration錯誤。您可以在構建結構搜索這一點,並試圖把它關閉(雖然它一個很好的做法,但反正你可以做到這一點,如果你想完成的工作),但如果iowrite16be真的丟失,那麼即使這個方法不會從鏈接器的憤怒中幫助你。

+0

包括的#include 頭沒有修復的錯誤,但我會努力的剩餘頭,感謝您的答覆。 – uyaseen 2012-03-13 13:08:00

+0

從makefile中刪除-Werror-implicit-function-declaration修復了錯誤,謝謝你的持續幫助。 :) – uyaseen 2012-03-14 12:58:50

+0

@usamayaseen很高興聽到:) – 2012-03-14 13:02:56

0

用戶也可以直接添加自己的定義:

void iowrite16be(u8 shadow, void __iomem* port); 

只需添加它正上方的ttl_set_value()函數。