Eu tenho um problema estranho com a minha conexão de porta Ethernet em casa. Eu fiz o meu próprio cabeamento ethernet com ferramentas e testes adequados em casa. Tudo parecia funcionar. Os pings foram rápidos e nenhum pacote foi perdido com alta velocidade de transmissão (conexão Gigabit). Depois que fiquei convencido de que tudo estava funcionando corretamente, comecei a usar minha rede ethernet. Meu raspberry Pis está funcionando bem em ethernet, no entanto, meu Ubuntu 14.04 LTS no Lenovo T450s se desconecta aleatoriamente. Aqui estão os sintomas:
- O indicador de conexão Ethernet não exibe a perda de conexão.
- Acontece principalmente enquanto estou navegando e entre a abertura de um novo
página / clicando em um novo link.
- O site demora uma eternidade para carregar e, eventualmente, acabar com erro no navegador.
- Sempre que vejo que o site leva muito tempo para carregar, sondo meu modem a cabo, no qual os pacotes chegam ao modem e voltam. E, em seguida, a conexão é recuperada . Depois de alguns testes, percebi que a conexão só é recuperada após o ping do modem! Curiosamente, o primeiro pacote (após o problema de conexão) leva ~ 1007ms e depois o resto ~ 0.5ms. De alguma forma, o primeiro pacote demora muito. Além disso, comecei a fazer ping no modem com intervalo de 2-3 segundos , o que impedia qualquer interrupção adicional.
- Todos os outros dispositivos conectados ao modem e à Internet através de WiFi ou Ethernet funcionam perfeitamente bem! Incluindo, raspberry Pi, máquinas Windows etc.
- O mesmo bloco de notas também funciona bem no trabalho em ethernet.
De alguma forma, meu notebook Ubuntu tem um problema com minha pequena rede ethernet doméstica. Minha suposição neste momento é que o Ubuntu está desligando minha placa ethernet ou fazendo alguma economia de energia, o que a torna inacessível. Pinging revive ou mantém acordado. Mas eu tenho esse problema enquanto carrego meu laptop.
Como posso resolver isso? Alguma idéia?
Esqueci de mencionar ... Eu fiz um script para coletar algumas informações através do ethtool logo após a perda e revitalização da conexão (para comparação). Não há diferenças aparentes (verificadas com diff). Mas aqui está a saída após (durante) a perda de conexão.
--version
_________
ethtool version 3.13
-a
_________
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
-c
_________
Coalesce parameters for eth0:
Adaptive RX: off TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 3
rx-frames: 0
rx-usecs-irq: 0
rx-frames-irq: 0
tx-usecs: 0
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
-i
_________
driver: e1000e
version: 2.3.2-k
firmware-version: 0.2-3
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
-g
_________
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
-S
_________
NIC statistics:
rx_packets: 4923045
tx_packets: 2764542
rx_bytes: 6044576522
tx_bytes: 515265291
rx_broadcast: 140452
tx_broadcast: 1805
rx_multicast: 34355
tx_multicast: 972
rx_errors: 0
tx_errors: 0
tx_dropped: 0
multicast: 34355
collisions: 0
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
tx_restart_queue: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 41837
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_csum_offload_good: 4888272
rx_csum_offload_errors: 69
rx_header_split: 0
alloc_rx_buff_failed: 0
tx_smbus: 0
rx_smbus: 1274
dropped_smbus: 0
rx_dma_failed: 0
tx_dma_failed: 0
rx_hwtstamp_cleared: 0
uncorr_ecc_errors: 0
corr_ecc_errors: 0
-t (test)
_________
The test result is PASS
The test extra info:
Register test (offline) 0
Eeprom test (offline) 0
Interrupt test (offline) 0
Loopback test (offline) 0
Link test (on/offline) 0
EDITAR:
Eu tentei compilar e instalar a versão recente do
3.3.5 do e1000e ... Ambos funcionaram sem nenhum erro. Mas com ou sem reinicialização
ethtool -i eth0
me diz que ainda tenho
2.3.2-k . Aqui está a saída do make install:
make -C /lib/modules/3.13.0-93-generic/build CC=gcc SUBDIRS=/home/<username>/Desktop/IT/e1000e-3.3.5/src modules
make[1]: Entering directory '/usr/src/linux-headers-3.13.0-93-generic'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-3.13.0-93-generic'
gzip -c ../e1000e.7 > e1000e.7.gz
# remove all old versions of the driver
find /lib/modules/3.13.0-93-generic -name e1000e.ko -exec rm -f {} \; || true
find /lib/modules/3.13.0-93-generic -name e1000e.ko.gz -exec rm -f {} \; || true
install -D -m 644 e1000e.ko /lib/modules/3.13.0-93-generic/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko
/sbin/depmod -a 3.13.0-93-generic || true
install -D -m 644 e1000e.7.gz /usr/share/man/man7/e1000e.7.gz
man -c -P'cat > /dev/null' e1000e || true
e1000e.
INFO:
Eu finalmente criei o dkms.conf
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=e1000e
BUILT_MODULE_LOCATION=src/
DEST_MODULE_LOCATION="/kernel/updates/dkms"
PACKAGE_NAME=e1000e
PACKAGE_VERSION=3.3.5
REMAKE_INITRD=yes
Eu também segui as estas instruções.
Infelizmente, o novo driver também tem o mesmo problema.