kernel source not found 怎么解决?
我在装D-Link 530TX网卡驱动时 运行 make all后,出现这个提示?我怎么办?听说重装 kernel*rpm 我也试了还是行了,我用的是 rpm -ivh kernel*rpm做的,有朋友说用什么软件包管理,那个东西在什么地方?如果用那个的话,kernel这些东西在哪项里?主要还是问问怎么解决??我个人认为是 makefile 的问题,但不知道怎么办!
我用的是RH9 网卡是D-Link 530TX 驱动是网卡带的,也试了网上下的,请朋友帮我一下,谢谢
DEBUG = 0
VMNS = 1
OBJS := rhine_main.o rhine_proc.o rhine_wol.o
SRC = rhine_main.c rhine_proc.c rhine_wol.c
TARGET = rhinefet.o
KSP :=/lib/modules/$(shell uname -r)/build \
/usr/src/linux-$(shell uname -r) \
/usr/src/linux-$(shell uname -r | sed 's/-.*//') \
/usr/src/kernel-headers-$(shell uname -r) \
/usr/src/kernel-source-$(shell uname -r) \
/usr/src/linux-$(shell uname -r | sed 's/\(*\.*\)\..*/\1/') \
/usr/src/linux
ifeq ($(VMNS),1)
OBJS+=rhine_vmns.o
SRC+=rhine_vmns.c
endif
test_dir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KSP := $(foreach dir, $(KSP), $(test_dir))
KSRC := $(firstword $(KSP))
#KSRC :=/usr/src/ksrc/RedHat/7.2/linux-2.4.7-10alt-ent
ifeq (,$(KSRC))
$(error Linux kernel source not found)
endif
VERSION_FILE := $(KSRC)/include/linux/version.h
CONFIG_FILE:= $(KSRC)/include/linux/config.h
ifeq (,$(wildcard $(VERSION_FILE)))
$(error Linux kernel source not configured - missing version.h)
endif
ifeq (,$(wildcard $(CONFIG_FILE)))
$(error Linux kernel source not configured - missing config.h)
endif
ifneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version)))
CC := kgcc gcc cc
else
CC := gcc cc
endif
test_cc = $(shell which $(cc) > /dev/null 2>&1 && echo $(cc))
CC := $(foreach cc, $(CC), $(test_cc))
CC := $(firstword $(CC))
CFLAGS += -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe
CFLAGS += -I$(KSRC)/include -I. -Wstrict-prototypes -fomit-frame-pointer
CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \
echo "-DMODVERSIONS -include $(KSRC)/include/linux/modversions.h")
KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | grep UTS_RELEASE | \
awk '{ print $$3 }' | sed 's/\"//g')
KERVER2=$(shell uname -r | cut -d. -f2)
.SILENT: $(TARGET) clean
ifeq ($(TARGET), rhinefet.o)
ifneq ($(KVER),$(shell uname -r))
$(warning ***)
$(warning *** Warning: kernel source version ($(KVER)))
$(warning *** does not match running kernel($(shell uname -r)))
$(warning *** Continuing with build,)
$(warning *** resulting driver may not be what you want)
$(warning ***)
endif
endif
INSTDIR := $(shell find /lib/modules/$(KVER) -name $(TARGET) -printf "%h\n" | sort | head -1)
ifeq (,$(INSTDIR))
ifeq (,$(KERVER2))
ifneq (,$(wildcard /lib/modules/$(KVER)/kernel))
INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net
else
INSTDIR := /lib/modules/$(KVER)/net
endif
else
ifneq ($(KERVER2),2)
INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net
else
INSTDIR := /lib/modules/$(KVER)/net
endif
endif
endif
# look for SMP in config.h
SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
grep CONFIG_SMP | awk '{ print $$3 }')
ifneq ($(SMP),1)
SMP := 0
endif
ifeq ($(VMNS), 1)
CFLAGS += -DVMNS
endif
ifeq ($(DEBUG), 1)
CFLAGS += -DRHINE_DBG
endif
ifeq ($(TARGET), rhinefet.o)
ifneq ($(SMP),$(shell uname -a | grep SMP > /dev/null 2>&1 && echo 1 || echo 0))
$(warning ***)
ifeq ($(SMP),1)
$(warning *** Warning: kernel source configuration (SMP))
$(warning *** does not match running kernel (UP))
else
$(warning *** Warning: kernel source configuration (UP))
$(warning *** does not match running kernel (SMP))
endif
$(warning *** Continuing with build,)
$(warning *** resulting driver may not be what you want)
$(warning ***)
endif
endif
ifeq ($(SMP), 1)
CFLAGS += -D__SMP__
endif
$(TARGET): $(filter-out $(TARGET), $(SRC:.c=.o))
$(LD) -r $^ -o $@
echo; echo
echo "**************************************************"
echo "Build options:"
echo " VERSION $(KVER)"
echo -n " SMP "
if [ "$(SMP)" = "1" ]; \
then echo "Enabled"; else echo "Disabled"; fi
echo -n " VMNS "
if [ "$(VMNS)" = "1" ]; \
then echo "Enabled"; else echo "Disabled"; fi
echo "***************************************************"
install: clean $(TARGET)
mkdir -p $(MOD_ROOT)$(INSTDIR)
install -m 644 -o root $(TARGET) $(MOD_ROOT)$(INSTDIR)
@if [ -f $(MOD_ROOT)$(INSTDIR)/via-rhine.o ] ; then \
echo "*****Move official driver via-rhine.o to via-rhine.o.backup" ; \
echo "mv $(MOD_ROOT)$(INSTDIR)/via-rhine.o $(MOD_ROOT)$(INSTDIR)/via-rhine.o.backup";\
mv $(MOD_ROOT)$(INSTDIR)/via-rhine.o $(MOD_ROOT)$(INSTDIR)/via-rhine.o.backup ; \
echo ;\
fi ;
@if [ -f $(MOD_ROOT)$(INSTDIR)/linuxfet.o ] ; then \
echo "*****Move previous driver linuxfet.o to linuxfet.o.backup" ; \
echo "mv $(MOD_ROOT)$(INSTDIR)/linuxfet.o $(MOD_ROOT)$(INSTDIR)/linuxfet.o.backup";\
mv $(MOD_ROOT)$(INSTDIR)/linuxfet.o $(MOD_ROOT)$(INSTDIR)/linuxfet.o.backup ; \
echo ;\
fi ;
ifeq (,$(MOD_ROOT))
/sbin/depmod -a || true
else
/sbin/depmod -b $(MOD_ROOT) -a || true
endif
uninstall:
rm -f $(INSTDIR)/$(TARGET)
@if [ -f $(MOD_ROOT)$(INSTDIR)/via-rhine.o.backup ] ; then \
echo "*****Restore official driver vai-rhine.o from $(MOD_ROOT)$(INSTDIR)".; \
echo "mv $(MOD_ROOT)$(INSTDIR)/via-rhine.o.backup $(MOD_ROOT)$(INSTDIR)/via-rhine.o";\
mv $(MOD_ROOT)$(INSTDIR)/via-rhine.o.backup $(MOD_ROOT)$(INSTDIR)/via-rhine.o ;\
fi
/sbin/depmod -a
clean:
rm -f $(TARGET) $(SRC:.c=.o) *~
-include .depend.mak You need to install the kernel-source rpm package provided on RH9 CD2. 据小弟的经验,如果你安装系统的时候没有安装某些东西
具体我记不清除了
在你安装其他程序或者驱动的时候就会要求你插入某张光盘 谢谢,看来我是应该重新装一下了吧! 谢谢,看来我是应该重新装一下了吧!
对,不过只是kernel-source!~ 谢谢,看来我是应该重新装一下了吧!
No...
Here's what you need to do.
-put RH9 CD2 in your CD-ROM
-do the following
#su -(to become root)
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS/
#rpm -Uvh kernel-source*
#cd
#umount /mnt/cdrom
#cd /usr/src
#ls
You should now have a kernel source directory there. 我看你的提示好像是说安装的时候把第二张光盘放进去就可以了
页:
[1]