Wifi não funciona se estiver ligando ou acordando da suspensão com energia da bateria

0

Tudo,

Eu tenho uma nova instalação do Ubuntu 12.04 32 bit em um Lenovo X220. Eu comprei este modelo de propósito já que o hardware é conhecido por ter um bom desempenho em 11,10 64 bit (veja aqui ) e de fato Eu não tive nenhum problema até agora, mas o abaixo.

Se eu iniciar o laptop ou acordá-lo da suspensão e estou usando a energia da bateria, a rede wifi não funciona.

Curiosamente, eu faço pegar o popup dizendo que conectei com sucesso ao wifi da minha casa, e recebo um endereço IP correto do DHCP no ponto de acesso da minha casa ( o que eu posso ver de ifconfig -a ) mas a rede está morta, eu não consigo nem fazer ping no ponto de acesso. Isso é o que eu vejo, que é idêntico a quando a rede funciona.

giacecco@giaceccos-x220:~$ ifconfig -a
(...)
wlan0     Link encap:Ethernet  HWaddr 8c:70:5a:3e:f1:80  
          inet addr:192.168.1.24  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::8e70:5aff:fe3e:f180/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:87965 errors:0 dropped:0 overruns:0 frame:0
          TX packets:108083 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:33751259 (33.7 MB)  TX bytes:111481622 (111.4 MB)

giacecco@giaceccos-x220:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
^C
--- 192.168.1.1 ping statistics ---
77 packets transmitted, 0 received, 100% packet loss, time 76608ms

Para que isso funcione novamente, notei que é suficiente desabilitar e habilitar a rede sem fio (não a rede em geral) na barra de menus global.

O problema não pode ser reproduzido fazendo o mesmo quando conectado ou usando um cabo Ethernet.

Seguindo as instruções aqui , também alterei configurações de rádio do laptop para ser os corretos (GB no meu caso).

Abaixo está a saída de lshw -C caso seja útil.

giacecco@giaceccos-x220:~$ sudo lshw -C network
[sudo] password for giacecco: 
  *-network               
(...)
  *-network
       description: Wireless interface
       product: Centrino Advanced-N 6205
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: wlan0
       version: 34
       serial: 8c:70:5a:3e:f1:80
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwlwifi driverversion=3.2.0-26-generic-pae firmware=17.168.5.3 build 42301 ip=192.168.1.24 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
       resources: irq:44 memory:f2400000-f2401fff
  *-network DISABLED
(...)

Isso é incrivelmente irritante, já que eu sou um pequeno passo para ter o laptop Linux perfeito.

Para começar, você pode sugerir o script exato que está por trás do item de menu "Ativar rede" e como seu comportamento pode mudar dependendo da energia da bateria?

Obrigado.

    
por giacecco 14.07.2012 / 16:15

1 resposta

0

Você também pode tentar descarregar o driver e, em seguida, modprobe de volta.

Colado para a posteridade ( referência original ):

Use o seguinte script como /etc/pm/sleep.d/99_fixwifi.sh

#!/bin/sh

. "${PM_FUNCTIONS}"

resume_wifi()
{
        # Stop networking and network-manager
        stop network-manager
        service networking stop

        # Remove and reload the module for the wifi card
        # Change to the wifi driver of your choice.
        # You can probably find it by using
        #    'lspci | grep -i wireless'
        # and it's probably loaded somewhere in 'modprobe -l', 
        # maybe pipe modprobe's output to 'grep iw'

        modprobe -r -f iwlwifi
        modprobe iwlwifi

        # Start networking and network-manager again
        service networking start
        start network-manager
}

case "$1" in
        thaw|resume)
                resume_wifi
                ;;
        *) exit $NA
                ;;
esac
    
por Ehtesh Choudhury 07.11.2012 / 20:03