On BeeLink T4 Mini devices that have a BIOS with version lower than at least v2.18
, Linux will fail to detect the Intel Wifi device on boot and will instead report something along the lines of Unable to change power state from D3cold to D0, device inaccessible
regarding the iwlwifi
driver. The first clue is that if the kernel is called with acpi=off
there are chances that the wifi device will be recognized such that the problem can be traced to the ACPI tables within the BIOS of the T4 Mini.
The only solution is to upgrade the BeeLink T4 Mini BIOS. The following upload contains a T4 Mini BIOS dump at version v2.18.1263
and it should be flashed to the BIOS of the BeeLink device using the bundled tools (either the GUI AFUWINGUIx64.exe
or the command line tool AFUWINx64.exe
, because they will both achieve the same purpose):
Perhaps the easiest way to update the BIOS is to create a WinPE bootable image, or just use a Windows 10 bootable UEFI installation medium to boot to the command-line prompt and then flash the BIOS. With the BIOS flashed, booting back into Linux will allow iwlwifi
to pick up the wireless device and set up an interface.
One some machines, the following messages will be printed indicating that the PC was unable to power up the device.
pci 0000:02:00.0: not ready 1023ms after resume; giving up pci 0000:02:00.0: Unable to change power state from D3cold to D0, device inaccessible iwlwifi 0000:02:00.0: Unable to change power state from D3cold to D0, device inaccessible iwlwifi 0000:02:00.0: HW_REV=0xFFFFFFFF, PCI issues? iwlwifi: probe of 0000:02:00.0 failed with error -5
and the issue can sometimes be traced to power management for the PCI bridge that tends to be problematic on BeeLink and other mini-PCs. The issue can be solve by adding:
pcie_port_pm=off
to the boot command line, for example, by editing /etc/default/grub
and then inserting the configuration within the GRUB_CMDLINE_LINUX_DEFAULT
line.
The Intel graphics chipset within the Beelink is an "Intel Corporation HD Graphics 500 (rev 0b)" recognized by the i915
module such that HuC and GuC can be enabled on the chip in order to achieve a better performance. There are many ways to do this, but ideally, the initrd image is updated such that the module is loaded on early boot:
echo "i915 enable_guc=3" >>/etc/initramfs-tools/modules
after which the image is recreated using the command:
update-initramfs -u
followed by updating grub:
update-grub
After a reboot, the status of HuC and GuC can be checked via the commands:
cat /sys/kernel/debug/dri/0/gt/uc/guc_info cat /sys/kernel/debug/dri/0/gt/uc/huc_info
that would state whether HuC or GuC are running by reading the status
field.