Skocz do zawartości

Intel Pro/1000 Mt Dual Port


samba

Rekomendowane odpowiedzi

Witam.Mama karte sieciowa INTEL pro/1000 MT Dual port (serwerowa).Na FC 6 mam nastepujacy problem . gry robie make install wywala mi cos takiego

[root@localhost e1000-7.2.9]# cd src
[root@localhost src]# make install
Makefile:65: *** Linux kernel source not found. Stop.

 

Sciagnalem wiec yum install kernel-devel i dalej to samo. Sciagnalem jeszcze kernel-2.16.18-1.2798.fc6.src.rpm po zainstalowaniu tego mam dalej blad

Makefile:65: *** Linux kernel source not found. Stop.

 

Przeczytalem ze w pliku Makefile trzeba zmienic sciezke do zródel bo moze instalator nie widzi ich tak wiec oryginalny plik make file wygladal tak

###########################################################################
# Driver files

# core driver files
CFILES = e1000_main.c e1000_hw.c e1000_param.c \
        e1000_ethtool.c kcompat.c
HFILES = e1000.h e1000_hw.h e1000_osdep.h kcompat.h
ifeq (,$(BUILD_KERNEL))
BUILD_KERNEL=$(shell uname -r)
endif

###########################################################################
# Environment tests

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
       /lib/modules/$(BUILD_KERNEL)/source \
       /usr/src/linux-$(BUILD_KERNEL) \
       /usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
       /usr/src/kernel-headers-$(BUILD_KERNEL) \
       /usr/src/kernel-source-$(BUILD_KERNEL) \
       /usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
       /usr/src/linux

# prune the list down to only values that exist
# and have an include/linux sub-directory
test_dir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KSP := $(foreach dir, $(KSP), $(test_dir))

# we will use this first valid entry in the search path
ifeq (,$(KSRC))
 KSRC := $(firstword $(KSP))
endif

ifeq (,$(KSRC))
 $(error Linux kernel source not found)
else
ifeq (/lib/modules/$(shell uname -r)/source, $(KSRC))
 KOBJ :=  /lib/modules/$(shell uname -r)/build
else
 KOBJ :=  $(KSRC)
endif
endif

# check for version.h and autoconf.h for running kernel in /boot (SUSE)
ifneq (,$(wildcard /boot/vmlinuz.version.h))
 VERSION_FILE := /boot/vmlinuz.version.h
 CONFIG_FILE  := /boot/vmlinuz.autoconf.h
 KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | \
         grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g')
 ifeq ($(KVER),$(shell uname -r))
   # set up include path to override headers from kernel source
   x:=$(shell rm -rf include)
   x:=$(shell mkdir -p include/linux)
   x:=$(shell cp /boot/vmlinuz.version.h include/linux/version.h)
   x:=$(shell cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h)
   CFLAGS += -I./include
 else
   VERSION_FILE := $(KOBJ)/include/linux/version.h
   CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
 endif
else
 ifneq (,$(wildcard $(KOBJ)/include/linux/utsrelease.h))
   VERSION_FILE := $(KOBJ)/include/linux/utsrelease.h
 else
   VERSION_FILE := $(KOBJ)/include/linux/version.h
 endif
 CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
endif

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 autoconf.h)
endif

# pick a compiler
ifneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version)))
 CC := kgcc gcc cc
else
 CC := gcc cc
endif
test_cc = $(shell $(cc) --version > /dev/null 2>&1 && echo $(cc))
CC := $(foreach cc, $(CC), $(test_cc))
CC := $(firstword $(CC))
ifeq (,$(CC))
 $(error Compiler not found)
endif

# we need to know what platform the driver is being built on
# some additional features are only built on Intel platforms
ARCH := $(shell uname -m | sed 's/i.86/i386/')
ifeq ($(ARCH),alpha)
 CFLAGS += -ffixed-8 -mno-fp-regs
endif
ifeq ($(ARCH),x86_64)
 CFLAGS += -mcmodel=kernel -mno-red-zone
endif
ifeq ($(ARCH),ppc)
 CFLAGS += -msoft-float
endif
ifeq ($(ARCH),ppc64)
 CFLAGS += -m64 -msoft-float
 LDFLAGS += -melf64ppc
endif

# standard flags for module builds
CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall
CFLAGS += -I$(KSRC)/include -I.
CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \
           echo "-DMODVERSIONS -DEXPORT_SYMTAB \
                 -include $(KSRC)/include/linux/modversions.h")

CFLAGS += $(CFLAGS_EXTRA)
#ifeq (,$(shell echo $(CFLAGS_EXTRA) | grep NAPI))
#CFLAGS += -DE1000_NO_NAPI
#CFLAGS_EXTRA += -DE1000_NO_NAPI
#endif

RHC := $(KSRC)/include/linux/rhconfig.h
ifneq (,$(wildcard $(RHC)))
 # 7.3 typo in rhconfig.h
 ifneq (,$(shell $(CC) $(CFLAGS) -E -dM $(RHC) | grep __module__bigmem))
       CFLAGS += -D__module_bigmem
 endif
endif

# get the kernel version - we use this to find the correct install path
KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | grep UTS_RELEASE | \
       awk '{ print $$3 }' | sed 's/\"//g')

KKVER := $(shell echo $(KVER) | \
        awk '{ if ($$0 ~ /2\.[4-9]\./) print "1"; else print "0"}')
ifeq ($(KKVER), 0)
 $(error *** Aborting the build. \
         *** This driver is not supported on kernel versions older than 2.4.0)
endif

# set the install path
INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net/e1000

# look for SMP in config.h
SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
        grep -w CONFIG_SMP | awk '{ print $$3 }')
ifneq ($(SMP),1)
 SMP := 0
endif

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

ifeq ($(SMP),1)
 CFLAGS += -D__SMP__
endif

###########################################################################
# 2.4.x & 2.6.x Specific rules

K_VERSION:=$(shell uname -r | cut -c1-3 | sed 's/2\.[56]/2\.6/')

ifeq ($(K_VERSION), 2.6)

# Makefile for 2.6.x kernel
TARGET = e1000.ko

# man page
MANSECTION = 7
MANFILE = $(TARGET:.ko=.$(MANSECTION))

ifneq ($(PATCHLEVEL),)
EXTRA_CFLAGS += $(CFLAGS_EXTRA)
obj-m += e1000.o
e1000-objs := $(CFILES:.c=.o)
else
default:
ifeq ($(KOBJ),$(KSRC))
       make -C $(KSRC) SUBDIRS=$(shell pwd) modules
else
       make -C $(KSRC) O=$(KOBJ) SUBDIRS=$(shell pwd) modules
endif
endif

else # ifeq ($(K_VERSION),2.6)

# Makefile for 2.4.x kernel
TARGET = e1000.o

# man page
MANSECTION = 7
MANFILE = $(TARGET:.o=.$(MANSECTION))

# Get rid of compile warnings in kernel header files from SuSE
ifneq (,$(wildcard /etc/SuSE-release))
 CFLAGS += -Wno-sign-compare -fno-strict-aliasing
endif

# Get rid of compile warnings in kernel header files from fedora
ifneq (,$(wildcard /etc/fedora-release))
 CFLAGS += -fno-strict-aliasing
endif

.SILENT: $(TARGET)
$(TARGET): $(filter-out $(TARGET), $(CFILES:.c=.o))
       $(LD) $(LDFLAGS) -r $^ -o $@
       echo; echo
       echo "**************************************************"
       echo "** $(TARGET) built for $(KVER)"
       echo -n "** SMP               "
       if [ "$(SMP)" = "1" ]; \
               then echo "Enabled"; else echo "Disabled"; fi
       echo "**************************************************"
       echo

$(CFILES:.c=.o): $(HFILES) Makefile
default:
       make

endif # ifeq ($(K_VERSION),2.6)

ifeq (,$(MANDIR))
 # find the best place to install the man page
 MANPATH := $(shell (manpath 2>/dev/null || echo $MANPATH) | sed 's/:/ /g')
 ifneq (,$(MANPATH))
   # test based on inclusion in MANPATH
   test_dir = $(findstring $(dir), $(MANPATH))
 else
   # no MANPATH, test based on directory existence
   test_dir = $(shell [ -e $(dir) ] && echo $(dir))
 endif
 # our preferred install path
 # should /usr/local/man be in here ?
 MANDIR := /usr/share/man /usr/man
 MANDIR := $(foreach dir, $(MANDIR), $(test_dir))
 MANDIR := $(firstword $(MANDIR))
endif
ifeq (,$(MANDIR))
 # fallback to /usr/man
 MANDIR := /usr/man
endif

# depmod version for rpm builds
DEPVER := $(shell /sbin/depmod -V 2>/dev/null | \
         awk 'BEGIN {FS="."} NR==1 {print $$2}')

###########################################################################
# Build rules

$(MANFILE).gz: ../$(MANFILE)
       gzip -c $< > $@

install: default $(MANFILE).gz
       # remove all old versions of the driver
       find $(INSTALL_MOD_PATH)/lib/modules/$(KVER) -name $(TARGET) -exec rm -f {} \; || true
       find $(INSTALL_MOD_PATH)/lib/modules/$(KVER) -name $(TARGET).gz -exec rm -f {} \; || true
       install -D -m 644 $(TARGET) $(INSTALL_MOD_PATH)$(INSTDIR)/$(TARGET)
ifeq (,$(INSTALL_MOD_PATH))
       /sbin/depmod -a || true
else
 ifeq ($(DEPVER),1 )
       /sbin/depmod -r $(INSTALL_MOD_PATH) -a || true
 else
       /sbin/depmod -b $(INSTALL_MOD_PATH) -a -n $(KVERSION) > /dev/null || true
 endif
endif
       install -D -m 644 $(MANFILE).gz $(INSTALL_MOD_PATH)$(MANDIR)/man$(MANSECTION)/$(MANFILE).gz
       man -c -P'cat > /dev/null' $(MANFILE:.$(MANSECTION)=) || true

uninstall:
       if [ -e $(INSTDIR)/$(TARGET) ] ; then \
           rm -f $(INSTDIR)/$(TARGET) ; \
       fi
       /sbin/depmod -a
       if [ -e $(MANDIR)/man$(MANSECTION)/$(MANFILE).gz ] ; then \
               rm -f $(MANDIR)/man$(MANSECTION)/$(MANFILE).gz ; \
       fi

.PHONY: clean install

clean:
       rm -rf $(TARGET) $(TARGET:.ko=.o) $(TARGET:.ko=.mod.c) $(TARGET:.ko=.mod.o) $(CFILES:.c=.o) $(MANFILE).gz .*cmd .tmp_versions

 

tak wiec dodalem w sekcji envoirment tests

linijke /usr/src/redhat/SOURCES

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
        /lib/modules/$(BUILD_KERNEL)/source \
        /usr/src/linux-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
        /usr/src/kernel-headers-$(BUILD_KERNEL) \
        /usr/src/kernel-source-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux
        /usr/src/redhat/SOURCES

wywalilo mi blad

Makefile:53: *** brakujacy separator (czyzby mial byc TAB zamiast 8 spacji?). Stop.

Robilem to przez mcedit tak wiec wiersz cofnalem do konca backspace i nacisnalem kilka razy TAB aby dorównac do wiersza.

Po zapisaniu pliku, gdy robie make file wywala mi

Makefile:53: *** polecenia zaczynaja sie przed pierwszym obiektem. Stop.

 

Prosze bardzo o pomoc co mam zrobic i co robie zle by zadzialalo mi make install ??????!!!

Próbowalem szukac gotowego rpm dlla tej karty ale nie moglem znalesc, jesli komus z was udaloby sie to prosze o linka !!!!

Odnośnik do komentarza
Udostępnij na innych stronach

tak więc dodałem w sekcji envoirment tests

linijkę /usr/src/redhat/SOURCES

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
        /lib/modules/$(BUILD_KERNEL)/source \
        /usr/src/linux-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
        /usr/src/kernel-headers-$(BUILD_KERNEL) \
        /usr/src/kernel-source-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux
        /usr/src/redhat/SOURCES

po /usr/src/linux dodaj \

Pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

dodałem \

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
        /lib/modules/$(BUILD_KERNEL)/source \
        /usr/src/linux-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
        /usr/src/kernel-headers-$(BUILD_KERNEL) \
        /usr/src/kernel-source-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux \
        /usr/src/redhat/SOURCES \

i dalej mam

[root@localhost src]# make install

Makefile:66: *** Linux kernel source not found. Stop.

 

Co robić!!! ???????? :(

Odnośnik do komentarza
Udostępnij na innych stronach

dodałem \

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
        /lib/modules/$(BUILD_KERNEL)/source \
        /usr/src/linux-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
        /usr/src/kernel-headers-$(BUILD_KERNEL) \
        /usr/src/kernel-source-$(BUILD_KERNEL) \
        /usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux \
        /usr/src/redhat/SOURCES \

Teraz znow troche przedobrzyles ;)

Dodales dwa \ :D ten drugi po /usr/src/redhat/SOURCES nie jest potrzebny...

Odnośnik do komentarza
Udostępnij na innych stronach

Witam.Mama kartę sieciową INTEL pro/1000 MT Dual port (serwerowa).Na FC 6 mam następujący problem . gry robię make install wywala mi coś takiego

[root@localhost e1000-7.2.9]# cd src
[root@localhost src]# make install
Makefile:65: *** Linux kernel source not found. Stop.

1° Dlaczego nie używasz modułu dostarczanego z jądrem?

2° Skoro już kompilujesz ręcznie sterownik, to dlaczego taka stara wersja? Przecież jest już nowsza → http://sourceforge.net/project/showfiles.p...ackage_id=54835

 

Przeczytałem że w pliku Makefile trzeba zmienić ścieżkę do źródeł bo może instalator nie widzi ich tak więc oryginalny plik make file wyglądał tak

 

[ciach - pełno śmieciowatych komend]

Ten Makefile to horror... Zastąp go tym:

obj-m := e1000.o

e1000-objs := e1000_ethtool.o \
        e1000_hw.o \
        e1000_main.o \
        e1000_param.o \
        kcompat.o \

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

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

(daj cytuj i wtedy skopiuj tekst, bo IPB zamienia tabulacje na spacje).

 

W źródłach jest jeszcze błąd - z pliku e1000.h usuń linijkę:

 

#include <linux/config.h>

 

Potem tylko wrzucić moduł do /lib/modules/$(uname -r)/extra/ i odpalić demod -ae.

 

Ja Ci jednak radzę korzystać z modułu dostarczanego z jądrem.

Odnośnik do komentarza
Udostępnij na innych stronach

name='gajownik' date='5 Nov 2006, 0:14 ' post='73995']

1° Dlaczego nie używasz modułu dostarczanego z jądrem?

2° Skoro już kompilujesz ręcznie sterownik, to dlaczego taka stara wersja?

Nie wiedziałem ze na sourceforge jest nowsza wersja.Na logikę myślałem że na stornie producenta karty dostanę najnowsze starowniki a tam są takie

http://downloadfinder.intel.com/scripts-df...mp;submit=Go%21

Intel widać daje później nowsze sterowniki na swojej stronie ponieważ kiedy je ściągałem to wersja którą ściągnąłem była najnowszą dostępną.

 

Gajownik skąd wiedziałeś o tym błędzie? Łebski z ciebie gość naprawdę jestem pod wrażeniem.

W źródłach jest jeszcze błąd - z pliku e1000.h usuń linijkę:

Jednakże dalej pokazuje mi że nie może znaleźć źródeł.Ściągnąłem numer jądra.src.rpm oraz kernel-devel kernel-headers rpm-build gdy uruchamiam źródła z normalnego usera to wywala mi błąd

że nie może znaleść użytkownika i grupy bewbuilder i używa użytkownika root jednakże katalogi SPEC i SOURCES powstają.

Co robie źle? Możecie podesłać mi jakiś oficjalny link do budowy źródeł?

 

Na innym kompie też na FC6 udało mi się zrobić rpm ze źródeł dla tej karty a u siebie nie mogę.Prawdopodobnie mam źle zainstalowane źródła??

Jak to sprawdzić?

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Na innym kompie też na FC6 udało mi się zrobić rpm ze źródeł dla tej karty a u siebie nie mogę.Prawdopodobnie mam źle zainstalowane źródła??

Jak to sprawdzić?

 

To dlaczego z niego nie skorzystasz? Nie ma znaczenia na jakim kompie robisz rpm... przykładem mogą być repo ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Na logikę myślałem że na stornie producenta karty dostanę najnowsze starowniki

Tu się można grubo pomylić. Tak samo jest ze sterownikami do kart graficznych Intela ;-)

Gajownik skąd wiedziałeś o tym błędzie?

Skompilowałem? :P Miałem podobny problem z innymi modułami jądra. A tak przy okazji, dlaczego nie korzystasz z tego dostarczanego z kernelem?

Jednakże dalej pokazuje mi że nie może znaleźć źródeł.

Co pokazuje polecenie:

ls /lib/modules/$(shell uname -r)/build

Ściągnąłem numer jądra.src.rpm

To Ci jest całkowicie niepotrzebne.

oraz kernel-devel

Co pokazują komendy:

rpm -q kernel kernel-devel
uname -r

gdy uruchamiam źródła z normalnego usera to wywala mi błąd

że nie może znaleść użytkownika i grupy bewbuilder i używa użytkownika root jednakże katalogi SPEC i SOURCES powstają.

To jest mało ważne ostrzeżenie. Nic praktycznie nie znaczy, oprócz tego, że nie masz w systemie tej grupy/użytkownika ;-)

Co robie źle? Możecie podesłać mi jakiś oficjalny link do budowy źródeł?

Źródła jądra nie są Ci potrzebne. Wystarczą same pliki nagłówkowe.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...