Ethernet Realtek 8139too
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.