Raspi-Config: A Guide To Raspberry Pi’s Best Hidden Tool
On many Linux distributions, setting up system services requires editing configuration files and running complex commands. Wouldn’t it be cool if you could do it all in one place, with a nice little interface? Your wish for the Raspberry Pi has been granted because it has a built-in tool that makes this easy.
The Raspberry Pi Software Configuration Tool (“raspi-config”) is a command-line utility that comes with Raspberry Pi OS. It’s customized for the Pi, and its menu quickly configures hardware and system services.
It even includes some settings you can’t access from the desktop GUI. Let’s learn how to take advantage of this extra-handy and underrated utility.
If you’re feeling lost in all the Raspberry Pi jargon, I’ve got something to help you out. I’ve created a free glossary that explains all the essential terms and abbreviations in a way that’s easy to understand. It’s a great resource to have by your side. Get your free copy here.
Introducing the raspi-config Tool
The Raspberry Pi Software Configuration Tool (raspi-config) is a command-line program included with all versions of Raspberry Pi OS. It provides a text menu so you can modify both hardware and software settings for your Pi all in one place.
Sure, many of these settings can be changed on the desktop, under the main menu > Preferences > Control Centre. So why use raspi-config at all?

For one, what if you’re using Raspberry Pi OS Lite for your server? Or are accessing your Pi through SSH? You won’t have access to the desktop, so raspi-config becomes a lifesaver. Changing these settings using the tool is much faster than doing everything manually from the command line.
Second, raspi-config lets you access advanced features that aren’t available on the desktop Control Centre utility.
If you are lost in all these new words and abbreviations, request my free Raspberry Pi glossary here (PDF format)!
Download now
Lastly, raspi-config is the ultimate configuration tool to fall back on if all else fails.
To access raspi-config, you’ll need to have Raspberry Pi OS installed—any version, including Desktop and Lite, will have this program installed by default.
Members get an ad-free version of every guide, plus exclusive project support.
Join the Community | Sign In
To load the tool from a terminal or the command line, enter this command:sudo raspi-config

How do you navigate the menus? Just use your keyboard:
- Press the arrow keys to move around.
- Hit Enter to traverse the menus.
- Hit ESC to go back to the upper level.
- To quickly switch between the buttons at the bottom, press TAB.
Quick note: If you find it hard to remember all these commands, I’ve put them all on a one-page cheat sheet. You can download it for free here so you have it handy whenever you're working on a project.
Raspi-Config Settings Explained
Now that you know what raspi-config is, let’s load it up and look under the hood. In the sections below, I’ll describe what each option does along with links that give hints on how you might use these settings.
Note: The options below appear on Raspberry Pi OS (Trixie) as of this update. Depending on your OS version and Pi model, you may see slightly different menu items.
If you are lost in all these new words and abbreviations, request my free Raspberry Pi glossary here (PDF format)!
Download now
System Options
Under System Options, you can configure key settings like audio, Wi-Fi, and user password.

Here’s what each System Option does:
- Wireless LAN – Enter your Wi-Fi passphrase to set up a Wi-Fi connection.
From experience, I would say this is 4x easier than setting it up manually via command line and config files. - Audio – Choose where system audio comes out.
For example, you can have sound output to your monitor (HDMI) or speakers (3.5mm audio jack) that you’ve plugged in. - Password – Change your user’s password.
- Hostname – Give your Pi a name.
The hostname is what the Pi shows up as on your network and your router. - Boot / Auto Login – Choose whether your Pi boots into the desktop or to the command line.
This menu item is useful for when you’re switching between Raspberry Pi OS Desktop or Lite.- Console: Boot to the command line with login required.
- Console Autologin: Boot to the command line but log in automatically.
- Desktop: Boot to the desktop GUI (if you’ve installed one) with login required.
- Desktop Autologin: Boot to the desktop but log in automatically.
- Splash Screen – Enable or disable the graphical splash screen that displays at boot.
You can customize the splash screen for kiosks, art installations, or sign boards. - Power LED – Set how the LED on the side of your Pi behaves.
On my Raspberry Pi 4, this option can’t be modified, but you can use the tips mentioned here if you want to play with this. - Browser – Choose whether Chromium or Firefox should be your default web browser if you’re using a desktop environment.
Display Options
Under Display Options, you can modify a few settings related to the Pi’s video output.

Here’s what each Display Option does:
- Underscan – Enlarges the display to fill more of the screen.
I never need this option, but it can be useful for fixing the resolution for special displays. - Screen Blanking – Put the display to sleep after 10 minutes of inactivity.
You can tweak other settings to change the time limit. - VNC Resolution – Set the display resolution that your VNC server outputs.
Change this setting to make the display smaller or bigger when accessing your Pi remotely via a VNC client. (This setting might have been removed in the latest version.) - Composite – Enable composite video output.
You might need this setting if you’re connecting video devices to your Pi that don’t use HDMI, such as old arcade screens that use composite video cables. - Onscreen Keyboard – Displays an on-screen/touch keyboard on the desktop for accessibility.
- 4Kp60 HDMI – Enables the HDMI to output 4K resolution at a 60 Hz refresh rate.
Depending on your Pi’s capabilities, you might not see this setting. This setting can be useful for those using Steam Link to play games.
Interface Options
The Interface Options category is where you can enable remote access (SSH, etc.) and tweak hardware settings for peripherals (such as the GPIO pins).

Here’s what each Interface Option does:
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
- SSH – Toggle SSH for remote access via terminal.
A single confirmation to enable SSH here is so much faster than doing it via config files. - RPi Connect – Toggle remote graphical desktop access using the WebRTC protocol.
It’s a newer way to remote access the Pi that may be more responsive than VNC or XRDP. - SPI – Enable this option for serial peripheral interface (SPI) devices like RFID tag readers.
- VNC – Toggle VNC for remote graphical desktop access.
A great way to enable remote control without messing with VNC server configuration. - I2C – Enable this option if you’re using HATs or other Inter-Integrated Circuit (I2C) devices.
- Serial Port – Use this to enable serial devices like sensors or microcontrollers.
If you aren’t using the Pi’s serial port, disable both options here for security. - 1-Wire – Toggle this option to enable the 1-Wire interface, which is used by some temperature sensors and LEDs.
- Remote GPIO – Enable this option to control your robot’s servo motors or other connected GPIO devices from far away.
Performance Options
The Performance category contains a few miscellaneous settings.

Here’s what they do:
- Overlay File System – Toggle write-protection on your SD card, which makes your system read-only.
DO NOT ENABLE THIS unless you need it. It might be useful for a kiosk or industrial controller where you don’t want others to be able to shut down your Pi. - Fan – Modify cooling options if your Pi has a stand-alone GPIO or case fan.
After pulling my hair out and setting fan curves on other Linux distros, I find this menu item quite welcome. - USB Current – Increase the current supplied to your USB ports.
DO NOT modify this setting if you don’t know what you’re doing. You might need this option if you need to give more power to a peripheral, like a USB hard drive.
Localisation Options
Do you want to change your system’s language or keyboard layout? It’s much easier to set Localisation Options here than to dig through the directory tree for the right files.

Here are the local settings you can change:
- Locale – Choose your language and character set.
You can also set these on the desktop. - Timezone – Set your system’s local time zone so your clock displays correctly.
- Keyboard – Change your keyboard layout.
This setting should be the first thing you look for if you don’t use a QWERTY keyboard. - WLAN Country – Set your country so that your Pi uses the right Wi-Fi channels.
Advanced Options
The Advanced Options category is my favorite one because many of these settings can’t be easily found from the GUI. Some of these resemble BIOS settings on a desktop PC, like changing the boot order.

Here’s what each Advanced Option does:
- Expand Filesystem – Expand the partition to use your extra SD card capacity.
This option can be useful if you cloned your backup to a larger SD card and want your new system to take advantage of the extra space. - Network Interface Names – Toggle whether network devices should use a “predictable name” scheme (off by default).
I find this setting counterintuitive; enabling it results in more specific and complex network adapter names like “enp0s31,” while disabling it gives you the simpler “wlan0” and “eth0” names. Leave this disabled unless you need to differentiate between many network adapters. - Network Proxy Settings – Configure a network proxy for your Pi.
There are many use cases for a proxy, such as security, bypassing restrictions, or authenticating into a company network to access internal resources.- All: Use the same proxy settings for all situations.
- HTTP: Configure a proxy that uses HTTP.
- HTTPS: Configure a proxy using the more secure HTTPS/SSL protocols.
- FTP: Configure a proxy that uses the FTP protocol.
- RSYNC: Configure a proxy that uses the Rsync protocol.
- Exceptions: Specify local network addresses that shouldn’t activate the proxy.
- Boot Order – Change which device to try booting first.
- SD Card Boot: Boot to the SD card first before others.
This setting is the default. - NVMe/USB Boot: Boot from NVME first and then try USB next.
This setting is useful for different scenarios. It can let you use an NVMe SSD with your Pi. I’ve also used it to install Arch and install Gentoo from a USB flash drive. - Network Boot: Boot using the network adapter.
I love this feature. If your Pi model supports it, you can do a clean install of a new OS onto your SD card without having to use an external SD card reader.
- SD Card Boot: Boot to the SD card first before others.
- Bootloader Version – Choose which bootloader to use to start your system.
- Latest: Use the latest version of the bootloader.
- Default: Reset to the factory default bootloader.
I never mess with this setting, but you can switch to Default if there’s something wrong.
- Beta Access – If you want to beta-test the newest/unstable packages, you can enable it here.
I don’t recommend doing this unless you need something more cutting edge. - Wayland – Toggle which display server you want to use to handle the desktop graphics.
- X11: Switch to the older X11 backend.
Since Wayland has been going through some growing pains, switching to X11 can be useful for fixing compatibility issues with graphical apps like Teamviewer. - Labwc: Switch to the newer Wayland backend, using the Labwc window manager.
This setting is now the default for Raspberry Pi OS (trixie) on the Pi 4 and Pi 5. - Wayfire: Switch to the newer Wayland backend, using the Wayfire window manager.
(This setting was the default on older releases but may be discontinued in the latest.)
- X11: Switch to the older X11 backend.
- Audio Config – Choose the default audio configuration manager / sound server.
(This setting might be discontinued in the latest version.)
If you’ve got multiple audio outputs—like speakers, headsets, or wireless Bluetooth devices—it can be painful to manage on Linux, so I find this setting very welcome.- PulseAudio: Set PulseAudio as your default audio manager.
PulseAudio is the older, more-tested solution to sound issues. I’ve always found it a little clunky. - PipeWire: Set Pipewire as your default audio manager.
PipeWire is the new kid on the block that aims to make audio management more user-friendly. I recommend you try this one first.
- PulseAudio: Set PulseAudio as your default audio manager.
- PCIe Speed – Enable PCIe Gen 3 speeds.
I believe this setting mostly applies to the Raspberry Pi 5. It lets you force your Pi to use higher PCIe3 bus speeds, which is useful for fast NVMEs or other peripherals. - Network Install UI – Choose whether to display the network boot interface when your Pi starts.
- Always: always show the network boot user interface at startup.
- On demand: hide the network boot interface unless you press SHIFT.
- Libliftoff – Toggle whether to enable libliftoff hardware overlays, which might improve full-screen video performance on older Pi 3 or Pi 4 boards. It might also cause glitches.
- Shutdown Behavior – Set how your Pi acts when the OS shuts down.
- Full Power Off: The default setting, which turns your Pi off completely.
- VPU Sleep Mode: May be needed for PoE HAT functionality or GPIO power buttons.
- Logging – sets where to store journald logs.
- Default: At the moment, this setting is the same as ‘Volatile’ below.
- Volatile: Logs are stored in memory only, which means they won’t write to disk or use up disk space, and they will flush upon reboot. Meant to protect the SD card from wear.
- Persistent: Logs are written and saved between reboots.
- Auto: Let the system decide based on your manual configuration of journald.
- None: No logging at all.
- WLAN Power Save – Toggle Wi-Fi power saving mode.
- Yes: The default, enables Wi-Fi power saving to reduce energy usage when not needed.
- No: Disables Wi-Fi power saving.
I tend to use this option quite often, as it prevents my Pi from stuttering during SSH.
- Link-local Fallback – Enabling this assigns your Raspberry Pi an IP address of 169.254.x.x if it wasn’t able to get an address from your router or other DHCP server.
- Yes: Enabling fallback can be useful if you need to, for instance, make a direct Ethernet connection between your laptop and Pi.
- No: The default. DO NOT enable this feature unless you know why you need it, or else you can make your Pi unreachable over the network.
Update
This menu item updates the raspi-config utility itself. It can be useful when you want to ensure you’re seeing the most recent options, especially after upgrading your Pi’s firmware. However, I rarely use this feature because a regular system update will also update raspi-config.
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
Read next: Do this to keep a full backup of your Raspberry Pi
About raspi-config
The About menu item shows you a description of the tool and version number.
I never need this page myself.

That’s all there is for today’s tour. The rest I’ll leave up to you and your adventures in Pi!
Prefer videos over reading? The RaspberryTips Community members get exclusive video lessons every month. Join now and watch them all right away. Get instant access.
FAQ
How do I update the raspi-config tool?
There are three ways to update raspi-config: 1) from the Update menu inside raspi-config itself, 2) using the APT command to update your system, which will also update raspi-config, and 3) from the desktop GUI for the same result.
Do I need to reboot after making changes?
It depends—raspi-config will let you know once you hit Finish at the bottom. If you’re asked to reboot, then changes must take effect. Otherwise, there’s no need, as your changes will go into effect immediately.

Are changes in raspi-config being written to disk somewhere?
Yes, every setting is written to disk. For example, some options might modify cmdline.txt in /boot/firmware or edit service configurations found in /etc. The raspi-config utility is just a front end that does it for you.
Can I use raspi-config without menus?
Yes. The raspi-config command can be invoked with flags, similar to the way you’d run the history command or other Linux commands. You can review its syntax in the official Pi documentation. I’m not sure why you’d need this ability, but it might be useful for writing scripts.
Whenever you’re ready, here are other ways I can help you:
Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.
The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help.
Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.
Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.
You can also find all my recommendations for tools and hardware on this page.
