hallo
ich hab fedora 2 und möchte w-lan installieren.
das ist meine w-lan karte:
http://www.brack.ch/aspx/default.aspx?ID=7882&mod=artikel
ich habe diesen treiber herunter geladen und weiss nich recht wie ich ihn kompillieren und installieren kann(hab linux noch nicht so lange)
kann mir jemand helfen?
vielen dank!
Linux 15.070 Themen, 107.540 Beiträge
./configure
make
... sind der Standard !
Aber eigentlich sollte eine Anleitung dem Quellcode beiliegen, wie zu kompilieren ist und welche Abhängigkeiten zu welchen Bibliotheken bestehen, die dann, wenn nicht schon vorhanden, ggf. nachinstalliert werden müssten !
Treiber benutzen keine Bibliotheken, sondern nur Funktionen des Betriebsystemkerns. Die Deklaration dieser Funktionen steht in den Headerdateien des Kernels. Deshalb muß ja auch der Sourcecode (Programmcode) des Kernsl installiert sein. Das muß auch die gleiche Version sein unter der Linux momentan läuft.
Diese Art eines Betriebsystemkerns würde unter Windows gar nicht funktionieren, weil dazu Microsoft den Programmcode von Windows veröffentlichen müßte, damit ein Anwender einen Treiber installieren könnte.
Open Source ist keine Ideologie , sondern technische Notwendigkeit um beispielsweise einen Treiber zu installieren!
Das ist mir eigentlich egal ob ich dafür eine Libary oder den Source-Code des Kernels benötige, es ist bei mir eh immer beides installiert!
Ausserdem habe ich mir Treiber bisher noch nicht selbst kompilieren müssen. Wo letztlich make darauf zurück greift, ist mir vielfach eh ein Rätsel geblieben, hauptsache es funktioniert !
Building the driver
===================
To build the driver at the top level edit Makefile.inc to set the
pathname to your Linux kernel distribution. By default this is set to
/usr/src/linux.
If you are cross-compiling the driver for a different platform define
the CC, LD, and STRIP macros appropriately. For example:
#CC= /export/tools/bin/mips-linux-gcc
#LD= /export/tools/bin/mips-linux-ld
#STRIP= /export/tools/bin/mips-linux-strip
Once you've got Makefile.inc configured appropriately, do:
make
This will generate three important files:
driver/ath_pci.o (driver for PCI/Cardbus devices),
ath_hal/ath_hal.o (Atheros HAL), and
wlan/wlan.o (802.11 support layer)
These files can be loaded with insmod or modprobe; e.g.
insmod wlan/wlan.o
insmod ath_hal/ath_hal.o
insmod driver/ath_pci.o
(note you must load the wlan and ath_hal modules first as the driver
depends on them). You can also try:
make install
to install the drivers where they can be loaded automatically, i.e.
/lib/modules/
ich glaube ich hab jetzt den kernel source installiert.
im verzeichnis /usr/src/
habe ich jetz einen neuen ordner: linux-2.6.5-1.358 oder so ähnlich.
wenn ich den befehl make eingebe gibt es aber immer zwei fehler.
vorher hat es noch einige error s und warnings.
die letzten drei zeilen der ausgabe sin dann:
make[1] *** [if_ath.0] Fehler 1
make[1] Leaving directory /madwifi-20030703/driver
make:[all] Fehler 2
muss ich im code noch etwas anpassen, oder woran könnte das liegen?
Hast du einen symbolischen Link /usr/src/linux---->/usr/src/inux-2.6.5-1.358 gelegt ?
Symbolische Links sind wie ein zweiter Dateiname für ein Verzeichnis oder eine Datei.
In der README-Datei stand , das make dieses verzeichnis erwartet, wo sich der Programmcode deines Kernels befindet.
Was auch noch ganz wichtig ist, die Version deines installierten Kernels muß identisch sein mit der version des Programmcodes in /usr/src/kernel-2.6.5-1.
Ich blick da auch nicht immer durch und kompiliere mir deshalb gleich einen eigenen Kern.
Der Kernel-Sourcecode ist die Version 2.6.5-1 (zumindest deines Postings nach). Die gleiche Version muß auch die Version des Kernels /boot/vmlinuzxxx oder /boot/bzimage haben. Die Bezeichnug des Kernels ist nicht so wichtig, aber die Versionnummer muß gleich sein !!!
Die Versionsnummer deines laufenden Kernels kannst du mit "dmesg |less" herausbekommen.
Beispiel:
karsten@Winkler:~$ dmesg |less
Linux version 2.6.6 (root@Winkler) (gcc-Version 3.3.4 (Debian 1:3.3.4-13)) #2 Wed Oct 6 14:15:38 CEST 2004
BIOS-provided physical RAM map:
Da steht die versionsnummer des laufenden Kernels und auch mit welcher Version des gcc der Kernel übersetzt worden ist. Die Version des gcc muß auch gleich sein, mit der version mit der der treiber komiliert wurde. Deshalb kompiliere ich meistens einen eigenen Kern. Dann stimmt die versionsnummer des kernels und die Versionsnummer des gcc.
Symbolische Links kann man mit diesem Befehl anlegen:
ln -s /usr/src/kernelxxx /usr/src/linux
kernelxxx muß durch das richtige Verzeichnis ersetzt werden.
ich hab das jetzt so weit gemacht, die fehler sind aber immer noch da.
den kernelsource hab ich von der selben cd installiert wie das linux. wenn es wirklich der kernel ist, wird es also auch die richtige version sein.
ich hab es jetzt noch mit einem anderen treiber probiert.
dort wird gemeldet, dass die headerdateien des kernels vorhanden sind, aber nicht der ganze sourcecode.
wie kann ich den sourcecode installieren und wo finde ich den?
Ich benutze Debian. Ich weiß nicht wo du den Sourcecode des kernels herbekommen kannst.
Die Headerdateien sind ein Teil des Programmcodes des Kernels. Du mußt schon den ganzen Programmcode installieren. In den Headerdateien steht unter Anderem die Deklaration von Kernelfunktionen. Der eigentliche Programmcode, die Definition der Funktionen, steht in den Quellcodedateien.
Du hast wahrscheinlich nur die Headerdateien installiert, das kann man bei Debian auch machen. Du mußt eine anderes Paket installieren , um den kompletten Programmcode des kernels zu installieren.
Normalerweise wird der Sourcecode des Kernels dann unter /usr/src/kernelxxx installiert.
karsten@Winkler2:/usr/src/kernel-source-2.6.6$ dir -l
insgesamt 6936
drwxr-xr-x 24 root root 4096 2004-06-16 05:54 arch
-rw-r--r-- 1 root root 2000035 2004-05-10 14:21 ChangeLog
-rw-r--r-- 1 root root 18691 2002-10-19 06:01 COPYING
-rw-r--r-- 1 root root 85686 2004-05-10 11:47 CREDITS
drwxr-xr-x 2 root root 4096 2004-10-07 11:34 crypto
-rw-r--r-- 1 root root 51140 2004-06-16 04:49 Debian.src.changelog
drwxr-xr-x 42 root root 4096 2004-06-16 05:54 Documentation
drwxr-xr-x 46 root root 4096 2004-10-07 11:48 drivers
drwxr-xr-x 53 root root 4096 2004-10-07 11:33 fs
drwxr-xr-x 36 root root 4096 2004-10-07 11:07 include
drwxr-xr-x 2 root root 4096 2004-10-07 12:01 init
drwxr-xr-x 2 root root 4096 2004-10-07 11:33 ipc
drwxr-xr-x 3 root root 4096 2004-10-07 11:14 kernel
drwxr-xr-x 4 root root 4096 2004-10-07 12:01 lib
-rw-r--r-- 1 root root 51590 2004-05-10 11:47 MAINTAINERS
-rw-r--r-- 1 root root 36257 2004-05-10 14:21 Makefile
drwxr-xr-x 2 root root 4096 2004-10-07 11:17 mm
-rw-r--r-- 1 root root 80805 2004-10-07 12:22 Module.symvers
drwxr-xr-x 32 root root 4096 2004-10-07 12:00 net
-rw-r--r-- 1 root root 13976 2004-03-11 03:55 README
-rw-r--r-- 1 root root 886 2004-06-16 07:49 README.Debian
-rw-r--r-- 1 root root 2815 2002-10-19 06:01 REPORTING-BUGS
drwxr-xr-x 7 root root 4096 2004-10-07 11:07 scripts
drwxr-xr-x 3 root root 4096 2004-10-07 11:34 security
drwxr-xr-x 15 root root 4096 2004-10-07 11:48 sound
-rw-r--r-- 1 root root 750864 2004-10-07 12:01 System.map
drwxr-xr-x 2 root root 4096 2004-10-07 11:08 usr
-rw-r--r-- 1 root root 8 2004-06-16 05:59 version.Debian
-rwxr-xr-x 1 root root 3888182 2004-10-07 12:01 vmlinux
vielen dank für alle antworten!
ich werde es am nächsten wochenende ausprobieren.
gruss yves
Vielleicht gibt es bei fedora den Sourcecode des kernels gar nicht. Bei SUSE Personal fehlt auch der Programmcode des kernels und einige Programmiertools.
ich hab jetz fedora 3 installiert. weiter gekommen bin ich aber noch nicht.
jetzt hab ich den kernel source heruntergeladen. ich hoffe das ist der richtige (kernelversion stimmt)
adresse: http://download.fedora.redhat.com/pub/fedora/linux/core/3/SRPMS/
datei:
kernel-2.6.9-1.667.src.rpm 02-Nov-2004 16:05 38.4M
dann hab ich die datie folgendermassen installiert:
rpm -ivh kernel-2.6.9-1.667.src.rpm
das hat so ohne fehler funktioniert.(endlich mal was)
leider kommen biem installieren des madwifi treibers immer noch die selben fehler.
