Goal: configuring my RPi 4 to act as a bridge/router between the cafe wifi downstairs and my private network while also using Pi-hole for my local network. Effectively, my wlan0 connects to the cafe (WAN), and I have a TrendNet adapter wlan1 to broadcast my LAN. I am also trying to share wlan0 with eth0 for a NAS.

Was playing around with overclocking and one article advised running rpi-update, which I did sadly (ignoring its warnings as well as many other articles). I found out soon after that my TrendNet was not getting picked up and figured the new firmware was not compatible the old driver. No problem, I thought, as I tried to reinstall the driver but was met with Your kernel header files aren't properly installed.

I then followed steps to revert rpi-update using sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel, but after reboot found that the kernel did not change. rpi-update had brought me to version 6.6.25-v8+, while the --reinstall installed 6.1.21-v8+. Fiddling around with boot config has yielded no fruit. Looking for an answer before I resort to wiping and reinstalling RPi OS Bookworm.

Main issue: uname -r always gives 6.6.25-v8+ after rpi-update but I want to roll back to 6.1.21-v8+. How is this possible?

Edit: Additional info

$ ls /usr/lib/modules
6.1.0-18-arm64       6.1.0-rpi8-rpi-2712  6.6.20+rpt-rpi-2712  6.6.25-v8-16k+
6.1.0-rpi7-rpi-2712  6.1.0-rpi8-rpi-v8    6.6.20+rpt-rpi-v8
6.1.0-rpi7-rpi-v8    6.1.21-v8+           6.6.25-v8+

$ cat /boot/firmware/config.txt
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces

# Enable audio (loads snd_bcm2835)

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras

# Automatically load overlays for detected DSI displays

# Automatically load initramfs files, if found

# Enable DRM VC4 V3D driver

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.

# Run in 64-bit mode

# Disable compensation for displays with overscan

# Run as fast as firmware / board allows

# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.


# Uncomment to overclock. Default CPU is 1500, default GPU is 500
  • Run sudo apt install raspberrypi-kernel raspberrypi-bootloader to undo the damage you've done with rpi-update
    – Dougie
    Commented Apr 10 at 22:00
  • Lots of irresponsible people suggest rpi-update but the program itself WARNS you not to use it. Why did you ignore the warning? DO NOT use apt-get use apt. The restoration commands have changed for recent OS. Restore from your backup.
    – Milliways
    Commented Apr 10 at 22:05
  • NOTE the current OS now uses 6.6 kernel. You would need to use rpi- update to get 6.1 but this is complicated.
    – Milliways
    Commented Apr 10 at 22:12
  • I've seen some point to hashes of old releases to revert. Would something like sudo rpi-update master c4617e02da233ff70940223a06e568a193fc446d work since it points to 6.1.21? Commented Apr 11 at 0:11

1 Answer 1


sudo apt update; sudo apt install --reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} raspberrypi-bootloader raspberrypi-kernel will put it back to the latest supported kernel/bootcode (which is currently 6.6.20 on Pi4 Bookworm and this is what you would get if you re-install).

See https://www.raspberrypi.com/documentation/computers/os.html#rpi-update which suggests sudo apt-get update sudo apt install --reinstall raspi-firmware for Bookworm.

sudo apt list --installed | grep headers will show installed headers.
Any which say "auto-removable" can be deleted with sudo apt auto-remove

  • rpi-update doesn't actually remove the old kernel or modules so they should still be there. (I believe the normal upgrade also keeps old modules for a while.) It is possible to manually remove them but I haven't done that for years. If you want to try you will have to list config.txt, files in the boot partition and at least what directories modules are installed in. NOTE next time you upgrade you will get the latest kernel.
    – Milliways
    Commented Apr 11 at 4:04
  • uname -r now shows 6.6.20. Seems like it took at least two reboots for it to revert from .25 for some reason (for reference for future readers using this solution). Commented Apr 12 at 0:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.