Ethernet Realtek 8139too

Da LugMan TNG.
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

La scheda Ethernet Realtek RTL-8139/8139C/8139C+ è una delle più comuni e con Linux ha una compatibilità pressochè perfetta. Personalemnte su tutti i computer che ho hanno questa scheda di rete PCI o integrata e non ha mai dato problemi. Da qualche anno a questa parte, però, i nuovi kernel dati di default con le distribuzioni più famose come Ubuntu e SuSE, la scheda non funziona più; per essere più precisi la scheda viene gestita in quanto il comando ifconfig eth0 non dà problemi e assegna correttamente l'IP. I problemi però vengono quando effettuo il DHCP o tentando di connettersi o pingare un host (differente ovviamente da quello locale). Questo problema è stato riscontrato su un ACER Aspire 1600 (1601LC precisamente). Altre persono in internet hanno postato soluzioni per il problema, ma questo caso è differente. Per risolvere il problema occorre RICOMPILARE IL KERNEL... il che sotto Slackware e Debian (dove normalemnte il problema non si presenta) è semplicissimo. Andando con ordine però: questa scheda il modulo 8139too e non 8139cp. Una volta scaricati i sorgenti del kernel, lanciare:

make menuconfig #oppure make oldconfig

oppure prima di lanciare questi comandi, prelevare da /proc il fie .config e metterlo nella root dei sorgenti, e quindi configurare il sistema. La cunfigurazione della scheda di rete (almno sul mio sistema) è:

Device Driver --> 
   Network device support -->
      Ethernet (10 or 100Mbit) -->
         [*] EISA, VLB, PCI and on board controllers

La configurazione della scheda è la seguente:

<M> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support
[ ]   Use PIO instead of MMIO
[*]   Support for uncommon RTL-8139 rev. K (automatic channel equalization)
[ ]   Support for older RTL-8129/8130 boards
[ ]   Use older RX-reset method

Non è necessario mettere M; può anche essere incluso direttamente nel kernel. Inoltre la prima e quarta opzione possono essere settate (almeno sotto SuSE 10.3 non mi hanno dato problemi) mentre assolutamente non mettere la terza. Quindi si procede nel metodo tipico:

make
make modules
make modules_install

La creazione del pacchetto del kernel dipende poi dalla distro utilizzata e quindi non verrà affrontato. Le distro su cui si è provato a risolvere il problema sono Slackware (la quale se non ricordo male il problema non l'aveva), Ubuntu 6.10/7.04, SuSE 10.3.

Nota: sotto Ubuntu 8.04 il problema sembra essere risolto. Su 8.10 la scheda funziona, anche se ho rilevato qualche problema attivando compiz: una volta attivato, infatti, la scheda non risponde più neppure ricaricando il modulo e occorre riavviare (ovviamente disabilitando compiz); non avendo provato a ricompilare il kernel non so se la soluzione proposta in questa pagina porti miglioramenti.