(Gelöst) Treiber für die Netzwerkkarte "IC PLUS IP1000"

Status
Für weitere Antworten geschlossen.

robi_83

New Member
(Gelöst) Treiber für die Netzwerkkarte "IC PLUS IP1000"

Guten Tag,

ich hoffe ihr könnt mir weiter helfen.

Und zwar habe ich jetzt SuSE Linux 10.1 installiert. Als ich dann meine Netzwerk verbindung testen wollte habe ich festgestellt das es nicht funktioniert.

Wenn ich mit Yast2 meine Karte einstellen möchte ist sie dort nicht zu finden.
Ich dachte mir ok dann hat SuSE halt nicht die Treiber, unter Kubuntu hat sie funktioniert...

Dann bin ich auf die Herstellerseite und habe mir hier den Treiber unter "Linux Driver for Kernel 2.6.X and 2.4.X" heruntergeladen.

Da ich heute morgen schon mal auf der Seite war und dann das Forum ein bischen gelesen hatte wie andere Karten installiert werden habe ich eben die Kernel Qellen aufgespielt.

Jetzt mein Problem in der Readme ist zwar beschrieben wie es funktioneren soll aber ich schaff es einfach nicht da der dort beschriebene make Befehl "make all => generate ipg.ko" mir folgende Meldung ausgibt:

*** empty variable name. Stop.


Heist das vllt das die dateien verkehrt programiert sind?


Ich hoffe das ihr mir weiterhelfen könnt.
 

Rain_Maker

Administrator
Teammitglied
Verdammt gut getippt....

Jacko schrieb:
Hm *grübel*

Versuche mal einfach
Code:
make all
Code:
mkdir IA1000
cp Desktop/IP1000A\ Linux\ driver\ v2.09f.zip IA1000/
17:06 linux:~ > cd IA1000/
17:06 linux:~/IA1000 > unzip IP1000A\ Linux\ driver\ v2.09f.zip
Archive:  IP1000A Linux driver v2.09f.zip
  inflating: ipg_macros.h
  inflating: ipg_constants.h
  inflating: ipg.h
  inflating: ipg_main.c
  inflating: ipg_structs.h
  inflating: ipg_tune.h
  inflating: make2.2.sh
  inflating: make2.2mod.sh
  inflating: Makefile
  inflating: PhyParam.h
  inflating: readme.txt
Nur das "Vorgeplänkel": Treiber in einem extra-Ordner entpacken, den ich vorher mit "mkdir" erstellt habe.

Danach "Dienst nach Vorschrift", wobei ich nach "make all" abweiche, das was dort im README steht ist ziemlich unbequem, so geht das besser. Allerdings lag Dein Fehler ganz wo anders *g*.

Code:
17:06 linux:~/IA1000 > make all
make -C /lib/modules/2.6.16.21-0.13-default/build SUBDIRS=/home/testuser/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.21-0.13-obj/i386/default'
make -C ../../../linux-2.6.16.21-0.13 O=../linux-2.6.16.21-0.13-obj/i386/default modules
  CC [M]  /home/testuser/IA1000/ipg_main.o
  LD [M]  /home/testuser/IA1000/ipg.o
  Building modules, stage 2.
  MODPOST
  CC      /home/testuser/IA1000/ipg.mod.o
  LD [M]  /home/testuser/IA1000/ipg.ko
make[1]: Leaving directory `/usr/src/linux-2.6.16.21-0.13-obj/i386/default'
17:06 linux:~/IA1000 > su
Passwort:
17:06 linux:/home/testuser/IA1000 # make install
install -m 644 -c ipg.ko /lib/modules/2.6.16.21-0.13-default/kernel/drivers/net/
17:06 linux:/home/testuser/IA1000 # depmod -a
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c503-i3861.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c503-i3863.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c505-rfmd2958.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76_usbdfu.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/ieee80211_crypt-r8180.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/av5100.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c503-rfmd-acc.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/pbe5.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c503-rfmd.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c505a-rfmd2958.ko: No such file or directory
WARNING: Can't read module /lib/modules/2.6.16.21-0.13-default/weak-updates/at76c505-rfmd.ko: No such file or directory
17:06 linux:/home/testuser/IA1000 # modprobe ipg
17:07 linux:/home/testuser/IA1000 # lsmod | grep ipg
ipg                    15108  0
17:07 linux:/home/testuser/IA1000 #
Geht doch.

Greetz,

RM

P.S. Mal was ausprobiert:

Code:
 make all => generate ipg.ko
make: *** Leerer Variablenname.  Schluss.
*Schmunzel*.

Eigentlich kein Vorwurf an den OP, wenn man sich wirklich an das README hält und das 1:1 übernimmt wundert sich make über das seltsame "Anhängsel", das eigentlich nur ein Kommentar des README ist. Ist mir zumindest lieber, als jemand, der ein README gar nicht liest, einfach dumm gelaufen, so gehts jedenfalls.

P.P.S. @robi_83. Den Ordner mit dem entpackten Quellcode unbedingt auf dem System lassen, Du wirst nach jedem Kernelupdate diese kleine Prozedur wiederholen müssen, das ist aber alles halb so wild.

Code:
cd /Ordner_mit_dem_Quellcode/ (wo immer Du ihn auch hingepackt hast)

make clean

make all

su

make install

depmod -a

modprobe ipg
Fertig.
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Danke für eure schnelle Hilfe

@Rain_Maker die Sche mit der Readme das hinter dem Befehl "Make all" ein Kommentar steht ist ja echt doof.
Ich kenn es so das man Komentare in "" setzt bzw ein ' vor dem Komentar schreibt.


Naja egal
ich hab die Anweisungen jetzt ausprobiert.

Unter meinem "User" kann ich den Befehl "Make all" nicht ausfüren. Da hab ichs dann als "root" gemacht.

Da hab ich dann volgende Meldung erhalten:




Spielor:/home/robi/IP1000 # make clean

rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
Spielor:

/home/robi/IP1000 # make all

make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/robi/IP1000 modules
make[1]: Entering directory
`/usr/src/linux-2.6.16.13-4-obj/i386/default
'
make[1]: Nothing to be done for `modules'.
make[1]: Leaving directory
`/usr/src/linux-2.6.16.13-4-obj/i386/default'



Hmm

was bedeutet denn das?

Muß ich erst meinen Kernel neu komelieren damit ich dem etwas neues hinzufügen kann?


gruß
Robi
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

kernel-default-2.6.16.13-4
kernel-docs-2.6.16.13-4
kernel-source-2.6.16.13-4


Ist die Ausgabe
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

robi_83 schrieb:
kernel-default-2.6.16.13-4
kernel-docs-2.6.16.13-4
kernel-source-2.6.16.13-4
Ist die Ausgabe
Das sieht eigentlich OK aus.

Poste doch bitte mal die gesamte Ausgabe des Kompilierversuches.

Wie genau heisst das Verzeichnis mit dem entpackten Quellcode, sind da vielleicht Leerzeichen im Pfad?

Was genau liegt in dem Verzeichnis drin?

Code:
ls -ls
(im entsprechenden Verzeichnis ausführen bitte)

Greetz,

RM
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Sodele

sry fürs späte antworten.
Ich hatte besuch von meiner Freundin am Wochenende, und die findet das nicht so toll wenn ich soviel am PC sitze...


Naja egal


Also ich hab dann nochmal alles von vorne gemacht.

Ich hab mich als Root angemeldet

dann ein Verzeichniss im Stammverzeichniss / erstellt

Code:
mkdir IA1000
Und dann per unzip das Archiv dahin auspacken lassen.

und dann in das Verzeichniss gewechselt.
Code:
Spielor:~/Desktop # unzip IP1000A\ Linux\ driver\ v2.09f.zip  -d /IA1000/
Archive:  IP1000A Linux driver v2.09f.zip
  inflating: /IA1000/ipg_macros.h
  inflating: /IA1000/ipg_constants.h
  inflating: /IA1000/ipg.h
  inflating: /IA1000/ipg_main.c
  inflating: /IA1000/ipg_structs.h
  inflating: /IA1000/ipg_tune.h
  inflating: /IA1000/make2.2.sh
  inflating: /IA1000/make2.2mod.sh
  inflating: /IA1000/Makefile
  inflating: /IA1000/PhyParam.h
  inflating: /IA1000/readme.txt
Spielor:~/Desktop # cd ..
Spielor:~ # cd ..
Spielor:/ # cd IA1000/
Nun habe ich mir den Inhalt des Ordners angeschaut,
und dann das Kompilieren versucht:
Code:
Spielor:/IA1000 # ls
Makefile    ipg_constants.h  ipg_structs.h  make2.2mod.sh
PhyParam.h  ipg_macros.h     ipg_tune.h     readme.txt
ipg.h       ipg_main.c       make2.2.sh
Spielor:/IA1000 # make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: Nothing to be done for `modules'.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'

und schließlich habe ich dann noch den Befehl 'ls -ls eingegeben.
Code:
Spielor:/IA1000 # ls -ls
total 228
  4 -rw------- 1 root root   3000 Jun 23  2005 Makefile
  4 -rw------- 1 root root   2930 Jun 16  2005 PhyParam.h
  8 -rw------- 1 root root   5234 Jun 22  2005 ipg.h
 24 -rw------- 1 root root  22371 Jun 16  2005 ipg_constants.h
 24 -rw------- 1 root root  20833 Jun 16  2005 ipg_macros.h
132 -rw------- 1 root root 130545 Jun 23  2005 ipg_main.c
  4 -rw------- 1 root root   3990 Jun 16  2005 ipg_structs.h
 12 -rw------- 1 root root  10321 Jun 23  2005 ipg_tune.h
  4 -rw------- 1 root root    129 Jun 16  2005 make2.2.sh
  4 -rw------- 1 root root    198 Jun 16  2005 make2.2mod.sh
  8 -rw------- 1 root root   5109 Apr 18 18:38 readme.txt
Spielor:/IA1000 #
Ich hoffe das uns das jetzt weiter hilft;)
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

OK,

eines vorweg, das Kompilieren selbst sollte auch als User gehen, nur das "make install" erfordert Root-Rechte.

Ich denke das Problem liegt bei der (noch) fehlenden Konfigurationsdatei für die Kernelquellen oder bei fehlender Verlinkung, denn der Compiler kann mit "modules" nichts anfangen.

Es gibt prinzipiell 2 Möglichkeiten, versuche sie in dieser Reihenfolge.

Code:
cd /usr/src/linux

ls 

arch     CREDITS        drivers  init    kdb     localversion-rpm-release  mm      README.SUSE     security
block    crypto         fs       ipc     kernel  MAINTAINERS               net     REPORTING-BUGS  sound
COPYING  Documentation  include  Kbuild  lib     Makefile                  README  scripts         usr
nur um auf Nummer sicher zu gehen, daß Du im richtigen Verzeichnis bist, so in etwas muß das aussehen.

Code:
make cloneconfig
=> müsste als User eigentlich gehen, wenn nicht als root ausführen.

*Ratter Ratter*
Code:
ls  .conf*
.config
==> Nun ist eine Konfigurationsdatei da, welche aus der aktuellen Konfiguration des Kernels "geklont" wurde (cloneconfig).

Sollte das nicht gehen, dann geht vielleicht das hier.

http://www.thomashertweck.de/kernel26.html#klonen
Code:
$> zcat /proc/config.gz > .config
Das müsste eigentlich schon reichen.

Danach das Modul für die Netzwerkkarte wie beschrieben kompilieren.

Prüfe ausserdem, ob der Link "/usr/src/linux" auf das Verzeichnis der aktuellen Kernelquellen "/usr/src/linux-2.6.16.13-4/" zeigt.

Code:
cd /usr/src/

ls -ls
0 lrwxrwxrwx  1 root root  21 2006-08-30 18:19 linux -> linux-2.6.16.13-4/
Sonst könnte es Probleme beim Verlinken geben. Sollte das nicht der Fall sein, dann als root
Code:
cd /usr/src/

rm linux
=> Entfernt einen möglicherweise vorhandenen, falsch gesetzten Link.
Code:
ln -s linux-2.6.16.13-4/ linux
"Setze einen symbolischen (-s) Link auf das Verzeichnis "linux-2.6.16.13-4/" und nenne ihn "linux".

Code:
ln --help

ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
In the 1st form, create a link to TARGET with the name LINK_NAME.
-s, --symbolic    Symbolische statt harter Verknüpfung erzeugen.
Greetz

RM
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Naja irgendwie ist da mein Benutzer wohl extrem mit rechten abgespeckt...

Klappte alles nur als root.
bis auf das Kompilieren des Treibers.

Dafür habe ich jetzt aber eine "neue" Meldung bekommen

jetzt sieht das so aus:
Code:
Spielor:/IA1000 # make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: Für das Ziel »modules« ist nichts zu tun.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
Spielor:/IA1000 #
Also der Unterschied zur vorherigen ist halt nur dsa es jetzt auf Deutsch erscheint, und das modules jetzt zwischen >> << , und vorher `...

Hast du noch eine Idee?
Oder habe ich etwas verkehrt gemacht?

also jedliche art des clonenens hat keine Fehlermeldung erbracht. Soweit ich halt zurück scrolen konnte.
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Hm,

Ich kann Dein Problem einfach nicht nachvollziehen, bei mir war das ein "make" als user und ein "make install" als root und fertig.

Was Du noch vor der "Radikalkur" weiter unten machen kannst ist ein:
Code:
cd /usr/src/linux

make modules_prepare
Und dann auf ein Neues.

Was mir übrigens gar nicht gefällt (und wohl auch bedingt, daß Du alles nur als root machen kannst) ist die Lage des Ordners.

Wenn ich das richtig sehe, dann liegt der direkt auf /.

Ich würde folgendes machen (sauberer Weg).

1. Kernelquellen erneut installieren (von CD/DVD), Paket "kernel-source" in Yast auf "unbedingt aktualisieren" oder löschen und erneut installieren.

2. Ordner im eigenen HOME-Verzeichnis anlegen und dort den Quellcode des Treibers entpacken und als User kompilieren. Der Ordner kann heissen, wie er will, Hauptsache keine Sonder-/Leerzeichen rein, das könnte Probleme machen.

Greetz,

RM
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Ich hab dann so manches dann nochmal ausprobiert und ein prob gelöst...

Ziemlich böld aber logisch:D

Der Ordner in dem die Treiber waren wurde von root erstellt, ist ja dann auch klar warum der User da nichts machen kann...


Nun weiter mit meiner Karte:

Ich habe zuerst die Quellen geupdated, und das ganze nochmal durchlauf lassen(mit dem User habe ich dann auch den Ordner erstellt und die Dateien entzipt) aber nicht erfolgreich.

Dann habe ich die "Radikalkur" gemacht Kerenl-Quellen neu installiert.

dann sieht die Sache jetzt so aus nach dem "make all" Befehl
Code:
Spielor:/home/robi/IA1000 # make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/robi/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: »modules« ist bereits aktualisiert.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
Spielor:/home/robi/IA1000 #
Also das ist ja mal was neues.

»modules« ist bereits aktualisiert.

aber "make install" geht immer noch nicht da die Datei ???.ko nicht erstellt ist.
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Diese Fehlermeldung ist mir (und Google) gänzlich unbekannt?!?

Poste doch mal bitte das Makefile.

So sieht das bei mir aus:
Code:
#
# Makefile for IC Plus Ethernet Adapter driver for Linux
# Copyright (c) 2004 by IC Plus Corporation.
#
#
OBJS	= ipg_main.o
TARGET  = ipg.o
MAPPING_MODE= -DUSE_IO_OPS
#MAPPING_MODE= -DUSE_IO_OPS -DJUMBO_FRAME -DJUMBO_FRAME_SIZE_4K

KernelVersion            := $(shell uname -r)
KernelBuildDir           := /lib/modules/$(KernelVersion)/build
kernelMisc               := /lib/modules/$(KernelVersion)/kernel/drivers/net/
kernelExtension          := $(shell echo $(KernelVersion) | sed -ne 's/^2\.[567]\..*/k/p')o
kernelFlag26               := kernel2$(shell echo $(KernelVersion) | sed -ne 's/^2\.[6]\..*/6/p')x


#======================Makefile for kernel 2.2.x and 2.4.x======================
ifneq ($(kernelFlag26),kernel26x)
CC 	= gcc
CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -Wstrict-prototypes -I$(INCLUDEDIR)
EXTRA_CFLAGS := $(MAPPING_MODE) 
EXTRA_CFLAGS := $(EXTRA_CFLAGS) -D_COMPAT_WITH_OLD_KERNEL


KernelSrcPath :=  /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/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux
FindDir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KernelSrcPath := $(foreach dir, $(KernelSrcPath), $(FindDir))
KernelSrc := $(firstword $(KernelSrcPath))

# Support Linux software VLAN
#EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DCONFIG_VLAN_8021Q

#EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DEXTRA_STATS
#DEBUG_FLAGS = -O -g -DALTA_DEBUG
K_VER=$(shell uname -r)
INCLUDEDIR=$(shell if [ -e /usr/src/linux-$(K_VER)/include ]; \
	then echo "/usr/src/linux-$(K_VER)/include"; \
	elif [ -e /usr/src/linux-2.4/include ]; \
	then echo "/usr/src/linux-2.4/include"; \
	elif [ -e /usr/src/linux/include ]; \
	then echo "/usr/src/linux/include"; \
	else echo "/usr/include"; fi)
#
# Old kernel need to configure modversions.h
#
#EXTRA_CFLAGS := $(EXTRA_CFLAGS) \
#	$(shell if [ -e $(INCLUDEDIR)/linux/modversions.h ]; \
#	then echo -DCONFIG_MODVERSIONS; fi)

CFLAGS+=$(shell [ -f $(KernelSrc)/include/linux/modversions.h ] && \
                echo "-DMODVERSIONS -include $(KernelSrc)/include/linux/modversions.h")
                
$(TARGET):	$(OBJS)
		$(LD) -r -o $@ $(OBJS)
#
# Dependency to create object file.
#
all:    $(TARGET)
#
#
# Common make rules
# 
%.o:%.c
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG_FLAGS) -c -o $@ $< 
endif


#===========================Makefile for kernel 2.6.x===========================
ifeq ($(kernelFlag26),kernel26x)
EXTRA_CFLAGS+=$(MAPPING_MODE)

all:
	$(MAKE) -C $(KernelBuildDir) SUBDIRS=$(PWD) modules 
	
install:
	install -m 644 -c ipg.$(kernelExtension) $(kernelMisc)

ipg-objs:=$(OBJS)
obj-m+=$(TARGET)
endif

#===========================Makefile common section============================
# Delete existing object file 
#
clean:
	rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
Ich habe das Modul jetzt unter SuSE 10.0/10.1, Ubuntu 6.06.1 und gerade eben auch unter Knoppix 5.0 kompiliert und es war immer der selbe, simple (und erfolgreiche) Ablauf.

http://www.icplus.com.tw/Data/driver/IP1000A Linux driver v2.09f.zip

1. Runtergeladen

2.
Code:
 mkdir IP1000A (Diesmal hab ich einen anderen Namen für das Verzeichnis gewählt, aber das sollte egal sein)

cp IP1000A\ Linux\ driver\ v2.09f.zip /home/knoppix/IP1000A
cd IP1000A/
unzip IP1000A\ Linux\ driver\ v2.09f.zip
Archive:  IP1000A Linux driver v2.09f.zip
  inflating: ipg_macros.h
  inflating: ipg_constants.h
  inflating: ipg.h
  inflating: ipg_main.c
  inflating: ipg_structs.h
  inflating: ipg_tune.h
  inflating: make2.2.sh
  inflating: make2.2mod.sh
  inflating: Makefile
  inflating: PhyParam.h
  inflating: readme.txt

make all
make -C /lib/modules/2.6.15/build SUBDIRS=/home/knoppix/IP1000A modules
make[1]: Entering directory `/UNIONFS/usr/src/linux-2.6.15.4'
  CC [M]  /home/knoppix/IP1000A/ipg_main.o
  LD [M]  /home/knoppix/IP1000A/ipg.o
  Building modules, stage 2.
  MODPOST
  CC      /home/knoppix/IP1000A/ipg.mod.o
  LD [M]  /home/knoppix/IP1000A/ipg.ko
make[1]: Leaving directory `/UNIONFS/usr/src/linux-2.6.15.4'
 su
make install
install -m 644 -c ipg.ko /lib/modules/2.6.15/kernel/drivers/net/
depmod -a
modprobe ipg
lsmod | grep ipg
ipg                    18436  0
Und das lief auf jedem System exakt gleich ab, "Dienst nach Vorschrift".

Das ist alles etwas mysteriös, warum das bei Dir nicht klappen soll.

Poste doch bitte dazu noch folgende Ausgaben.

Code:
rpm -qa | grep gcc
rpm -qa | grep make
Greetz,

RM
 

Jacko

Moderator
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Hallo robi83...

Nur so eine Idee, aber vielleicht kannst Du mal bitte die Ausgabe von
Code:
make install
posten?

Grüße

Jacko
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Hmm

Diese Fehlermeldung ist mir (und Google) gänzlich unbekannt?!?
Das ist natürlich bitter...

Hier die Ausgaben
1.rpm -qa | grep gcc && rpm -qa | grep make
Code:
Spielor:/ # rpm -qa | grep gcc && rpm -qa | grep make
libgcc-4.1.0-25
gcc-c++-4.1.0-25
gcc-4.1.0-25
make-3.80-200
automake-1.9.6-11
unsermake-0.4_20060307-11
Spielor:/ #
2.make all & make install
Code:
Spielor:/home/robi/IA1000 # make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/robi/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: »modules« ist bereits aktualisiert.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
Spielor:/home/robi/IA1000 # make install
install -m 644 -c ipg.ko /lib/modules/2.6.16.13-4-default/kernel/drivers/net/
install: Aufruf von stat für „ipg.ko“ nicht möglich: Datei oder Verzeichnis nicht gefunden
make: *** [install] Fehler 1
Spielor:/home/robi/IA1000 #
3.Makefile
Code:
#
# Makefile for IC Plus Ethernet Adapter driver for Linux
# Copyright (c) 2004 by IC Plus Corporation.
#
#
OBJS	= ipg_main.o
TARGET  = ipg.o
MAPPING_MODE= -DUSE_IO_OPS
#MAPPING_MODE= -DUSE_IO_OPS -DJUMBO_FRAME -DJUMBO_FRAME_SIZE_4K

KernelVersion            := $(shell uname -r)
KernelBuildDir           := /lib/modules/$(KernelVersion)/build
kernelMisc               := /lib/modules/$(KernelVersion)/kernel/drivers/net/
kernelExtension          := $(shell echo $(KernelVersion) | sed -ne 's/^2\.[567]\..*/k/p')o
kernelFlag26               := kernel2$(shell echo $(KernelVersion) | sed -ne 's/^2\.[6]\..*/6/p')x


#======================Makefile for kernel 2.2.x and 2.4.x======================
ifneq ($(kernelFlag26),kernel26x)
CC 	= gcc
CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -Wstrict-prototypes -I$(INCLUDEDIR)
EXTRA_CFLAGS := $(MAPPING_MODE) 
EXTRA_CFLAGS := $(EXTRA_CFLAGS) -D_COMPAT_WITH_OLD_KERNEL


KernelSrcPath :=  /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/\([0-9]*\.[0-9]*\)\..*/\1/') \
        /usr/src/linux
FindDir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KernelSrcPath := $(foreach dir, $(KernelSrcPath), $(FindDir))
KernelSrc := $(firstword $(KernelSrcPath))

# Support Linux software VLAN
#EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DCONFIG_VLAN_8021Q

#EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DEXTRA_STATS
#DEBUG_FLAGS = -O -g -DALTA_DEBUG
K_VER=$(shell uname -r)
INCLUDEDIR=$(shell if [ -e /usr/src/linux-$(K_VER)/include ]; \
	then echo "/usr/src/linux-$(K_VER)/include"; \
	elif [ -e /usr/src/linux-2.4/include ]; \
	then echo "/usr/src/linux-2.4/include"; \
	elif [ -e /usr/src/linux/include ]; \
	then echo "/usr/src/linux/include"; \
	else echo "/usr/include"; fi)
#
# Old kernel need to configure modversions.h
#
#EXTRA_CFLAGS := $(EXTRA_CFLAGS) \
#	$(shell if [ -e $(INCLUDEDIR)/linux/modversions.h ]; \
#	then echo -DCONFIG_MODVERSIONS; fi)

CFLAGS+=$(shell [ -f $(KernelSrc)/include/linux/modversions.h ] && \
                echo "-DMODVERSIONS -include $(KernelSrc)/include/linux/modversions.h")
                
$(TARGET):	$(OBJS)
		$(LD) -r -o $@ $(OBJS)
#
# Dependency to create object file.
#
all:    $(TARGET)
#
#
# Common make rules
# 
%.o:%.c
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG_FLAGS) -c -o $@ $< 
endif


#===========================Makefile for kernel 2.6.x===========================
ifeq ($(kernelFlag26),kernel26x)
EXTRA_CFLAGS+=$(MAPPING_MODE)

all:
	$(MAKE) -C $(KernelBuildDir) SUBDIRS=$(PWD) modules 
	
install:
	install -m 644 -c ipg.$(kernelExtension) $(kernelMisc)

ipg-objs:=$(OBJS)
obj-m+=$(TARGET)
endif

#===========================Makefile common section============================
# Delete existing object file 
#
clean:
	rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

OK,

Dann machen wir das Ganze mal so sauber, wie es nur sein kann.

- Kernel-Tree aufräumen und cloneconfig.

Code:
cd /usr/src/linux/

su

(Passwort)

make clean

make cloneconfig
- Ins Verzeichnis mit dem Teiberquellcode wechseln und schrittweise vorgehen.

Code:
cd /home/robi/IA1000/

make clean

make

su

(Passwort)

make install

depmod -a

modprobe ipg

lsmod|grep ipg
Greetz,

RM
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

hat mir dann jetzt auch nicht weiter geholfen

Code:
Spielor:/home/robi/IA1000 # make clean make
rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
make: *** Keine Regel, um »make« zu erstellen.  Schluss.
Spielor:/home/robi/IA1000 # make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/robi/IA1000 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: »modules« ist bereits aktualisiert.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
Spielor:/home/robi/IA1000 # make install
install -m 644 -c ipg.ko /lib/modules/2.6.16.13-4-default/kernel/drivers/net/
install: Aufruf von stat für „ipg.ko“ nicht möglich: Datei oder Verzeichnis nicht gefunden
make: *** [install] Fehler 1
Spielor:/home/robi/IA1000 # depmod -a
Spielor:/home/robi/IA1000 # modprobe ipg
FATAL: Module ipg not found.
Spielor:/home/robi/IA1000 # lsmod|grep ipg
Spielor:/home/robi/IA1000 #
 

Jacko

Moderator
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Was sehen meine müden Augen da?

robi schrieb:
Spielor:/home/robi/IA1000 # make clean make
Na, wer lesen kann ...

RM wollte, dass Du die Befehle nach einander ausführst, also
Code:
make clean
Code:
make
Grüße

Jacko
 

robi_83

New Member
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

@Jacko sry ich hatte gedacht das er sich vllt vertippt hatte, so mitten in der Nacht.

Ich hoffe das ihr noch mehr Nerven habt, weil ich hab schon langsam kein Bock mehr und spiele mit dem Gedanken entweder neu zu installieren, oder eine andere Distribution(Kununtu 5.10) drauf zu spielen.

Aber hier erstmal die "neuen" Ausgaben:
Code:
robi@Spielor:~/IP1000A> make clean
rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
robi@Spielor:~/IP1000A> make
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/robi/IP1000A modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: »modules« ist bereits aktualisiert.
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
robi@Spielor:~/IP1000A>
Da kommt mal wieder die selbe Meldung
 

Rain_Maker

Administrator
Teammitglied
AW: Treiber für die Netzwerkarte "IC PLUS IP1000"

Ich verstehe wirklich das seltsame Problem nicht.

Ich habe sogar eben meinen Kernel auf Deine Version "downgegradet" und es funktioniert einwandfrei.

Code:
 unzip IP1000A\ Linux\ driver\ v2.09f.zip
Archive:  IP1000A Linux driver v2.09f.zip
  inflating: ipg_macros.h
  inflating: ipg_constants.h
  inflating: ipg.h
  inflating: ipg_main.c
  inflating: ipg_structs.h
  inflating: ipg_tune.h
  inflating: make2.2.sh
  inflating: make2.2mod.sh
  inflating: Makefile
  inflating: PhyParam.h
  inflating: readme.txt
~/IP1000A > make all
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/home/Dummy/IP1000A modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make -C ../../../linux-2.6.16.13-4 O=../linux-2.6.16.13-4-obj/i386/default modules
  CC [M]  /home/Dummy/IP1000A/ipg_main.o
  LD [M]  /home/Dummy/IP1000A/ipg.o
  Building modules, stage 2.
  MODPOST
  CC      /home/Dummy/IP1000A/ipg.mod.o
  LD [M]  /home/Dummy/IP1000A/ipg.ko
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
Ich habe wirklich keinen Schimmer, was bei Dir schief läuft.

Jedenfalls hätte ich hier eine Notlösung (siehe Anhang).

Nachtrag: "Notlösung" (von mir kompilierter Treiber für die Kernelversion des TE) entfernt (Rechtssicherheit).

Da fehlt entweder nur das "make install" + "depmod -a" als root oder Du kopierst das Modul ipg.ko von Hand in /lib/modules/2.6.16.13-4-default/kernel/drivers/net/ und danach "depmod -a". Ich gebe aber keine Garantie, daß das dann läuft.

Greetz,

RM
 
Status
Für weitere Antworten geschlossen.
Oben