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

From LibrePlanet
Jump to: navigation, search
(Possible solutions)
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Description of the issue ==
 
== Description of the issue ==
  
Some manufacturers restrict which wireless cards can be used in the Mini PCI Express slot. At least Dell, HP, Lenovo (IBM) and Toshiba have been implicated. When a non-whitelisted card is installed the systems will show an error message (e.g. 'Unauthorized') or otherwise refuse to boot. The whitelist is located in the proprietary BIOS. The given reasoning for this behavior is the regulation of the wireless spectrum by FCC and other national organizations. There are ways around this by modifying either the Wifi card or the BIOS. This is something that has to be taken into consideration when trying to assemble a computer system which would require as little proprietary software/firmware to operate as possible.
+
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 a nonfree firmware.
 +
 
 +
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.
 +
 
 +
== 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 the Linux kernel 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:
 +
ERROR
 +
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
 +
 
 +
Some laptop will even refuse to boot if you don't have a WiFi card plugged in.
 +
 
 +
Here are some non exhaustive examples:
 +
{| class="wikitable"  border="1"
 +
! 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 ==
 
== Possible solutions ==
 +
As the whitelist and the code that implement such behavior is in the nonfree boot software, several workaround exists such as:
 +
* Installing modifications to the nonfree boot software to remove the limitation. This is usually risky and not available for all laptops.
 +
* Modifying the WiFi card to use other identifiers, and then tell the Linux kernel about it, so the correct driver is loaded. As far as I know, this was only done for Intel WiFi cards and/or other cards that don't work without a nonfree firmware.
 +
* 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.
 +
 +
This restriction however doesn't prevent to use external WiFi cards.
 +
 +
Here the best solution is simply to choose a laptop with a free boot software which typically do not implement such restrictions.
 +
 +
Here is some more information on free boot software:
 +
* https://fsf.org/ryf has information on computers that have free boot software
 +
* The [https://libreboot.org/ Libreboot project] supports several laptop and desktop computers
 +
* The [https://www.fsf.org/resources/hw/single-board-computers article on single board computers] has some information on boot software for single board computers
  
 +
Some partially free boot software, or even nonfree boot software also do not implement such restrictions, however it is a very bad idea to use nonfree software.
  
 
==External links==
 
==External links==

Revision as of 21:24, 22 January 2019

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 a nonfree firmware.

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.

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 the Linux kernel 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:

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

Some laptop 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

As the whitelist and the code that implement such behavior is in the nonfree boot software, several workaround exists such as:

  • Installing modifications to the nonfree boot software to remove the limitation. This is usually risky and not available for all laptops.
  • Modifying the WiFi card to use other identifiers, and then tell the Linux kernel about it, so the correct driver is loaded. As far as I know, this was only done for Intel WiFi cards and/or other cards that don't work without a nonfree firmware.
  • 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.

This restriction however doesn't prevent to use external WiFi cards.

Here the best solution is simply to choose a laptop with a free boot software which typically do not implement such restrictions.

Here is some more information on free boot software:

Some partially free boot software, or even nonfree boot software also do not implement such restrictions, however it is a very bad idea to use nonfree software.

External links