Identify Your Network Hardware + Driver
Boot into 6.8.0-100 (the bad kernel) and run:
lspci -nnk | grep -A3 -E 'Ethernet|Network'
If you’re on Wi-Fi also:
iw dev
This tells us:
- Exact chipset
- Which kernel module (driver) is in use
Very likely candidates:
- Realtek (r8169, r8125)
- Intel (iwlwifi, e1000e, igc)
- MediaTek
- Broadcom
Kernel updates often regress specific drivers.
Check for Driver Errors (Not in /var/log)
Modern Ubuntu doesn’t log much in traditional /var/log. Instead use:
journalctl -k -b
Then filter for networking:
journalctl -k -b | grep -iE 'eth|enp|wlan|wifi|firmware|r8169|iwlwifi|igc'
Also check for:
- firmware load failures
- link flapping
- resets
- timeouts
If you see things like:
NETDEV WATCHDOG
link down
firmware crashed
tx timeout
Check for Packet Loss (Kernel 100)
While running the bad kernel:
ping -i 0.2 8.8.8.8
If you see intermittent packet loss or latency spikes, that confirms low-level network issues (not DNS or Firefox).
Also try:
mtr 8.8.8.8
Very Common 6.8 Regression: Realtek r8169
If your NIC uses r8169, this kernel series introduced changes that broke stability for some chips.
Check:
lsmod | grep r8169
If yes, try this test:
sudo ethtool -K enpXsY tso off gso off gro off
(replace enpXsY with your interface)
If that improves stability → it’s a driver offload regression.
Permanent test workaround:
Create:
sudo nano /etc/modprobe.d/r8169.conf
Add:
options r8169 disable_msi=1
Then:
sudo update-initramfs -u
Reboot.
If Intel (iwlwifi or igc)
Check firmware version:
dmesg | grep iwlwifi
Sometimes installing newer firmware helps:
sudo apt install --reinstall linux-firmware
Better Workaround Than Editing grub.cfg
Do not edit grub.cfg manually — it gets regenerated.
Instead:
sudo nano /etc/default/grub
Change:
GRUB_DEFAULT=0
to:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-94-generic"
Then:
sudo update-grub
That safely pins the older kernel.
Or simpler:
sudo apt-mark hold linux-image-6.8.0-100-generic
If You Want Proper Debugging
Compare working vs broken kernel logs:
Boot 94:
journalctl -k -b > kernel94.txt
Boot 100:
journalctl -k -b > kernel100.txt
Then diff:
diff kernel94.txt kernel100.txt
Look for network-driver differences.