Hallo,
habe es geschafft, erst mal die Linux sourcen separat zu Kompilieren, und mit diesem neu geschaffenen Kernel zu booten.
Nun sollte ich noch einen Treiber dazu Kompilieren.
Dazu hab ich vom Embedded-PC Hersteller einen Treiber mit folgendem Skript bekommen:
compile.sh:
#!/bin/bash
# Little helper to compile the LiPPERT Hurricane-LX800 network driver for
# Linux 2.6 standalone without any changes to the main kernel tree needed.
export CONFIG_KS8842_TWO=y # create 2 independent network interfaces
#unset CONFIG_KS8842_TWO # work as 2 port hub: 1 interface in Linux
export NO_MII=y # enable this if you don't have CONFIG_MII in the kernel
#unset NO_MII # --JR10/2006
make -C /usr/src/linux "M=`pwd`" modules
Der Treiber mit diesem Skript ist in einer Datei Linux.zip verpackt. Nach auspacken dieser datei entsteht ein Verzeichnis ../Linux/KS884x_kernel_2.6.20/
Dort sind alle Dateien sowie ein leeres Unterverzeichnis .tmp_versions drin.
Ich hab diese Zip-Datei mal in das Verzeichnis
/home/
entpackt und dort unter
/home/Linux/KS884x_kernel_2.6.20/Linux/
das oben aufgeführte Skript ausgeführt, mit folgenden (Fehler)meldungen:
debian:/home/Linux/KS884x_kernel_2.6.20# sh compile.sh
make: Entering directory `/usr/src/linux-2.6.24'
CC [M] /home/Linux/KS884x_kernel_2.6.20/device.o
/home/Linux/KS884x_kernel_2.6.20/device.c: In function ‘netdev_open’:
/home/Linux/KS884x_kernel_2.6.20/device.c:1609: error: ‘SA_SHIRQ’ undeclared (first use in this function)
/home/Linux/KS884x_kernel_2.6.20/device.c:1609: error: (Each undeclared identifier is reported only once
/home/Linux/KS884x_kernel_2.6.20/device.c:1609: error: for each function it appears in.)
/home/Linux/KS884x_kernel_2.6.20/device.c: In function ‘netdev_init’:
/home/Linux/KS884x_kernel_2.6.20/device.c:2758: error: implicit declaration of function ‘SET_MODULE_OWNER’
/home/Linux/KS884x_kernel_2.6.20/device.c: In function ‘init_module’:
/home/Linux/KS884x_kernel_2.6.20/device.c:3212: error: implicit declaration of function ‘pci_module_init’
make[1]: *** [/home/Linux/KS884x_kernel_2.6.20/device.o] Fehler 1
make: *** [_module_/home/Linux/KS884x_kernel_2.6.20] Fehler 2
make: Leaving directory `/usr/src/linux-2.6.24'
debian:/home/Linux/KS884x_kernel_2.6.20#
Was mach ich falsch?
- Muss ich die sourcen unter diejenigen vom Linux-Kernel mischen?!
- Ist irgendein Pfad oder eine Pfadangabe falsch?
- oder fehlt mir irgend ein Linux-Modul?
Systemvoraussetzungen:
- Hurricane LX800
- OS: Debian GNU/LINUX 4.0r2-i386
-> Treiber für Micrel KSZ8842-PMQL Dual-Port LAN switch
Vielen Dank zum Voraus
Compilieren eines LAN-Treibers (Gelöst)
Compilieren eines LAN-Treibers (Gelöst)
Zuletzt geändert von Thom am 07.04.2008 08:16:36, insgesamt 1-mal geändert.
Hardware:
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Re: Compilieren eines LAN-Treibers
Es sieht so aus, als wäre der Treiber nicht für Kernel 2.6.24 gemacht (das Verzeichnis heißt vermutlich nicht umsonst KS884x_kernel_2.6.20). Die Funktion pci_module_init gab es zuletzt in Kernel 2.6.21, SA_SHIRQ zuletzt in Kernel 2.6.23 und SET_MODULE_OWNER zuletzt in Kernel 2.6.23.
Entweder es gibt einen aktuelleren Treiber vom Hersteller, oder du löst das Problem selbst, indem du folgende Ersetzungen durchführst:
Hast du einen Link zum Quelltext, eventuell muss noch mehr geändert werden?
Entweder es gibt einen aktuelleren Treiber vom Hersteller, oder du löst das Problem selbst, indem du folgende Ersetzungen durchführst:
Code: Alles auswählen
pci_module_init ---> pci_register_driver
SA_SHIRQ ---> IRQF_SHARED
SET_MODULE_OWNER einfach weglassen
Re: Compilieren eines LAN-Treibers
Hallo Spasswolf,
vielen Dank erstmal für Deine Hilfe, werde es mal mit Kernel 2.6.20.tar versuchen. Welchen würdest du denn nehmen? Auf http://www.de.kernel.org/pub/linux/kernel/v2.6/ gibt's ne menge 2.6.20-Versionen, aber keine Liste, was Stable ist oder nicht. Und für in den ChangeLogs zu suchen bin ich wohl zu unerfahren, da mir das meiste zu wenig aussagt.
Grundsätzlich würde das aber dann auch heissen, dass Linux gar nicht abwärtskompatibel ist ! ?
Folgedessen wäre es dann ja auch fraglich überhaupt ein Linux einzusetzen. Was ist z.B. wenn ich nachträglich ein Gerät einbau dessen Treiber erst für eine neuere Version geschrieben ist. Dann müsste ich da ja irgendwelche Module eines stabilen kernels auswechseln, die Abhängikeiten kontrollieren und hoffen dass dann alles richtig funktioniert
???
Thom
vielen Dank erstmal für Deine Hilfe, werde es mal mit Kernel 2.6.20.tar versuchen. Welchen würdest du denn nehmen? Auf http://www.de.kernel.org/pub/linux/kernel/v2.6/ gibt's ne menge 2.6.20-Versionen, aber keine Liste, was Stable ist oder nicht. Und für in den ChangeLogs zu suchen bin ich wohl zu unerfahren, da mir das meiste zu wenig aussagt.
Grundsätzlich würde das aber dann auch heissen, dass Linux gar nicht abwärtskompatibel ist ! ?
Folgedessen wäre es dann ja auch fraglich überhaupt ein Linux einzusetzen. Was ist z.B. wenn ich nachträglich ein Gerät einbau dessen Treiber erst für eine neuere Version geschrieben ist. Dann müsste ich da ja irgendwelche Module eines stabilen kernels auswechseln, die Abhängikeiten kontrollieren und hoffen dass dann alles richtig funktioniert

Thom
Hardware:
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Re: Compilieren eines LAN-Treibers
Nimm einfach die neuste Version des Treibers, die funktionier mit 2.6.24 und 2.6.25:
http://www.lippert-at.com/index.php?id=437
Am einfachsten ist es natürlich wenn man nur Hardware einsetzt, bei der die Treiber im Kernel sind.
http://www.lippert-at.com/index.php?id=437
Am einfachsten ist es natürlich wenn man nur Hardware einsetzt, bei der die Treiber im Kernel sind.
Re: Compilieren eines LAN-Treibers (Gelöst)
Hallo, habe gerade vor deinem Post auch die aktuellste Treiber von Lippert bekommen.
Dabei hab ich zwar schon mit 2.6.20 Versucht und das hat dann auch hingehauen. Ich nehm stark an, deshalb an dass dies auch mit 2.6.24 tun wird.
Vielen Dank für die Hilfe, Thom
PS: Hab nie gedacht, dass mit so kleinen Kernel-Änderungen einfach alte Module rausgeschmissen werden.
Dabei hab ich zwar schon mit 2.6.20 Versucht und das hat dann auch hingehauen. Ich nehm stark an, deshalb an dass dies auch mit 2.6.24 tun wird.
Vielen Dank für die Hilfe, Thom
PS: Hab nie gedacht, dass mit so kleinen Kernel-Änderungen einfach alte Module rausgeschmissen werden.
Hardware:
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2
Dell Inspiron 9300
Pentium 1.73GHz,
1.5GB RAM
XP2002 SP2 / Debian 40r2