Aggreghiamo le notizie italiane sull'Open Source
Grazie al fantastico Luca Falavigna (a dir la verità, più fanta che stico) sono riuscito a trovare una soluzione a tutti i problemi relativi alla scheda ethernet PCI Express Realtek RTL8101E integrata sul mio Olidata Stainer 3050.
Il modulo r8169 presenta delle gravi incompatibilità con numerose periferiche (le problematiche si differenziano a seconda del modello, per esempio, sul mio portatile, la connessione cade con una frequenza disarmante, ma in alcuni casi potrebbe addirittura verificarsi un mancato riconoscimento), dunque verrebbe naturale recarsi sul sito del produttore per scaricare l’ultima versione del driver (r8101 o r8168, a seconda della propria scheda, entrambi sono distribuiti nei termini della GPL) adatto alla propria scheda e procedere poi alla sua compilazione, nonchè alla sostituzione del modulo malfunzionante con il driver fornito dalla Realtek.
Ecco le schede supportate dai due moduli:
Innanzitutto, cerchiamo di evitare inutili perdite di tempo: una volta scaricati i sorgenti, vi consiglio di non procedere subito alla compilazione, sarebbe inutile poichè ricevereste anche voi un risultato simile al mio:
alessio@quadrispro-laptop:~/r8101-1.007.00$ sudo -s root@quadrispro-laptop:~/r8101-1.007.00# make clean modules make -C src/ clean make[1]: Entering directory `/home/alessio/r8101-1.007.00/src' rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers rset make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src' make -C src/ modules make[1]: Entering directory `/home/alessio/r8101-1.007.00/src' make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/home/alessio/r8101-1.007.00/src modules make[2]: Entering directory `/usr/src/linux-headers-2.6.24-19-generic' CC [M] /home/alessio/r8101-1.007.00/src/r8101_n.o /home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_board’: /home/alessio/r8101-1.007.00/src/r8101_n.c:2244: error: implicit declaration of function ‘SET_MODULE_OWNER’ /home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_one’: /home/alessio/r8101-1.007.00/src/r8101_n.c:2643: error: ‘struct net_device’ has no member named ‘poll’ /home/alessio/r8101-1.007.00/src/r8101_n.c:2644: error: ‘struct net_device’ has no member named ‘weight’ /home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_rx_interrupt’: /home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: type defaults to ‘int’ in declaration of ‘_y’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: comparison of distinct pointer types lacks a cast /home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_interrupt’: /home/alessio/r8101-1.007.00/src/r8101_n.c:3866: error: too few arguments to function ‘netif_rx_schedule_prep’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3867: error: too few arguments to function ‘__netif_rx_schedule’ /home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_poll’: /home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3913: warning: type defaults to ‘int’ in declaration of ‘_y’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3921: error: ‘struct net_device’ has no member named ‘quota’ /home/alessio/r8101-1.007.00/src/r8101_n.c:3924: error: too few arguments to function ‘netif_rx_complete’ make[3]: *** [/home/alessio/r8101-1.007.00/src/r8101_n.o] Error 1 make[2]: *** [_module_/home/alessio/r8101-1.007.00/src] Error 2 make[2]: Leaving directory `/usr/src/linux-headers-2.6.24-19-generic' make[1]: *** [modules] Error 2 make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src' make: *** [modules] Error 2
Il risultato non è quello desiderato poichè le ultime versioni di entrambi i moduli non supportano la versione 2.6.24 del kernel, quella attualmente in uso su Ubuntu 8.04 «Hardy Heron» (ah, non l’ho specificato prima poichè pensavo fosse implicito: tutto l’articolo è specifico per la cara Hardy). Procediamo con la risoluzione del problema, prima scaricando sulla Scrivania la patch per il modulo r8168, testata su Hardy (trovata sul forum internazionale), oppure quella per il modulo r8101 (fatta da me), dunque scompattando il tarball contenente i sorgenti (non credo sia necessario specificarlo ma non si sa mai: i nomi dei file e dei percorsi cambiano a seconda del driver scaricato):
cd ~/Scrivania tar -xf r8101-1.007.00.tar.bz2 cd r8101-1.007.00/src
Applichiamo la patch alla cartella contenente i sorgenti del modulo r8168:
patch < /home/alessio/Scrivania/r8168-8.005.00.hardy.diff.txt
Se si possiede una scheda supportata dal driver r8168, al posto del precedente comando sarà necessario digitare:
patch < /home/alessio/Scrivania/r8168-8.006.00.hardy.diff.txt
Infine non resta che compilare e installare il nuovo modulo:
cd .. make clean modules sudo make install sudo depmod -a
Al fine di impedire il caricamento all’avvio del driver r8169, apriamo il file `/etc/modprobe.d/blacklist` con un editor di testo:
sudo nano /etc/modprobe.d/blacklist
Infine aggiungiamo alla lista il modulo desiderato, o meglio, indesiderato:
blacklist r8169
Al prossimo riavvio dovrebbe funzionare tutto a dovere. Nel caso si desideri tornare a utilizzare il vecchio driver è sufficiente rimuoverlo dalla blacklist.
Link alla discussione sul forum di Ubuntu relativa al modulo r8168
fedmor
ringrazia l'esistenza della funzione di ripristino su OpenOffice.org 3
@Replica
andreaolivato
ci ha messo qualche ora a capire che i gspca non si compilavano perchè sono già compresi nel kernel...
@Replica
su610
Provo easypeasy-1.0 La "nuova" distro per l'Eee pc. La trova graficamente orrenda....
@Replica
andreaolivato
fluxbox power
@Replica
andreaolivato
nota che il dns della gallery si è finalmente aggiornato ... amen!
@Replica