Raspberry Pi Problems & Fixes – The Complete Troubleshooting Guide for 2026
The Raspberry Pi may be a tiny computer, but it can be used for an enormous range of projects — media servers, home automation, network monitoring, retro gaming, web servers, music players, digital signage and complete desktop systems.Sooner or later, though, something won't work.
Perhaps the Pi won't boot, SSH refuses to connect, Wi-Fi disappears, a USB device isn't detected, a service won't start or the Pi suddenly becomes slow.
Before reinstalling Raspberry Pi OS, there are plenty of things worth checking.
This guide brings together some of the most useful Raspberry Pi troubleshooting commands and techniques in one place.
Most commands apply to modern Raspberry Pi systems running Raspberry Pi OS or another Debian-based Linux distribution. Some will also work on Ubuntu and other Linux distributions installed on a Raspberry Pi.
1. Find Out Which Raspberry Pi You Have
Run:cat /proc/device-tree/model
You should see something similar to:
Raspberry Pi 5 Model B Rev 1.0
For more system information:
uname -a
and:
cat /etc/os-release
These are useful details to include when asking for help.
2. Raspberry Pi Won't Boot
If the Pi won't boot at all, start with the basics.Check:
- Power supply
- USB-C power cable
- microSD card or SSD
- HDMI connection
- Activity LEDs
- Recently changed hardware
- Recently installed software or updates
Power and storage problems are common causes of boot trouble.
If possible, test with a known-good power supply and storage device.
3. Check for Power or Throttling Problems
One of the most useful Raspberry Pi commands is:vcgencmd get_throttled
An ideal result is:
throttled=0x0
A non-zero value can indicate that throttling or an undervoltage condition has occurred.
You can also check the CPU temperature:
vcgencmd measure_temp
For example:
temp=52.3'C
4. Check Raspberry Pi Temperature
Another method is:cat /sys/class/thermal/thermal_zone0/temp
The number is normally reported in thousandths of a degree Celsius.
For example:
52000
means approximately:
52°C
Cooling becomes particularly important when a Raspberry Pi is under sustained load.
A heatsink, fan or suitable case can make a considerable difference.
5. Check CPU and Memory Usage
Use:top
or, if installed:
htop
Check memory with:
free -h
This can help identify an application or service consuming excessive resources.
Remember that Linux uses spare memory for caching, so don't judge memory pressure purely by the free column.
The available figure is usually more useful.
6. Check Disk Space
Run:df -h
Pay particular attention to /.
If the root filesystem is nearly full, applications and services may start failing.
To inspect directory sizes:
sudo du -xh / --max-depth=1 2>/dev/null
Be extremely careful before deleting files using sudo.
Never remove something simply because it looks large unless you know what it is.
7. Find Your Raspberry Pi IP Address
Run:hostname -I
You can also use:
ip -4 addr
and:
ip route
Knowing the Pi's IP address is essential when connecting using SSH, Samba, web interfaces or other network services.
8. Test the Network Connection
First check the network interfaces:ip addr
Then test your router.
For example:
ping -c 4 192.168.1.1
Your router may use a different address.
Now test internet connectivity:
ping -c 4 1.1.1.1
Finally test DNS:
ping -c 4 google.com
If 1.1.1.1 works but google.com doesn't, investigate DNS.
9. Check Wi-Fi
Run:ip link
If NetworkManager is being used:
nmcli device status
To list nearby wireless networks:
nmcli device wifi list
Also check:
rfkill list
This can show whether Wi-Fi has been blocked.
10. SSH Won't Connect
A normal SSH connection looks like:ssh pi@192.168.1.100
Replace the username and IP address with those of your Raspberry Pi.
If you're unsure of the username, don't automatically assume it is pi.
Modern Raspberry Pi OS installations allow a custom username to be created during setup.
First check whether the Pi responds:
ping -c 4 192.168.1.100
Then try verbose SSH output:
ssh -v username@192.168.1.100
On the Raspberry Pi, check the SSH service:
sudo systemctl status ssh
If SSH is disabled, it can be enabled through Raspberry Pi configuration tools or during Raspberry Pi Imager setup.
11.
You may normally connect using something like:ssh username@raspberrypi.local
If that fails, try connecting directly to the IP address:
ssh username@192.168.1.100
If the IP works but .local doesn't, the problem is likely hostname/mDNS resolution rather than SSH itself.
Check Avahi:
systemctl status avahi-daemon
12. Check Failed Services
Run:systemctl --failed
This quickly identifies systemd services that have failed.
To investigate one:
systemctl status SERVICE
For example:
systemctl status ssh
Then inspect its logs:
journalctl -u SERVICE -b
13. A Raspberry Pi Service Won't Start
Suppose you've created a service for a Python program or home-server project.Check:
sudo systemctl status myservice
Then:
sudo journalctl -u myservice -b
Restart it with:
sudo systemctl restart myservice
Check again:
sudo systemctl status myservice
The journal is usually far more useful than repeatedly restarting a broken service.
Look for errors such as:
- File not found
- Permission denied
- Address already in use
- Missing Python module
- Invalid configuration
- Network unavailable
14. Check System Logs
For serious errors from the current boot:journalctl -b -p err
To view the end of the current boot log:
journalctl -b -e
For kernel messages:
sudo dmesg | tail -50
Logs often reveal the actual cause of a problem rather than just its symptoms.
15. USB Device Not Detected
Run:lsusb
Plug in the USB device and run it again.
Then check recent kernel messages:
sudo dmesg | tail -50
This can help troubleshoot:
- USB hard drives
- DACs
- Bluetooth adapters
- Wi-Fi adapters
- Keyboards
- Webcams
- USB audio devices
16. USB Hard Drive or SSD Not Appearing
Start with:lsblk
Then:
lsblk -f
And:
findmnt
These commands show disks, partitions, filesystems and mount points.
Do not format a drive simply because it doesn't appear in the file manager.
First establish whether Linux can see the drive and whether it already contains a filesystem.
17. Check Disk Health
For USB SSDs and hard drives that support SMART, install/use smartmontools and try:sudo smartctl -a /dev/sda
The device may not be /dev/sda, so identify it first:
lsblk
Some USB-to-SATA adapters require additional smartctl options.
If a disk appears to be failing, concentrate on recovering/backing up important data before attempting unnecessary repairs.
18. USB Drive Keeps Disconnecting
Check:sudo dmesg -w
Then watch what happens when the drive disconnects.
Possible causes include:
- Insufficient power
- Bad USB cable
- Faulty enclosure
- USB adapter problem
- Drive failure
- Filesystem problem
19. Check Connected PCIe Devices
On Raspberry Pi models/configurations using PCIe devices, try:lspci
This can be useful when troubleshooting NVMe adapters and other PCIe hardware.
20. No Sound on Raspberry Pi
Start by checking available ALSA devices:aplay -l
For PipeWire systems:
pactl info
List audio outputs:
pactl list short sinks
If PipeWire is being used:
systemctl --user status pipewire
and:
systemctl --user status wireplumber
One common problem is simply that audio is being sent to HDMI instead of the expected DAC, headphones or speakers.
21. Bluetooth Problems
Check the Bluetooth service:systemctl status bluetooth
Then:
bluetoothctl
Inside bluetoothctl, useful commands include:
power on
scan on
devices
paired-devices
If an adapter isn't appearing, also check:
lsusb
and:
rfkill list
22. Check Raspberry Pi CPU Information
Run:lscpu
For the running kernel:
uname -r
For the Pi model:
cat /proc/device-tree/model
This information is useful when diagnosing software compatibility or architecture problems.
23. 32-bit or 64-bit?
Run:uname -m
A 64-bit ARM system will normally report:
aarch64
Knowing the architecture matters when downloading software or installing manually distributed packages.
24. Check Which Ports Are Open
Run:sudo ss -tulpn
This is extremely useful for Raspberry Pi server projects.
If you've created a web server on port 8080, for example, you can check whether anything is actually listening there:
sudo ss -tulpn | grep 8080
If nothing appears, the application probably isn't listening on that port.
25. Test a Local Web Service
If a service should be available on port 8080:curl http://127.0.0.1:8080
If it has a /ping endpoint:
curl http://127.0.0.1:8080/ping
This is a great way to determine whether the service itself works before blaming the network or firewall.
26. Service Works Locally but Not From Another PC
This is a very common Raspberry Pi server problem.If:
curl http://127.0.0.1:8080
works on the Pi but another computer cannot connect, check:
- The Pi's IP address.
- Firewall rules.
- Whether the program is listening only on 127.0.0.1.
- Whether it is listening on the expected port.
- Whether both devices are on the same network.
sudo ss -tulpn | grep 8080
A server intended to accept connections from other machines normally needs to listen on an appropriate network interface rather than only localhost.
27. Samba Share Not Working
If you're sharing files between the Raspberry Pi and Windows/Linux machines, first check Samba:systemctl status smbd
Check the configuration:
testparm
List shares locally:
smbclient -L localhost
Check mounted CIFS shares with:
findmnt -t cifs
Typical problems include:
- Wrong username/password
- File permissions
- Samba permissions
- Incorrect share path
- Firewall rules
- Wrong server IP
- Drive not mounted
28. Network Drive Doesn't Mount at Boot
Check:findmnt
Then inspect:
cat /etc/fstab
Be very careful editing /etc/fstab.
A bad entry can cause boot problems.
For network drives, options such as _netdev, nofail or systemd automounting may be appropriate depending on the setup.
Always make a backup before editing important configuration files:
sudo cp /etc/fstab /etc/fstab.backup
29. Package Updates Failing
On Raspberry Pi OS/Debian:sudo apt update
Then:
sudo apt upgrade
If an error occurs, read the actual message before deleting files or forcing package operations.
Useful information includes:
cat /etc/os-release
and:
uname -r
30. Raspberry Pi Suddenly Running Slowly
Check CPU usage:top
Check memory:
free -h
Check disk space:
df -h
Check temperature:
vcgencmd measure_temp
Check throttling:
vcgencmd get_throttled
Then check system errors:
journalctl -b -p err
This gives you a good starting picture of the Pi's condition.
31. Find What's Using a Port
Suppose you try starting a server and receive:Address already in use
Check the port:
sudo ss -tulpn | grep 8080
This can identify the program already listening there.
Don't simply kill random processes.
Find out what the process belongs to first.
32. Find a Raspberry Pi on Your Home Network
If you know its hostname, try:ping raspberrypi.local
If .local doesn't work, check your router's connected-device list or use the Pi's IP address if known.
From another Linux machine you can also inspect known neighbours:
ip neigh
This can be surprisingly useful when you've forgotten the Pi's address.
33. Check Uptime
Run:uptime
For the last boot time:
who -b
You can also use:
systemctl status
for general system state.
For a Raspberry Pi being used as a server, uptime can help determine whether an unexplained restart has occurred.
34. Find Out Why the Pi Rebooted
Check previous boots:journalctl --list-boots
Then inspect the previous boot:
journalctl -b -1
For serious errors:
journalctl -b -1 -p err
This is particularly useful when a headless Pi has unexpectedly restarted.
35. Useful Raspberry Pi Troubleshooting Commands
Here is a quick reference worth bookmarking:cat /proc/device-tree/model
cat /etc/os-release
uname -a
uname -r
uname -m
vcgencmd measure_temp
vcgencmd get_throttled
ip addr
ip route
hostname -I
ping -c 4 1.1.1.1
lsblk
lsblk -f
df -h
findmnt
free -h
top
htop
lsusb
lspci
systemctl --failed
systemctl status SERVICE
journalctl -u SERVICE -b
journalctl -b -p err
sudo dmesg | tail -50
sudo ss -tulpn
aplay -l
pactl list short sinks
rfkill list
You don't need to memorise them.
Save the list somewhere and use the appropriate command when something goes wrong.
The Most Important Raspberry Pi Troubleshooting Rule
Don't change ten things at once.If something stops working:
- Identify exactly what isn't working.
- Check its status.
- Read the logs.
- Change one thing.
- Test again.
Even worse, you can create several new problems.
Before Reinstalling Raspberry Pi OS
A fresh installation can sometimes be the quickest solution, but don't make it the automatic answer to every problem.Before reinstalling, check:
- Power supply
- Temperature
- Throttling
- Free disk space
- Failed services
- System logs
- Network configuration
- DNS
- Storage health
- USB devices
- Permissions
- Recent updates
- Recently changed configuration files
Back up anything you cannot afford to lose.
Asking for Raspberry Pi Help
When asking for help, don't just post:"My Raspberry Pi doesn't work."
Tell people what you're running.
Post the result of:
cat /proc/device-tree/model
and:
cat /etc/os-release
Then explain:
- What you're trying to do
- What actually happens
- What you expected to happen
- Exact error messages
- What you've already tried
- Any changes made immediately before the problem started
Someone else may have experienced exactly the same problem.
What Raspberry Pi problem brought you here?
Whether you're running a Raspberry Pi 5, Pi 4, Pi Zero, home server, music player, media centre, NAS or another project, post the problem below.Include the error message or terminal output and we'll see if we can get it sorted.
And if you've discovered a Raspberry Pi fix that saved you hours of frustration, add it to the thread.