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

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’

Page 1 of 3 | Next page