Kernel "Nachbauen"

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Durin V
Beiträge: 13
Registriert: 16.01.2005 16:59:53

Kernel "Nachbauen"

Beitrag von Durin V » 16.01.2005 17:12:46

Hi Leute,
ich habe eine WLAN-Karte mit dem RT2500 Chipsatz und den Treibern als Open-Source. Nun habe ich Debian-Sarge mit dem Kernel 2.4.27-1-368 installiert. Hat auch alles Soweit gut geklapt und die ganze Hardware wurde schon mal erkannt. Nun weiss ich aber nicht wie ich die kernel Sourcen installieren kann damit ich dann meine WLAN-Karte installieren kann.
Ich bin doch würde ich sagen , auch wenn ich mich schon seit ca 4 Wochen intensive mit Linux beschäftige, doch noch ein Newbie. :oops:
Es wäre super wenn ihr mir eine genaue Anleitung schreiben könnt, wie ich die Sourcen und den rest den ich evtl. noch benötige installieren oder compiliern muss, damit ich die Treiber dann auch später installieren kann.

Sascha
PS: Würde gerne bei diesem Kernel mit diesen einstellungen bleiben da er ja die ganze Hardware von meinem Notebook erkannt hat.

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 16.01.2005 17:37:12

mit dem befehl "uname -a" bekommst du deine kernelversion heraus. für den folgenden rest brauchst du root-rechte.

mit apt-cache search kernel-source findest du alle installierbaren kernelquellen.

mit apt-get install kernel-source-2.4.27 kannst du die passende quelle installieren.

jene liegt dann nach der installation in /usr/src.

diese entpackst du dann mit "tar xvfj KERNELNAME". der kernel wird dann entpackt nach /usr/src/kernel-source-xyz. nach dem entpacken machst du in /usr/src einen link mit dem namen "linux" auf dieses verzeichnis oder änderst den namen des verzeichnisses auf "linux", sodass die kernelquellen in /usr/src/linux zu finden sind (kernelquellen werden immer in /usr/src/linux erwartet).

danach kannst du dir die anleitung des treibers in dessen readme ansehen - du musst nicht den ganzen kernel neu compilieren, nur weil du einen neuen treiber brauchst...

gruß

natas12

ps: möglicherweise musst du dafür noch andere dinge wie bunzip2 und den compiler installieren.
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 16.01.2005 17:40:22

Hi Sascha,

als Anfangspunkt würde ich diesen hier wählen:
http://www.debianforum.de/wiki/?page=Ke ... ompilieren
Hier noch ein paar kleinere Tipps, damit Du zuerst einen Kernel bekommst der Deinem jetzigen entspricht:
- die Sourcen zu Deinem jetzigen Kernel herunterladen

Code: Alles auswählen

apt-get install kernel-source-2.4.27
- damit die Konfiguration später mal einfacher wird

Code: Alles auswählen

apt-get install libncurses5-dev
- Kernelsourcen entpacken

Code: Alles auswählen

cd /usr/src
tar xvjf kernel-source-2.4.27.tar.bz2
- die jetzige Konfigurationsdatei kopieren

Code: Alles auswählen

cp /boot/config-2.4.27 .
- einmal die Sourcen vorbereiten

Code: Alles auswählen

make dep
- dann solltest Du die Sourcen für den Ralink Chip lt. deren Anleitung mit einbauen können

Obiges ist jetzt aus dem Kopf aufgeschrieben, d.h. Dateinamen könnten evtl. anders lauten. Aber wenn Du in den Verzeichnissen nachschaust, findest Du die richtige Datei.
Bei größeren Problemen einfach hier nochmal reinschreiben.

viel Erfolg beim ersten Kernelbau
SubOptimal

Durin V
Beiträge: 13
Registriert: 16.01.2005 16:59:53

Beitrag von Durin V » 16.01.2005 18:34:19

Hi ihr,
hab nun folgende schritte durchgefürt:

Code: Alles auswählen

apt-get install kernel-source-2.4.27

apt-get install libncurses5-dev

cd /usr/src 

tar xvjf kernel-source-2.4.27.tar.bz2

cd kernel-source-2.4.27

cp /boot/config-2.4.27-1-386 .

make dep
Nun habe ich die treiber in /usr/src kopiert und entpoackt, dann die Anweisungen befolgt und es kam folgender Fehler:
  • /usr/src/linux/include/linux/proc_fs.h:161: error: Fehler beim Parsen before "mode_t"
    /usr/src/linux/include/linux/proc_fs.h:162: Warnung: function declaration isn't a prototype
    /usr/src/linux/include/linux/proc_fs.h: In Funktion »create_proc_info_entry«:
    /usr/src/linux/include/linux/proc_fs.h:163: error: `base' undeclared (first use in this function)
    /usr/src/linux/include/linux/proc_fs.h:164: error: dereferencing pointer to incomplete type
    /usr/src/linux/include/linux/proc_fs.h: Auf höchster Ebene:
    /usr/src/linux/include/linux/proc_fs.h:169: error: Fehler beim Parsen before "mode_t"
    /usr/src/linux/include/linux/proc_fs.h:170: Warnung: function declaration isn't a prototype
    /usr/src/linux/include/linux/proc_fs.h: In Funktion »PDE«:
    /usr/src/linux/include/linux/proc_fs.h:215: error: dereferencing pointer to incomplete type
    In file included from rt_config.h:132,
    from rtmp_main.c:30:
    md5.h: Auf höchster Ebene:
    md5.h:21: error: Fehler beim Parsen before "size_t"
    md5.h:21: Warnung: function declaration isn't a prototype
    md5.h:22: error: Fehler beim Parsen before "size_t"
    md5.h:22: Warnung: function declaration isn't a prototype
    /usr/src/linux/include/linux/coda.h:261: error: storage size of `va_atime' isn't known
    /usr/src/linux/include/linux/coda.h:262: error: storage size of `va_mtime' isn't known
    /usr/src/linux/include/linux/coda.h:263: error: storage size of `va_ctime' isn't known
    /usr/src/linux/include/linux/coda.h:566: error: storage size of `attr' isn't known
    /usr/src/linux/include/linux/quota.h:225: error: storage size of `dq_dqb' isn't known
    /usr/src/linux/include/linux/fs.h:577: error: storage size of `f_owner' isn't known
    /usr/src/linux/include/linux/reiserfs_fs_sb.h:264: error: storage size of `j_journal_list' isn't known
    /usr/include/asm-generic/siginfo.h:53: error: storage size of `_pad' isn't known
    /usr/src/linux/include/linux/sched.h:364: error: storage size of `times' isn't known
    make: *** [rtmp_main.o] Fehler 1
    Notebook:/usr/src/RT2500-Linux-STA-1.4.2.0/STA/Module#
Dieser Fehler entsteht bei jeder Treiberversion. Fehlt mir da noch irgendwie ein Packet?
Liegt da an dem Kernel? Ich bin Ratlos. Hoffentlich kann mir jemand helfen.

Sascha

smashie
Beiträge: 168
Registriert: 21.02.2004 11:23:53

Beitrag von smashie » 16.01.2005 18:59:31

1. ist es totaler Schwachsinn, dass kernel quellen in /usr/src/linux erwartet werden .. es ist eher genau das Gegenteil

README vom most recent Kernel:

Code: Alles auswählen

   Do NOT use the /usr/src/linux area! This area has a (usually
   incomplete) set of kernel headers that are used by the library header
   files.  They should match the library, and not get messed up by
   whatever the kernel-du-jour happens to be.
2. hast du libc6-dev drauf?
Intel Pentium E2180 @ 3,2 Ghz / Geforce 8800GT / 4096 MB DDRII 800 / 320GB Seagate 7200.11 HDD
running debian 'sid' kernel 2.6.26-rc7/Gnome 2.22

Durin V
Beiträge: 13
Registriert: 16.01.2005 16:59:53

Beitrag von Durin V » 16.01.2005 19:05:30

Hi smashie,

Ja die libc6-dev hab ich schon drauf.

Sascha

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 16.01.2005 21:36:46

Hi sasha,

leider war in meinem Post ein kleiner Fehler. Die Konfigurationsdatei hätte im Verzeichnis der Kernelsourcen umbenannt und nicht nur kopiert werden müssen.
Aber ich habe einen Link gefunden, der die Einrichtung der Sourcen unter Debian beschreibt.
http://www.stanchina.net/~flavio/debian/rt2400.html
Damit solltest Du es auf jeden Fall hinbekommen.
Evtl. wär es günstiger die Sourcen direkt von Sourceforge zu verwenden, die scheinen neueren Datums zu sein.

SubOptimal

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 17.01.2005 06:51:10

smashie hat geschrieben:1. ist es totaler Schwachsinn, dass kernel quellen in /usr/src/linux erwartet werden .. es ist eher genau das Gegenteil

README vom most recent Kernel:

Code: Alles auswählen

   Do NOT use the /usr/src/linux area! This area has a (usually
   incomplete) set of kernel headers that are used by the library header
   files.  They should match the library, and not get messed up by
   whatever the kernel-du-jour happens to be.
sorry, wollte nix falsches sagen - hatte bisher in sehr vielen howtos (z.B. zum nvidia-treiber) gelesen, dass der kernel sich in /usr/src/linux befinden soll. ist die o.g. empfehlung etwas neues oder war das schon "immer" so? wie findet ein configure-skript (z.B. von einem im source vorliegenden treiber) dann die kernelquelle, falls diese sich nicht in /usr/src/linux befindet?

gruß

natas12
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 17.01.2005 23:22:03

Hi Natas12,

ich glaub da gibt es immer wieder Mißverständnisse. In diesem Thread wird aber ganz gut erklärt was es nun mit den verschiedenen Headerdateien auf sich hat.

http://www.pro-linux.de/news/2001/3460.html

SubOptimal

Antworten