2

Currently, I'm using Pop!_OS 21.04 x86_64 with kernel 5.15.5-76051505-generic
but I've reproduced this issue on Manjaro, Tails, Ubuntu, MX. So the distro doesn't matter.

When I boot a Linux, I cannot connect to Wi-Fi network.
I found a solution for that some time ago and it was connected with Windows (dual-boot).
I had to turn off Wi-Fi on Windows before shutting it down, only then Wi-Fi worked on Linux.

But right now I have only Linux (no dual-boot) on my machine.
Everything was working well until I used Hiren's BootCD PE which is live-usb Windows with some utility tools.

After I booted that utility (from a USB drive) and connected to Wi-Fi on it, Wi-Fi stopped working on Linux.

It looks like the same issue I had before, but this time I cannot successfully disable Wi-Fi on Hiren's Boot Windows. I've tried disabling the Wi-Fi card in the device manager, uninstalling it completely, uncheck allowing to turn off card due to power management, everything with no success.

My guess is that Windows blocks the Wi-Fi card somehow and it cannot be properly initialized by Linux after that.

My proven solution before (when I had Windows and Linux dual-boot) was to boot Windows, turn off Wi-Fi on it, then boot Linux.
But right now I don't have Windows installed, only that live-usb utility with Windows. It uses some non standard PE Network Manager to manage Wi-Fi and turning it off there doesn't help like it used to on standard Windows Wi-Fi interface.

Do you have any ideas on how to "wake up" the wireless card on Linux?
The wireless card is clearly detected but just doesn't work.

I really don't want to install Windows only to turn off Wi-Fi on it and then shred it.

Logs from current Linux state:

$ iwconfig lo no wireless extensions. enp0s31f6 no wireless extensions. 
$ rfkill ID TYPE DEVICE SOFT HARD 1 wlan dell-wifi unblocked unblocked 2 bluetooth dell-bluetooth blocked unblocked 
$ sudo lshw -C network *-network description: Network controller product: Wireless 8265 / 8275 vendor: Intel Corporation physical id: 0 bus info: pci@0000:02:00.0 version: 78 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list configuration: driver=iwlwifi latency=0 resources: irq:135 memory:ef100000-ef101fff *-network description: Ethernet interface product: Ethernet Connection (4) I219-LM vendor: Intel Corporation physical id: 1f.6 bus info: pci@0000:00:1f.6 logical name: enp0s31f6 version: 21 serial: 10:65:30:2e:ee:de capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=5.15.5-76051505-generic firmware=0.1-4 latency=0 link=no multicast=yes port=twisted pair resources: irq:131 memory:ef300000-ef31ffff 
$ sudo dmesg | grep iwlwifi Dec 15 11:06:54 ncno2 kernel: iwlwifi 0000:02:00.0: enabling device (0000 -> 0002) Dec 15 11:06:54 ncno2 kernel: iwlwifi 0000:02:00.0: loaded firmware version 36.ca7b901d.0 8265-36.ucode op_mode iwlmvm Dec 15 11:06:54 ncno2 kernel: iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230 Dec 15 11:06:56 ncno2 kernel: iwlwifi 0000:02:00.0: Couldn't prepare the card Dec 15 11:06:56 ncno2 kernel: iwlwifi 0000:02:00.0: Error while preparing HW: -110 Dec 15 11:06:57 ncno2 kernel: iwlwifi 0000:02:00.0: Master Disable Timed Out, 100 usec 
3
  • Possible duplicate of askubuntu.com/questions/1204099/… ; make sure you have the latest driver for this card installed. You may need to download it from Intel. Commented Dec 15, 2021 at 12:47
  • Maybe I wasn't clear enough. My wifi card was working completely fine with current driver until I booted Windows from Hiren's Boot utility. I had no issues with wifi on Linux till that moment. Commented Dec 15, 2021 at 13:29
  • Another possibility is that windows is loading a firmware newer than what the linux driver supports. A newer linux driver would fix that, or you can make sure you have the firmware for the card installed and available in linux. Commented Dec 15, 2021 at 13:46

2 Answers 2

1

I haven't found a working solution other than turning off wifi on Windows. So I created a portable version of Windows on a USB drive, booted it on the Linux machine, turned off wifi on Windows, then booted again Linux and everything went back to normal. Wifi works without any issues.

To get a portable version of Windows I simply installed Windows on VirtualBox on virtual disk .vdi, then I created .img file from that virtual disk and cloned it to USB drive.

Creating portable Windows using VirtualBox

Worth mentioning is that I shut down the virtual machine at the Windows installation step on region select (it asks "Let's start with the region. Is this right?"). Maybe it's not a big deal and you can finish installation in VirtualBox but I decided to finish it after booting Windows from a USB drive.

I took the following steps:

  1. Install Windows on VirtualBox

  2. Create a disk image file from the virtual disk

$ VBoxManage clonehd /path/to/existing/Windows10.vdi /path/to/new/disk/image/Windows10.img --format RAW 
  1. Check the device name of a plugged USB drive
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 119.5G 0 disk ├─sda1 8:1 1 50M 0 part ├─sda2 8:2 1 29.5G 0 part └─sda3 8:3 1 508M 0 part nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 498M 0 part /boot/efi ├─nvme0n1p2 259:2 0 4G 0 part /recovery ├─nvme0n1p3 259:3 0 468.4G 0 part │ └─cryptdata 253:0 0 468.4G 0 crypt │ └─data-root 253:1 0 468.4G 0 lvm / └─nvme0n1p4 259:4 0 4G 0 part └─cryptswap 253:2 0 4G 0 crypt [SWAP] 

In my case, the USB drive had sda name (with partitions sda1, sda2, sda3)

  1. Clone Windows disk image to a USB drive:

WARNING: Use with caution.
Check twice of= path because you're going to erase the disk from that path.

$ sudo dd if=/path/to/Windows10.img of=/dev/sda bs=4M status=progress 
  1. Restart the computer and boot Windows from a USB drive

What if creating portable Windows using VirtualBox doesn't work for you?

There's also a second option but you need a machine with installed Windows.
Use Rufus or WinToUSB on installed Windows and create "Windows To Go" - a portable version of Windows installed on a USB drive.

0

Several wifi and network cards have features that the linux device driver doesn't understand. When the windows driver enables these features and leaves them on after reboot, linux can't use the interface.

The solution is to power cycle the machine between shutting down windows and booting linux, rather than doing a warm boot.

For PCI network cards, it is at least in theory possible to shut down power to the PCI slot and turn it back on in a linux boot script. (I've done this by hand, it worked at least once.) Practically, no distro has done this, and it's messy to write a script to do it in a portable and reliable way. It's much easier to just power cycle the whole machine.

6
  • Turning the laptop off doesn't help. I shut it down completely and then turn on but with no success. Commented Dec 15, 2021 at 12:43
  • See comment above. Commented Dec 15, 2021 at 12:48
  • I don't get that "power cycle the machine between shutting down windows and booting linux". What do you mean by power cycle? Commented Dec 15, 2021 at 12:53
  • Power cycle: turn it off, leave it off for 5-10 seconds, turn it back on. Don't boot windows between turning it on and booting linux. If it's a USB network adapter, you could just unplug it for a few seconds instead, but this is probably an internal one. Commented Dec 15, 2021 at 12:55
  • 5-10 seconds doesn't help. The laptop was turned off the whole night before I turned it on straight to the Linux with no wifi. Perhaps discharging the battery completely could help but on the other hand, it's not healthy for the battery. Commented Dec 15, 2021 at 13:07

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.