Group: Hardware/Restrictions/Mini PCIe slot restrictions on wireless cards

From LibrePlanet
Jump to: navigation, search

Description of the issue

Several laptop manufacturers (including Dell, HP, IBM, Lenovo and Toshiba) restrict which internal WiFi cards can be used. The official excuse for this behavior is the regulation of the wireless spectrum by FCC and other national organizations.

Why is being able to change the internal WiFi card is so important?

Many WiFi cards don't work with free software as they require nonfree peripheral software.

So if your laptop has one of such WiFi cards, it would be a good idea to be able to replace the card with one that can work with free software.

A possible workaround for that issue is to use an external USB WiFi card that does work with free software as external USB cards are usually not affected by such restrictions.

However it would be best not to be affected by such restriction. For external cards, there is also some tradeoffs to make between using a huge card that has a very good range, and a tiny one that has a way smaller range.

In addition we don't have any 802.11n USB cards that work with free software and that support the 5GHz mode. Some (m)PCI(e) cards compatible with ath9k support both the 2.4GHz and 5GHz modes of 802.11n.

Why is it even possible to do that ?

It is technically possible to do it because the boot software they use is nonfree, and internal WiFi cards usually have vendor and product code that enables software to identify them. The vendor and product codes are for instance used in Linux to use the right driver for the card.

So here, at boot, the nonfree boot software (BIOS, EFI, UEFI) checks if the WiFi card that is installed inside the laptop is in a whitelist of "authorized" cards, which is also located in that nonfree boot software. If the card is not in the list, the boot software will simply refuse to boot and show a scary boot message.

For instance on a Thinkpad X60 with the stock proprietary boot software it prints:

1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.

Some laptops will even refuse to boot if you don't have a WiFi card plugged in.

Here are some non exhaustive examples:

Brand and Model Software Restriction
Thinkpad X60 Stock nonfree BIOS The boot software refuses to boot if the internal mPCIe WiFi card is not in the whitelist
HP Envy 15 Stock nonfree BIOS The boot software refuses to boot with a non-whitelisted card or if the card is removed

Possible solutions

Here the best solution is simply to choose a laptop with a fully free boot software because that software usually do not implement such restrictions. For instance people could get RYF compatible laptops that support removable wireless cards.

Many laptops with a nonfree BIOS/UEFI do not have that restriction, but since the boot software is completely nonfree, the restriction could be added in later BIOS/UEFI versions and if that occurs, it would be difficult to inform potential users about it as update notes generally don't clearly list downgrades and it'll only reveal itself after an update.

So it's best to instead use laptops that at least have part of their boot software that is free software to avoid such limitations.

It is also possible to do workarounds but they often have disadvantages.

For instance:

  • Using external WiFi Cards. Here there is often a compromise to do between the card size and its range (smaller cards typically have integrated antennas with less range). We also don't have 5GHz support yet with 802.11n USB cards that work with fully free software.
  • Installing modifications to the nonfree boot software to remove the limitation. This is usually risky and not available for all laptops.
  • Installing the WiFi card in another slot. That also doesn't always work.
  • Doing hardware modification to the WiFi card to prevent the boot software from seeing it. This doesn't always work either. At some point the computer still needs to see the card though, so something needs to make the card visible for the (GNU/Linux) distribution being used.
  • Modifying the WiFi card to use other identifiers, and then tell Linux about it, so the correct driver is loaded. The iwleeprom software works with both Intel WiFi cards (that require nonfree peripheral software) and atheros cards, including ones that don't require nonfree peripheral software. For atheros cards, the 'atheros' branch needs to be used.

Here is some more information on free boot software:

External links