Treiber compilen schlägt fehl...

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
eNeRGy
Beiträge: 3
Registriert: 26.10.2004 21:48:07

Treiber compilen schlägt fehl...

Beitrag von eNeRGy » 27.10.2004 02:01:59

Ich versuche den atmelwlandriver zu kompilen... jedoch spuckt er nach dem make all unendlich viele fehler aus. Ich kann mir nur erklären, dass dies daran liegt, dass er meine kernel-source nicht findet.

Diese jedoch liegt schoen in "/usr/src/linux-2.6.8.1"
(Hierzu habe ich einfach die linux-2.6.8.1.tar.bz2 von kernel.org geladne und sie entpackt)

wenn ich "uname -a" mache spuckt linux mir allerdings dies aus: "2.6.8-1-686"

Dieser Kernel ist jedoch nicht auf kernel.org zu finden... Deswegen habe ich einfach einen link von "/usr/src/linux-2.6.8-1-686" auf "/usr/src/linux-2.6.8.1" gemacht.

Kann es sein, das dort der fehler liegt?!

Es währ nett wenn mir jemand schnell hilfe geben koennte, da ich direkt als einstieg in Linux schon einen treiber compilieren muss, obwohl ich noch nicht so richtig ahnung von der materie habe.. Also währ es auch angebracht zu erklären was zu tun ist und nicht zu viel wissen bei mir vorauszusetzen :D -danke im vorraus
Debian 3.0 sarge - kernel 2.6.8.1

Benutzeravatar
gOtNoPhEaR
Beiträge: 863
Registriert: 17.04.2004 15:49:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Gau-Algesheim
Kontaktdaten:

Re: Treiber compilen schlägt fehl...

Beitrag von gOtNoPhEaR » 27.10.2004 07:38:50

eNeRGy hat geschrieben: Diese jedoch liegt schoen in "/usr/src/linux-2.6.8.1"
(Hierzu habe ich einfach die linux-2.6.8.1.tar.bz2 von kernel.org geladne und sie entpackt)

wenn ich "uname -a" mache spuckt linux mir allerdings dies aus: "2.6.8-1-686"

Dieser Kernel ist jedoch nicht auf kernel.org zu finden... Deswegen habe ich einfach einen link von "/usr/src/linux-2.6.8-1-686" auf "/usr/src/linux-2.6.8.1" gemacht.

Kann es sein, das dort der fehler liegt?!
also, uname -a spuckt die Version des aktuellen laufenden Kernels aus. Bei dir eben 2.6.8.1-686. Sieht also stark nach nem Debian sttandard kernel aus.

Der Fehler liegt ganz einfach darin, dass der Kernel beim Compilieren standardmäßig in /usr/src/linux ..

Mach mal nen symlink:

Code: Alles auswählen

ln -s /usr/src/linux-2.6.8.1 /usr/src/linux

Dann nochmal neu kompilieren und dann sollte das mit dem Kernel keine Probleme mehr geben.
In den Sourcen sollte auch eine Datei INSTALL oder so ähnlich enthalten sein, wo informationen enthalten sind, wie man die Sourcen kompiliert und so weiter....
Greetz, gOtNoPhEaR

OS: Debian/testing amd64

Benutzeravatar
QT
Beiträge: 1363
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Re: Treiber compilen schlägt fehl...

Beitrag von QT » 27.10.2004 09:04:45

gOtNoPhEaR hat geschrieben:Der Fehler liegt ganz einfach darin, dass der Kernel beim Compilieren standardmäßig in /usr/src/linux ..

Mach mal nen symlink:

Code: Alles auswählen

ln -s /usr/src/linux-2.6.8.1 /usr/src/linux
Das stimmt so nicht. Normalerweise wird ueber den Symlink /lib/modules/`uname -r`/build auf die Sourcen des laufenden Kernel zugegriffen. Das mit dem Symlink /usr/src/linux stammt von frueher und ist IMO nicht mehr erforderlich. Hoechstens alte Sourcen benoetigen sowas historisches noch weiterhin.

eNeRGy
Beiträge: 3
Registriert: 26.10.2004 21:48:07

Beitrag von eNeRGy » 27.10.2004 15:31:33

Ich kann mich da QT nur anschließen, er findet die Sourcen ja, aber macht NUR fehler, in jeder Zeile die er ausführen moechte kommt dann ja ein fehler.

Deswegen glaube ich ja, dass der kernel 2.6.8.1 NICHT der gleiche ist wie 2.6.8-1-686

es kann natürlich sein, dass ich einfach nur irgendetwas vergesse beim kompilieren...

alsi ich geh in das verzeichniss des treibers (da wo die makefile liegt) und mache dann "make config" dies erzeugt die config-datei. Danach mache ich "make all" und dann "make install".

Dann sollte der Treiber doch kompiliert sein und also modul in der lsmod liste auftauchen...

Aoch schon bei "make all" bekomme ich 10000 Fehler. er kann immer irgendeine file size oder so nicht finden... und das in jeder zeile einer *.o datei.

zb in der wireless.o (die irgendwo in der kernel-source liegt) sind in jeder zeile dann circa 3 fehler.

erkennt jemand noch spontan einen fehler?
Debian 3.0 sarge - kernel 2.6.8.1

Benutzeravatar
QT
Beiträge: 1363
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 27.10.2004 19:44:54

Beim Kompilieren geht man eigentlich immer so vor, wie es der (meist) beiliegenden Doku zu entnehmen ist :-) Wenn es sich um ein Kernelmodul handelt, sollte ein "make install" lediglich das oder die .ko Datei(en) nach /lib/modules/../ kopieren. Danach ist es meist sinnvoll mit "depmod" die Modulanhängigkeiten zu erneuern und mit "modprobe <modul>" das Teil zu laden und mit "dmesg | tail" in die neuen Kernelmeldungen zu schauen ;-)

Bzgl. dem (häufigen) Fehler: Poste doch mal die Zeilen vom letzten Aufkommen des Fehlers bis zum Ende der "make all" Ausgabe. Alternativ auf nem Webserver ablegen und den Link dann posten...

Letztendlich vermute ich, dass Dir Headerdateien fehlen, sprich irgendwelche *-dev Pakete.

Antworten