当前位置: 技术问答>linux和unix
关于e1000网卡驱动的Makefile问题
来源: 互联网 发布时间:2016-12-18
本文导语: 如题,在powerpc架构上编译e1000驱动遇到些问题。 这个驱动跟内核一起编译的时候是可以编译过的,但是只生成e1000.o,而不是e1000.ko 我单独拿出来编译,制定了内核路径,头文件包含路径,交叉工具,但是会有很多错...
如题,在powerpc架构上编译e1000驱动遇到些问题。
这个驱动跟内核一起编译的时候是可以编译过的,但是只生成e1000.o,而不是e1000.ko
我单独拿出来编译,制定了内核路径,头文件包含路径,交叉工具,但是会有很多错误(这些错误不应该出现,应该是头文件包含问题导致)。
下面贴出Makefile
大家看看到底少什么东西啊,intel官网上的Makefile是针对已经安装好系统的。
这个驱动跟内核一起编译的时候是可以编译过的,但是只生成e1000.o,而不是e1000.ko
我单独拿出来编译,制定了内核路径,头文件包含路径,交叉工具,但是会有很多错误(这些错误不应该出现,应该是头文件包含问题导致)。
下面贴出Makefile
LINUXKERNEL_INSTALL_DIR =/home/peter/XMS/XMS/Bantu/oss/os/linux-2.6.23
SOURCES = $(wildcard *.c)
INCLUDE := -I/home/peter/XMS/XMS/Bantu/oss/os/linux-2.6.23/include/
CFLAGS := -Wall -O2 $(INCLUDE)
DEFS :=
TARGET_NAME = e1000
TARGET_DIR := $(PWD)
TARGET = $(TARGET_NAME).ko
UPLOAD_DIR := /tftpboot/
obj-m += e1000.o
e1000-objs := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o
$(TARGET_NAME)-objs := $(patsubst %.c,%.o,$(SOURCES))
#EXTRA_CFLAGS := -DMMAN $(INCLUDE) $(DEFS)
MAKE_ENV = ARCH=powerpc CROSS_COMPILE=/opt/empirix/toolchains/ppc-gcc-4.1.78-eglibc-2.5.78-dp-2.0-1/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-
.PHONY: all clean
all:
make -C $(LINUXKERNEL_INSTALL_DIR) M=`pwd` $(MAKE_ENV) modules
clean:
rm -f *.mod.* *.o *.ko *.cmd *.symvers
rm -rf $(TARGET_DIR)$(TARGET)
大家看看到底少什么东西啊,intel官网上的Makefile是针对已经安装好系统的。
|
需要ko,应该在内核选项中把对应的模块改成M,然后make modules
如果是把驱动文件单拉出来编译ko模块,应该就不需要指定obj-m += e1000.o这个了吧
如果是把驱动文件单拉出来编译ko模块,应该就不需要指定obj-m += e1000.o这个了吧