![]() |
Kompilieren eines NIC-Treibers
Hiho,
Nachdem ich leider zu meinem vor kurzem geschilderten Problem keine Lösung gefunden habe versuche ich jetzt eine andere Netzwerkkarte einzubauen, in der Hoffnung dass das viell. Abhilfe bringt. Ist eine Compushack SN-103 mit Via Rhine III Chipset. Treiberver. 4.10 wird gottseidank mitgeliefert. Also entpackt und ein "make install" abgesetzt ergibt: Makefile:34: *** Linux kernel source not configured - missing version.h. Stop. Ok - ich weiss schon was er will - aber nicht warum, und vor allem: ich will den Kernel nicht neu konfigurieren. Wieso will er diese version.h und wie kann ich die erzeugen? Ich verwende den Kernel 2.4.18 der mit Woody 3.0 mitgeliefert wird, die passenden Kernel Sourcen sind installiert - die Kernel Header auch. Wie um alles in der Welt erzeuge ich diese Datei??? Wenn ichs nicht bald schaffe den Netzzugang zum Funktionieren zu bewegen lauf ich Amok *g* Achja: jemand schon mal Probleme gehabt mit 2 Realtek Karten im System? - Hab eine mit RTL 8029 und eine mit RTL 8139 chip, verursacht viell. das den Timeout Fehler aus meinem letzten Posting? mfG, qu |
|
Hm, danke dir, aber soweit war ich schon - ich will ja den Kernel nicht neu konfigurieren und kompilieren.
Brauch ich ja gar nicht weil alles andere eh so läuft. Wie kann ich ihm denn ein make config geben und ihm sagen er soll mir diese Dateien aus der vorhandenen Kernelkonfig erstellen? Der ist ja schon vorkonfiguriert - es muss doch möglich sein diese Konfig aus dem aktuellen Kernel auszulesen und daraus die Dateien zu erstellen die er hier haben will - oder? --qu |
Kernel-Sourcen sind installiert?
|
Zitat:
|
Re: Kompilieren eines NIC-Treibers
Zitat:
Hmmm, leider ist http://packages.debian.org noch down, sonst würde ich dort nachschauen wo die version.h her ist (sitze gerade in Wien an einer AIX-Maschine auf Kurs und komme erst am SO wieder an meinen Rechner!) Ich denke nicht daß man diese Datei erzeugt...... Ciao, Steve |
du brauchst die kernelsourcen und einen link /usr/src/linux auf das kernelsourcen verzeichnis
(laut debian howto soll man die kernelsourcen in /usr/local/src/$KERNELSOURCE extrahieren und dann ein ln -s /usr/local/src/$KERNELSOURCE /usr/src/linux ($KERNELSOURCE == aktuell laufende kernelversion) absetzen) btw: was steht denn in zeile 34 im makefile? |
@m3:
Ja sind sie, in /usr/src/<Kernelversion>, symb. Link "linux" auf dieses Verzeichnis steht auch. @Steve: Ja leider ist der Server down, musste die Kernel Header auch von CD nachinstallieren. Auf die Idee bin ich gar nicht gekommen dort nachzusehen wo die version.h drin ist. Ich dachte nämlich die wird erzeugt, wenn sie allerdings Teil eines Paketes ist, sollte sie dann nicht Teil des Linux Kernels sein? *strange* Btw. gibts nicht irgendein apt Tool mit dem man die Paketdateien nach ihren Dateiinhalten durchsuchen kann? @valo: Sourcen sind da - Link auch. Allerdings sind die Sourcen in /usr/src/Kernelversion - und auch der Link ist in diesem Verzeichnis. Der Pfad muss aber passen da sonst der Kompiliervorgang des Treibers einen anderen Fehler ausgeben würde (Missing Kernelsource - hatte ich bevor ich die Sourcen nachinstalliert hab - also sind die schon im richtigen Pfad) Das Makefile hab ich schon angesehen, er überprüft die Existenz 2er Dateien, nämlich version.h und einer 2ten die mir jetzt entfallen ist. Hab grad keinen Zugang zum Rechner weil er dauernd disconnected. Ich poste die if Abfrage im Makefile rein sobald ich zuhause bin. Da bin ich nämlich eh nicht so wirklich schlau draus geworden.. qu |
also ich hab die version.h in meinem kerneltree unter
arch/i386/math-emu/version.h include/linux/version.h include/pcmcia/version.h die include/linux/version.h ist im orignial tar file nicht enthalten, wird vermutlich erst erzeugt... :confused: |
So - hab das jetzt gecheckt.
Also in /include/linux hab ich mal keine version.h. Der relevante Teil des Makefiles sieht so aus: 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/\([0-9]*\.[0-9]*\)\..*/\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 Tja - sieht also wirklich so aus als würde diese Datei erst erzeugt werden müssen. Gibts nicht einen Befehl mit dem man die Kernelkonfig aus einem bereits kompilierten Kernel auslesen kann? Oder gibts irgendwo zum runterladen das config file von Debian mit dem der Originalkernel erstellt wurde?. Weil dann könnt ich ja einfach mit dieser config nochmal make dep ausführen und wahrscheinlich würde dass diese version.h erzeugen denk ich mal.. --qu |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 09:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag