Recently I was hired by a client to install Linux Mint onto an HP ZBook laptop and to remove the existing Windows 10 operating system. I began the installation of Linux Mint by first testing with a Live USB. This is when I discovered that the laptop's Wifi was not recognized whatsoever by Linux Mint, although it was functioning perfectly on Windows.
Due to a kernel module (iwlwifi) issue with certain hardware (e.g. HP ZBook laptops and their Intel Wifi), the Wifi device can fail to be recognized by Linux under certain circumstances. The problem occurs on computers presently or previously installed with Windows, where Wifi had been enabled and working properly on Windows, but does not function correctly or load at all on Linux.
To solve the issue, one must disable Wifi at the device level on Windows, and then exit Windows with Wifi still disabled. Linux can now be booted into with proper Wifi functionality. In order to maintain Wifi functionality on Linux, the Wifi device must remain disabled on Windows at all times. Never re-enable the Wifi on Windows, for if you do, you will lose Wifi functionality on Linux at next boot. Once Wifi is disabled on Windows, the Windows OS and partition can be safely removed, forever eliminating the risk of accidentally disabling Wifi on Linux.
What to do if you have only Linux installed, but still no Wifi?
In a situation such as having Linux installed without Wifi functionality, and no Windows OS installed through which to solve your problem by disabling Wifi on Windows, the only solution is by booting any type of Windows and disabling Wifi from within WIndows - there is no other way. However, there are better ways to boot into Windows than by installing the entire OS on your machine just to solve this one problem - you can use a "portable" version of Windows, and you need only obtain the most basic version of Windows (e.g. a testing or evaluation version) in order to complete the Wifi device disable procedure. See the first link below, for more information. You can use a Windows program called "Rufus" to create a bootable, portable version of Windows on a USB stick, to keep around for situations such as this one, and others where access to a Windows system is temporarily required.
Basic Instructions:
- Install Windows on VirtualBox
Create a disk image file from the virtual disk
$ VBoxManage clonehd /path/to/Windows10.vdi /path/to/new/disk/image/Windows10.img --format RAW
- Determine the device name of a plugged USB drive using the 'lsblk' command.
Clone Windows disk image to a USB drive:
$ dd if=/path/to/Windows10.img of=/dev/sdX bs=4M status=progress
- Restart the computer and boot into Windows from the USB drive.
Disable Wifi on Windows in Device Manager. Shutdown Windows, remove the USB drive, and boot into Linux. Wifi should now be functioning propertly on Linux.
Related Links:
https://superuser.com/questions/1125178/iwlwifi-finds-firmware-on-boot-but-fails-on-modprobe