Summary
I have recently revived an old Sony Vaio VGN-N230E laptop of mine, and installed Linux Mint on it:
gctrindade@gctrindade-VGN-N230E ~ $ lsb_release -irc
Distributor ID: LinuxMint
Release: 13
Codename: maya
gctrindade@gctrindade-VGN-N230E ~ $ uname -or
3.2.0-23-generic GNU/Linux
The laptop works just fine, except for one problem: it has a hardware wifi switch that is slightly "loose". As a consequence, the laptop will randomly/constantly switch its wifi off, even when physically idle (something to do with some spring, perhaps?).
When that happens, rfkill displays the wifi as "hard blocked":
gctrindade@gctrindade-VGN-N230E ~ $ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
This is particularly frustrating, seeing how I'm connecting to it remotely (SSH).
A few things I have tried:
Checking the BIOS for some sort of wlan/wifi setting. I failed to find anything related to it. (Note: I have not tried to "reset to factory defaults", as some other posts have suggested.)
Doing rfkill unblock all does not work, as the wifi remains "hard blocked".
Doing ifconfig wlan0 up fails with the following error message:
gctrindade@gctrindade-VGN-N230E ~ $ ifconfig wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
Doing ip link set wlan0 up also fails:
gctrindade@gctrindade-VGN-N230E ~ $ ifconfig wlan0 up
RTNETLINK answers: Operation not possible due to RF-kill
Doing lsmod | grep sony revealed that a module called sony_laptop was loaded, and so I proceeded to do echo "blacklist sony_laptop" >> /etc/modprobe.d/blacklist.conf and rebooted my computer. Unfortunately, the problem persists.
Doing rm /etc/rfkill and rebooting does not work, as the wifi remains "hard blocked".
Doing rfkill event, followed by rfkill unblock xxxxxxxxxx.xxxxxx (with the number shown by the previous command) does not work, either.
Is it possible to bypass the hardware switch altogether?
Hopefully you guys have an idea how to solve this. It is really frustrating to have to come back to the laptop, just to squeeze the wifi switch (harder) onto the ON position every couple of hours.
Perhaps this has some valuable information:
gctrindade@gctrindade-VGN-N230E ~ $ lshw -c network
[sudo] password for gctrindade:
*-network
description: Ethernet interface
product: 88E8036 PCI-E Fast Ethernet Controller
vendor: Marvell Technology Group Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 16
serial: 00:13:a9:4f:a9:73
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm vpd msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=sky2 driverversion=1.30 firmware=N/A latency=0 link=no multicast=yes port=twisted pair
resources: irq:43 memory:d6000000-d6003fff ioport:2000(size=256)
*-network
description: Wireless interface
product: PRO/Wireless 3945ABG [Golan] Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: wlan0
version: 02
serial: 00:19:d2:23:7f:eb
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwl3945 driverversion=3.2.0-23-generic firmware=15.32.2.9 ip=192.168.15.4 latency=0 link=yes multicast=yes wireless=IEEE 802.11abg
resources: irq:44 memory:da000000-da000fff
Thanks in advance!