Alessio Treglia

everybody lies
  • Quality Assurance
  • EN blog
  • Inizio
  • Chi sono
  • Roma3 WiFi Authenticator
  • Installation Report Generator
  • Preventivi e consulenze

Compilare i moduli r8168 e r8101 per le schede ethernet Realtek su Hardy

quadrispro | 27 giugno 2008

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:

  • r8168: RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C
  • r8101: RTL8100E, RTL8101E, RTL8102E-GR

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@quadrisp-laptop:~/r8101-1.007.00$ sudo -s
root@quadrisp-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 r8101:

patch < ~/Scrivania/r8101-1.007.00.hardy.diff.txt

Se si possiede una scheda supportata dal driver r8168, al posto del precedente comando sarà necessario digitare:

patch < ~/Scrivania/r8168-8.005.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

AGGIORNAMENTO:

Per evitare il caricamento in automatico del modulo è inoltre necessario eliminarlo dalla ramdisk iniziale; a tale scopo è sufficiente digitare il seguente comando:

sudo update-initramfs -u

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

Categorie
Bug e problemi vari, Guide e howto, Hardy, Kernel e moduli
Commenti RSS
Commenti RSS
Trackback
Trackback

« And now… Ladies and gentlemen… Il mio blog in lingua inglese »

8 Responses to “Compilare i moduli r8168 e r8101 per le schede ethernet Realtek su Hardy”

  1. Andrea scrive:
    27 giugno 2008 alle 22:47

    ?? oddio..su ubuntu devi compilare questi moduli?? come mai non sono inclusi nel kernel..??

    prova suse e vedrai la dirrefenza ;)

    Replica
  2. Giorgio Zarrelli scrive:
    2 luglio 2008 alle 14:23

    Bravo, bel lavoro :-)

    A chi si spaventa per la necessità, o meglio per l’opportunità, di compilare un paio di moduli, beh, il bello di GNU/Linux è proprio questo: la libertà di sperimentare, imparare e, perché no, giocare.

    Replica
  3. Timo scrive:
    5 luglio 2008 alle 01:42

    Thank you very much! Even though I don’t understand your language, this site helped me finally getting my ethernet card on my new netbook up and running.

    Again: Thanks a 1000 times!

    Replica
  4. alban scrive:
    17 settembre 2008 alle 15:13

    Io l’ho installato da 2 gg Ubuntu Hardy e per ora sono alle prese con il WIFI. (ovvio un olidata stainer 3050 con ethernet realtek e wifi ralink)
    L’ ethernet l ho provato veramente poco sotto Ubuntu ma su WindowsXP devo dire che mi crea un sacco di problemi. Mi cade la connessione dopo un po’ di traffico (cambia la vel. di conn. da 100mbps a 10mbps e cade). Poi spesso con il cavo disconn. mi da come se fosse il jack inserito una vel di 10 mbps. mah che dire. adesso mi mettero a provare il lan in ubuntu. se non va usero’ la guida di questo sito.

    Replica
  5. Ghandy scrive:
    21 ottobre 2008 alle 22:28

    Io sto eseguendo la procedura con Suse dato che il risultato è esattamente lo stesso… Maledetti drivers, benedetto Linux :D

    Replica
  6. Giovanni Rizzardi scrive:
    9 gennaio 2009 alle 12:28

    Per chi fosse interessato ho trovato questo sito:

    http://www.jamesonwilliams.com/hardy-r8168.html

    nel quale si trovano i sorgenti del driver corretti ed uno script di compilazione/installazione che funziona bene (o almeno ha funzionato perfettamente sul mio pc).

    Replica
  7. rylon scrive:
    27 febbraio 2009 alle 14:19

    Grazie ai tuoi consigli, caro Alessio, sono riuscito ad ovviare a questa magagna sul mio nuovo MSI Wind U100 (2GB RAM).

    Non ho utilizzato la patch perché sul sito della realtech hanno messo una nuova versione, ma tutte le altre tue istruzioni sono state preziosissime.

    In particolare ho installato la versione di Xubuntu 8.10 ed il collegamento ethernet wired funzionava a dovere, poi ahimé, dopo aver fatto gli aggiornamenti automatici la ethernet ha smesso di funzionare. Per fortuna ho trovato il tuo articolo ed ho risolto il problema. :-) Grazie ancora.

    Replica
    • gmelillo scrive:
      9 marzo 2009 alle 17:01

      Ciao rylon, scrive Giovanni che ha un problema simile a quello che avevi tu.
      Ho un msi u100 appena preso, con ubuntu 8.10 installato con wubi. All’inizio la connessione ethernet lavorava bene, ma dopo l’aggiornamento mi ha terribilmente abbondanato nel buio più completo. sono nuovo dell’ambiente ubuntu, puoi darmi una mano a risolvere il problema? grazie.

      Replica

Leave a Reply

Fare clic per cancellare la replica.

Chi sono

Se volete contattarmi, potete utilizzare l'apposito form.

Powered by Netsons

Google Friend Connect

Argomenti

Acer Aspire One Aggiornamento Ambienti di sviluppo Arte,libri & Cultura Audio Bug e problemi vari C Compiz Fusion Comunità internazionale Comunità Italiana Cose varie Debian Documentazione e wiki Esperienze Feisty Firefox GNOME GTK+ GTK Rm3WiFi Authenticator Guide e howto Gutsy Hardy Iniziative Installation Report Generator Installazione e problemi all'avvio Intrepid Jaunty Java Karmic Kernel e moduli Last.fm Linpus Lucid MSI U90 Musica Netbook Remix Notizie ONDA MT503HSA Open source & free software Planet Ubuntu-it Programmazione e sviluppo Python Siti,servizi & blog Società e media Traduzioni Ubuntu Ubuntu Developer Summit Università e scienza Viaggi Video Windows Wordpress Xfce Xubuntu

Ultimi commenti

  • Luciano Krostag su Lo sviluppo di Installation Report Generator, il merge di gtk2hs, Universe Contributor Application, e….
  • Pixel su Cinque fantastici ricordi di Londra
  • quadrispro su Ubuntu aiuta a diffondere i virus per Windows
  • gigi su Ubuntu aiuta a diffondere i virus per Windows
  • DarkJackAho su Windows 7, un silenzioso terrorista

Tutti gli articoli

RSS Planet di Ubuntu-it

  • Aldo Latino (aldolat): Presentazione di Haiku
  • Divilinux: Linux-2.6.33 – Nvidia driver e brightness Samsung R610
  • Dario Cavedon: Il Governo stanzia i fondi per la "banda larga". Ma li usa per una nave.
  • Dario Cavedon: L'ultimo pandoro di primavera
  • Alessio Treglia (quadrispro): Cinque fantastici ricordi di Londra

Blogroll

  • (LS) Lorenzo Sfarra
  • Antonio Doldo Linux Blog
  • Bubuntu
  • crisis
  • Dagospia
  • Divilinux Lost Blog
  • Embrace’s Blog
  • Fabrizio Balliano
  • Fradeve OpenBlog
  • Il blog di Totò
  • Il mondo di Paolettopn
  • Leo
  • Maurizio Moriconi
  • Milo Casagrande
  • Palla's Home
  • Parzialmente scremato
  • sottovoce per non svegliare il cane
  • TuxLinux
  • Ubuntu block notes

Accedi o registrati

  • Registrati
  • Collegati
  • Voce RSS
  • RSS dei commenti
  • WordPress.org
rss Commenti RSS valid xhtml 1.1 design by jide powered by Wordpress get firefox