[NCLUG] WIFI and Bluetooth hard blocks
rww
rww at dimcom.net
Wed Apr 10 12:23:17 MDT 2013
WIFI and Bluetooth Hard Blocks
------------------------------
I recently purchased an MSI GE70 0ND laptop with Win7 installed. As is
my custom, I replaced the Win7 hard drive with a new hard drive for my
Linux install. Unfortunately, I had NO communications. Both the WIFI
and Bluetooth radios were hard blocked. This problem does not occur
while running Win7..
The laptop has an "airplane mode" switch above the keyboard. This button
switches only the soft block as reported by RFKILL. There is also a blue
Fn key which pressed in conbination with the F8 key also switches only
the soft block. I have gone over this machine inside and out looking for
another switch -- none found. There are no (that I could find) kernel
modules/drivers interfacing these buttons for this laptop.
The laptop came with an Intel Wireless-N 135 card. This card also
implements Bluetooth. The 135 card is visible on the PCI bus, the
bluetooth module shows up on the USB bus.
I am using RFKILL to monitor the state changes for both the hard and
soft blocks by starting a separate terminal window and issuing the command:
# sudo /usr/sbin/rfkill event
Unloading and then reloading the WIFI driver (iwlwifi in this case) does
change the hard block.
linux-p5tw:/home/rww # rfkill event
1362157575.923296: idx 1 type 1 op 0 soft 0 hard 1 <---- initial state
after entering rfkill
1362157614.045045: idx 1 type 1 op 1 soft 0 hard 0 <----- state after
unloading wifi driver
1362157649.231825: idx 2 type 1 op 0 soft 0 hard 0 <----- state after
reloading wifi driver
1362157649.231837: idx 2 type 1 op 2 soft 0 hard 1 <----- state a few
microseconds later
Please note that I have gotten the exact same results using a different
wifi card (Atheros AR9462) and driver (ath9k).
Issuing the command "rfkill unblock all" only changes the soft block,
never the hard block.
Here is the really wierd thing: I discovered that if I remove the
battery, wait 10 seconds, then reinstall the battery, and reboot,
everything seems OK. Wireless works perfectly. The hard block is off.
The airplain mode button and Fn+F8 keys still switch the soft block, but
do nothing to the hard block (which remains off). When I shutdown (or
reboot without shutting down) the hard block comes back.
After much searching, I found two input signals on the mini pci-e card
specification that control the hard blocks. These inputs are active
low and mini pci-e cards are required to implement a pull-up resister
internally. The radio is disabled when the input signal is active (low,
grounded). These pins are:
20 --- controles WIFI radio, W_DISABLE1#
51 --- controles Bluetooth radio, W_DISABLE2#
Googling "mini pcie W_DISABLE" should get you more info.
mini PCI-e connector
--------------------
51 49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9
7 5 3 1
52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10
8 6 4 2
Simply masking these pins should make the corresponding signals
in-active, not blocking the radio. This in fact, works! I have tried
this on both my Atheros and Intel mini pcie cards with equal success.
I found the following useful:
Materials
1. Cheap (thin) cellophane tape (think dollar store)
2. Small high quality sicsors
3. Loupe or magnifing lense
3. Exacto knife with sharp blade
Procedure
1. Wash your hands
2. Cut a larger-than-necessary piece of tape
3. Place this piece of tape over the desired card finger
4. Carefully cut away the excess tape
5. Inspect -- the tape easily slides off the card fingers
6. Reinstall mini pcie card in your laptop
Note: Starting with pin 51 to practice makes sense. The three pins next
to pin 51 (pins 45, 47 and 49) are unused and no harm will occur if you
are sloppy and cover them too.
If the tape does not slide when re-installing the card, you should be in
business. In practice, I have not had much trouble with sliding tape.
Once it is in place, the tape seems to hold quite well.
I suspect that this sort of thing happens to Linux users quite often. I
hope that these notes prevent some mental stress.
-- Richard
More information about the NCLUG
mailing list