Vraag & Antwoord

OS Linux

compileren NIC module

Anoniem
MrLeeJohn
4 antwoorden
  • Op een oud machientje probeer ik een moderne, maar kleine (dus alleen text interface) linux aan de gang te krijgen. Probleem is dat bij de moderne distro geen support meer zit voor de 3 3com 3c509 etherlink III ISA netwerkkaarten die ik er graag in wil…

    Ik dacht slim te zijn de source van die driver gewoon op te halen en te compileren. Dat is nu gelukt, maar insmod geeft de foutmelding:

    [code:1:b7842ea5d5]3c509.o was compiled for kernel version 2.4.20-22em
    while this kernel is version 2.4.22-4trfirewall[/code:1:b7842ea5d5]

    suggesties zijn welkom!

    oja, ik heb gecompileerd op dezelfde machine met de opdracht:

    [code:1:b7842ea5d5]gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c 3c509.c[/code:1:b7842ea5d5]

    zoals ook in de source aangegeven stond.
  • Draaide je toen je de module compileerde dezelfde kernel als nu? Zo ja dan denk ik dat je kernel-sources (en dus headers) niet overeenkomen met de kernel die je draait.
  • Ah… je probeer Tawie, de opvolger van Trustix. Kijk op hin site hoe je modules moet compilen… staan speciale aanwijzigingen voor op hun site.



    http://doc.tawie.org/cgi-bin/tawiedoc.cgi?TawieFAQ

    Q: How do I compile modules when the kernel headers doesn't match the kernel source?

    A: Download the source package or the kernel-source rpm, the rpm installs itself in /usr/src, the source package
    you'll have to place there.
    Unpack with (using todays source as an example):
    # tar -jxf kernel-source-2.4.21-13tr.tar.bz2
    It'll unpack to /usr/src/kernel-source-2.4.21-13tr, then link the source directory to /usr/src/linux with:
    # ln -s /usr/src/kernel-source-2.4.21-13tr /usr/src/linux
    and a list of /usr/src should look like this:
    # ls -l /usr/src
    total 29308
    drwxr-xr-x 5 root root 224 Jul 11 06:41 ./
    drwxr-xr-x 12 root root 288 Jul 10 21:48 ../
    drwxr-xr-x 17 root root 784 Jul 10 20:33 kernel-source-2.4.21-13tr/
    -rw-r–r– 1 root root 30003935 Jul 4 11:26 kernel-source-2.4.21-13tr.tar.bz2
    lrwxrwxrwx 1 root root 25 Jul 10 20:18 linux -> kernel-source-2.4.21-13tr/
    drwxr-xr-x 7 root root 168 Jul 10 21:48 trustix/


    Get the config file from /boot (I had kernel-2.4.21-11tr installed):
    # cp -p /boot/config-2.4.21-11tr /usr/src/linux/.config


    I also had to make a symlink in /usr/src/trustix/BUILD, that pointed at /usr/src/linux
    since the link /lib/modules/`uname -r`/build points at /usr/src/trustix/BUILD/linux-2.4.21:
    # cd /usr/src/trustix/BUILD
    # ln -s /usr/src/linux/. linux-2.4.21


    # cd /usr/src/linux
    The next step I had to struggle to find out about, as the kernel newbie I am.
    # make oldconfig
    then just
    # make dep


    Now you're set for compiling your modules.
  • Compileer ook de 3c59x-module. Ik heb een pci-versie en die werkt niet met de 3c509-module, maar wel met de 3c59x.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.