Beelink CS-Lynn [SOLVED] Full Solution & Workaround for 40Gbps USB4 Enclosures (ASM2464PD) on Linux / Proxmox VE (Beelink GTi15 Ultra)
UPDATE to my previous post:
I am happy to report that after extensive testing, we have found a 100% working, stable, and repeatable solution to run 40Gbps USB4 / Thunderbolt enclosures (specifically based on the ASMedia ASM2464PD chipset) natively at full speed on the Beelink GTi15 Ultra (Intel Core Ultra 9 285H) under Linux (Proxmox VE 9.2 / Debian 13).
If you are experiencing disconnections, dropped PCIe tunnels, or 60-second kernel boot delays with 40Gbps enclosures, here is the complete breakdown and fix.
Root Causes Identified
- ASMedia Firmware Bug with Meteor Lake: Older enclosure firmwares (e.g., 25.04.17) fail the PCIe retimer handshake with Intel Core Ultra processors under Linux ACPI handoff.
- ACPI PCIe Control: By default, Linux delegates PCIe port power management to the BIOS ACPI tables, which currently drop the USB4 tunnel upon kernel boot.
- NVMe Admin Timeout: During early boot, timestamp synchronization on external USB4 NVMe drives can cause a 60-second kernel stall due to default admin timeouts.
The Step-by-Step Fix
Step 1: Update Enclosure Firmware
Update your ASMedia ASM2464PD enclosure firmware to version 25.07.17 (or newer) using a Windows PC before connecting it to Linux. This resolves the hardware retimer handshake bug.
Step 2: Configure Linux Kernel Boot Parameters (GRUB)
Edit /etc/default/grub and update GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT=“quiet pcie_ports=native pcie_port_pm=off pcie_aspm=off nvme_core.default_ps_max_latency_us=0 nvme_core.admin_timeout=5 pci=noaer intel_iommu=on iommu=pt”
- pcie_ports=native (CRITICAL): Forces the Linux kernel to take direct control of PCIe root ports instead of relying on broken ACPI handoffs.
- nvme_core.admin_timeout=5 (CRITICAL): Reduces the NVMe admin command timeout from 60 seconds to 5 seconds, eliminating the long boot delay.
- pcie_aspm=off & pcie_port_pm=off: Prevents aggressive PCIe power-saving states from dropping the tunnel 24/7.
Save and apply changes:
update-grub
reboot
Step 3: Add Thunderbolt Udev Authorization Rule
Create /etc/udev/rules.d/99-thunderbolt.rules with the following content to automatically authorize PCIe tunneling:
echo ‘ACTION==“add”, SUBSYSTEM==“thunderbolt”, ATTR{authorized}==“0”, ATTR{authorized}=“1”’ > /etc/udev/rules.d/99-thunderbolt.rules
udevadm control –reload-rules && udevadm trigger
Verified Results & Benchmarks
- Boot Time: Kernel initialization time dropped from 1 min 4 sec down to 3.09 seconds across both cold and warm reboots.
- Stability: Fully stable across power cycles (S5 state) and continuous 24/7 operation.
- Real Direct I/O Benchmarks (dd with oflag=direct / iflag=direct):
- Direct Sequential Write: 2,200 MB/s (Saturating the Samsung 970 Pro hardware write limit)
- Direct Sequential Read: 3,000–3,200 MB/s (Saturating the full physical bandwidth of the 40Gbps USB4 tunnel)
Note to Beelink Engineers: While this kernel-side configuration completely solves the issue for Linux users, we still recommend incorporating proper ACPI PCIe tunneling tables in future BIOS releases so that USB4 works out-of-the-box without manual GRUB tweaks.
Hope this helps other Linux power users on this platform!