2013-08-23 67 views

回答

0

根據make clean命令,Kbuild系統刪除所有目標文件(*.o)。任何外部目標文件也將被刪除,除非它們的擴展名從.o更改爲.o_shipped以保留它們。

以下示例Makefile演示如何使用_shipped到模塊8123.ko內鏈接的目標文件8123_bin.o_shipped

ifneq ($(KERNELRELEASE),) 
# kbuild part of makefile 
obj-m := 8123.o 
8123-y := 8123_if.o 8123_pci.o 8123_bin.o 

else 
# normal makefile 
KDIR ?= /lib/modules/`uname -r`/build 

default: 
     $(MAKE) -C $(KDIR) M=$$PWD 

# Module specific targets 
genbin: 
     echo "X" > 8123_bin.o_shipped 
endif 

基本上一個.o_shipped文件是相同的.o文件不同之處在於的kbuild系統理解,它是一個二進制blob,它是按原樣提供的,其源在內核/模塊源目錄中不可用。因此,即使源被清理,*.o_shipped二進制blob也會保留。

更多細節可以在