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

From LibrePlanet
Jump to: navigation, search
(Possible solutions)
m (It's software, not firmware, Linux is only a kernel, used correct Wi-Fi terminology and general rewording/corrections.)
 
(4 intermediate revisions by one other user not shown)
Line 4: Line 4:
  
 
== Why is being able to change the internal WiFi card is so important? ==
 
== 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.
+
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.
 
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.
Line 11: Line 11:
  
 
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.
 
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 ? ==
 
== 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.
+
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.
 
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.
Line 21: Line 23:
 
  1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
 
  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.
+
Some laptops will even refuse to boot if you don't have a WiFi card plugged in.
  
 
Here are some non exhaustive examples:
 
Here are some non exhaustive examples:
Line 39: Line 41:
  
 
== 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:
+
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 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.
 
* 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.
+
* 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 [https://github.com/0x90/iwleeprom/ 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.
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:
 
Here is some more information on free boot software:
 
* https://fsf.org/ryf has information on computers that have 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://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
+
* 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.
  
 
==External links==
 
==External links==

Latest revision as of 11:20, 10 June 2024

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:

ERROR
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