Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Kernel 2.6.12-rcx

  1. #1
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521

    Kernel 2.6.12-rcx

    Con questo apro un thread per quanti, come il sottoscritto, piace provare le ultimissime novità e le conseguenti nuove feature, il tutto ovviamente a proprio rischio e pericolo!!!

    Per i mod, non è un doppione dell'altro thread, quello serve più come news per il nuovo governor (e poi ho aggiunto la nota sul pwc), invece in questo vorrei discutere su eventuali problemi o innovazioni dei 2.6.12-rcx ("x" sta per un numero ovviamente.
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  2. #2
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521

    2.6.12-rc6

    Parto dall'ultimo (comunque sono benvenute discussioni anche sui precedenti, magari mettendone il nome nel titolo per una più veloce identificazione).

    Allora, primo problema, con il modulo esterno al kernel ipw2100 (http://ipw2100.sourceforge.net/), serve per la prima versione delle schede mini-pci wireless incluse nei sistemi Centrino, i successivi sono gli ipw2200 (http://ipw2200.sourceforge.net/), ma torniamo al 2100 in quanto io uso quello.

    Compilando il driver ho ricevuto il seguente messaggio di errore:

    codice:
    make -C /lib/modules/2.6.12-rc6/build SUBDIRS=/home/gigi/modules-extra/Wireless/ipw2100-1.1.0
    (qui sono andato a capo io per non "allargare" troppo il thread!)
    MODVERDIR=/home/gigi/modules-extra/Wireless/ipw2100-1.1.0 modules
    make[1]: Entering directory `/usr/src/linux-2.6.12-rc6'
      CC [M]  /home/gigi/modules-extra/Wireless/ipw2100-1.1.0/ipw2100.o
    In file included from /home/gigi/modules-extra/Wireless/ipw2100-1.1.0/ipw2100.h:43,
                     from /home/gigi/modules-extra/Wireless/ipw2100-1.1.0/ipw2100.c:167:
    /home/gigi/modules-extra/Wireless/ipw2100-1.1.0/ieee80211.h:647: error: redefinition of `is_multicast_ether_addr'
    include/linux/etherdevice.h:67: error: `is_multicast_ether_addr' previously defined here
    make[2]: *** [/home/gigi/modules-extra/Wireless/ipw2100-1.1.0/ipw2100.o] Error 1
    make[1]: *** [_module_/home/gigi/modules-extra/Wireless/ipw2100-1.1.0] Error 2
    make[1]: Leaving directory `/usr/src/linux-2.6.12-rc6'
    make: *** [modules] Error 2
    In pratica, la funzione "is_multicast_ether_addr" era implementata nel file header ieee80211.h facente parte del modulo e non nei kernel precedenti a questo, da questo è stata invece implementata nel file "include/linux/etherdevice.h", e la cosa non va bene (il compilatore non capisce quale delle due deve usare e... nel dubbio esce con un errore! ).
    La soluzione che ho adottato è stata semplicemente di commentare la parte di codice inerente a questa funzione nel modulo, perciò in ieee80211.h, e usare quella implementata nel kernel (mi sembra la scelta più sicura e più funzionale per il sistema).

    Applicare questa patch nel modo sopra descritto è molto semplice per chi ha un minimo di dimestichezza con il C/C++ (o anche altri linguaggi), per i più pigri ho però preparato una piccolissima patch da applicare con l'ononimo comando, è la seguente:

    codice:
    --- ieee80211.h.old     2005-06-07 13:43:44.000000000 +0200
    +++ ieee80211.h 2005-06-07 13:43:44.000000000 +0200
    @@ -642,11 +642,12 @@
     #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
     #define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
    
    -
    +/*
     extern inline int is_multicast_ether_addr(const u8 *addr)
     {
            return ((addr[0] != 0xff) && (0x01 & addr[0]));
     }
    +*/
    
     extern inline int is_broadcast_ether_addr(const u8 *addr)
     {
    Se fate un copia/incolla in un file e lo chiamate come l'ho chiamato io: "ieee80211.h-krn-2.6.12-rc6.diff", potete poi applicarlo spostando il file nella directory decompressa del modulo e lanciando:
    patch -p0 < ieee80211.h-krn-2.6.12-rc6.diff

    dopo potete compilare e installare il modulo senza problemi.


    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  3. #3
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Ho appena letto nella ml di ipw2100/ipw2200 che la cosa riguarda anche il 2200, la patch postata da quello che ha sollevato la questione cancella il codice anzichè commentarlo come ho fatto io (è una mia abitudine, di commentare il codice anzichè cancellarlo!), ai fini del compilatore il risultato è lo stesso.
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.