Ubuntu 20.04升级至22.04后wifi adapter与bluetooth adapter失效,无法联网求助
Hey there, sorry to hear you're stuck with this frustrating connectivity issue after upgrading. Let's walk through some actionable steps to get your WiFi, Bluetooth, and internet access back up and running.
First: Gather critical hardware info (even without internet)
Before diving into fixes, we need to know exactly what WiFi/Bluetooth hardware your HP Envy has—this will help target the right drivers. Open a terminal and run these commands, then jot down or photograph the output:
lspci -nnk | grep -A3 Network(lists PCI-based WiFi adapters, including their hardware IDs)lsusb(lists USB devices, which covers most Bluetooth adapters)
Step 1: Fix USB tethering (your best shot for quick internet)
You mentioned USB tethering didn't work—let's troubleshoot that first, since it's the easiest way to get online for updates:
- Double-check your phone settings: Make sure USB tethering is enabled, and your phone is set to "USB Network Sharing" (exact wording varies by brand—look in Settings > Network & Internet > Hotspot & Tethering).
- Load required kernel modules: In Ubuntu's terminal, run:
If you get no output, the RNDIS module (needed for USB tethering) isn't loaded. Fix that with:lsmod | grep rndissudo modprobe rndis_host sudo modprobe usbnet - Check for new network interfaces: Run
ip link show—look for a new interface name likeenp0s20f0u1(it'll start withenorusb). - Request an IP address manually: If the interface exists but no internet, run:
Replacesudo dhclient <your-interface-name><your-interface-name>with the one you found (e.g.,sudo dhclient enp0s20f0u1).
Step 2: Use a Live USB to repair your installed system
If USB tethering fails, boot from your Ubuntu 22.04 Live USB (the same one you used to upgrade) and follow these steps:
- Boot into Live mode: Select "Try Ubuntu" instead of "Install Ubuntu". First, check if WiFi works here—if it does, that confirms your hardware is supported, and the issue is missing drivers/kernel modules in your installed system.
- Mount your installed system:
- Run
lsblkto identify your main Ubuntu partition (look for a large partition labeled/orubuntu—e.g.,/dev/nvme0n1p2). - Create a mount point:
sudo mkdir /mnt/ubuntu - Mount your partition:
sudo mount /dev/your-partition /mnt/ubuntu - Bind critical system directories to access the installed system's environment:
sudo mount --bind /dev /mnt/ubuntu/dev sudo mount --bind /proc /mnt/ubuntu/proc sudo mount --bind /sys /mnt/ubuntu/sys
- Run
- Chroot into your installed system: This lets you run commands as if you're booted into your actual system:
sudo chroot /mnt/ubuntu - Install the correct default kernel for 22.04:
Your current kernel is 5.13 (from 20.04), but Ubuntu 22.04 uses 5.15 as the default. Install it with:
Then update GRUB to make sure the new kernel shows up:apt update apt install linux-image-generic linux-headers-genericupdate-grub - Install hardware-specific drivers:
Using the hardware info you gathered earlier, install the DKMS driver package for your WiFi/Bluetooth adapter. For example, if you have a Realtek RTL8822CE adapter, run:
Replace the package name with the one matching your hardware (common ones includeapt install rtl8822ce-dkmsrtl8821ce-dkms,broadcom-sta-dkms, etc.). - Exit and reboot:
Typeexitto leave the chroot environment, then safely unmount the partition:
Reboot your laptop, and select the 5.15 kernel from the GRUB menu (it should be the default).sudo umount /mnt/ubuntu/dev sudo umount /mnt/ubuntu/proc sudo umount /mnt/ubuntu/sys sudo umount /mnt/ubuntu
Note on your failed 6.2 kernel install
Manual .deb kernel installs require matching image, headers, and modules packages (all three need the exact same version number). Instead of downloading them manually, using the chroot method above with internet access (from Live mode's WiFi) lets you install kernels via apt, which handles dependencies automatically—this is way more reliable.
If you still run into issues, share the output of the lspci/lsusb commands you ran earlier, and we can narrow down the exact driver you need.
备注:内容来源于stack exchange,提问作者evan54




