VMware ESXi and vSphere Cluster Management

Configure Raspberry Pi Settings with raspi-config

Learn how to launch and navigate raspi-config on Raspberry Pi OS, configure localization, SSH, storage, hardware interfaces, boot settings, and troubleshoot common problems.

raspi-config is the interactive, terminal-based configuration utility for Raspberry Pi OS, the Raspberry Pi-focused operating system formerly called Raspbian. It gathers many common setup tasks into one text menu instead of requiring separate commands or manual edits to configuration files.

This lesson covers how to start raspi-config, navigate its ncurses-style interface, recognize its main categories, and make changes safely. The exact menu entries can differ between Raspberry Pi OS releases, Raspberry Pi models, and installed packages. An option described here might therefore be renamed, moved, or unavailable on a particular system.

When to use raspi-config

raspi-config is commonly used during the first setup of a newly installed Raspberry Pi OS system. Initial configuration often includes choosing a keyboard layout, setting the timezone, changing the default user's password, naming the device, enabling required hardware interfaces, and expanding the root filesystem.

You can also run it again after logging in whenever a supported system setting needs to change. This is different from first-boot configuration: first-boot setup may start automatically, while manual invocation happens when you open a terminal and launch the utility yourself.

Start raspi-config manually

In the Raspberry Pi OS desktop, open the application menu and launch Terminal. A terminal is a command-line application where you type commands and read their output. Then run:

sudo raspi-config

sudo is a command prefix that runs the following command with administrative privileges. raspi-config needs these privileges because it can change system-wide settings, services, partitions, boot behavior, and hardware interfaces. Enter your user password if prompted. The password will not appear on screen while you type it.

If you are already using a text console or connecting through an existing terminal session, the same command works there. Avoid running a configuration command as an administrator unless you understand what it changes, but raspi-config is specifically designed to be run with sudo.

Understand the text-menu interface

raspi-config uses an ncurses-style interface. This is a text-based screen that displays menus, dialogs, selectable choices, and buttons inside a terminal window. It does not require the graphical desktop.

  • Use the Up and Down arrow keys to move through menu items.
  • Use the Left and Right arrow keys when a dialog has buttons or multiple fields.
  • Press Enter to open a highlighted category, choose an item, or confirm a selection.
  • Use Tab where applicable to move between a list and buttons such as OK, Cancel, or Finish.
  • Read each prompt before confirming. Some choices ask whether a service should be enabled, whether a default should be used, or whether the system should reboot.

After making changes, return to the main menu and select Finish. raspi-config may apply a setting immediately, or it may ask you to reboot. A reboot restarts the Raspberry Pi so selected configuration changes can take effect.

sudo reboot

Do not reboot during an important write operation or while another process is using the system. If a reboot is requested, save your work first and read the prompt carefully.

Common raspi-config option categories

The names and locations of options vary. Focus on the purpose of each category rather than expecting every Raspberry Pi to show the same menu.

CategoryTypical settingsWhy a learner would use itMay require reboot
LocalizationKeyboard layout, timezone, locale, Wi-Fi countryMatch regional input, language, date formatting, time, and wireless regulationsSometimes
SystemHostname, password, boot behavior, display or resolution choices where supportedIdentify the device and control how it starts or presents outputOften
InterfacesSSH, VNC, I2C, SPI, serial/UART, camera support, remote GPIO, 1-WireEnable only the services and hardware buses required by a projectOften
Performance and advanced settingsMemory allocation, overlay filesystem, network behavior, audio, and boot-time options where exposedTune a specific workload or alter how the system stores changes and starts servicesOften
StorageRoot filesystem expansionUse unused space on a newly flashed storage deviceUsually
Updates and firmwareFirmware or update-related choices where providedManage supported low-level system update behaviorOften

Localization settings

Localization means adapting the system to your region and language. The related settings are not identical:

  • Keyboard layout maps physical keys to typed characters. For example, selecting the correct regional layout can fix punctuation or symbol keys that produce unexpected characters.
  • Timezone identifies the region used for system time and timestamps.
  • Locale controls regional language, character encoding, date formats, number formats, and similar conventions.
  • Wi-Fi country identifies the regulatory region for wireless operation. Choose the country where the Raspberry Pi is being used.

Example: set a timezone

  1. Run sudo raspi-config.
  2. Open the localization category.
  3. Choose the timezone option.
  4. Select the appropriate geographic region and city or timezone.
  5. Accept the change, select Finish, and reboot if prompted.

After logging in again, inspect the result with:

timedatectl

Example: correct unexpected keyboard characters

Open the keyboard layout settings and select the correct keyboard model, country, and regional variant. Confirm the change, then test punctuation and symbol keys in a terminal. If the characters remain incorrect, check the layout in both the desktop and console environments and restart when requested. The physical keyboard may use a different layout from the one selected in software.

Change the default user's password

raspi-config commonly provides a system option for changing the password of the default user. Change a predictable or reused password immediately after installation. A strong password should be unique to the Raspberry Pi and difficult for other people on the network to guess.

Password changes are especially important before enabling remote access. Do not treat enabling SSH as a substitute for authentication security. Where practical, use SSH key-based authentication and protect the private key. Avoid exposing SSH directly to the public internet unless you have deliberately designed and secured that setup.

Remote access: SSH and VNC

SSH, or Secure Shell, is a protocol for securely accessing a device remotely through a terminal. The interface or remote-access category can expose an option to enable or disable the SSH service.

VNC provides remote graphical desktop access. It may appear as a separate interface option or may depend on the installed desktop and VNC software.

Example: enable SSH for headless administration

  1. Connect the Raspberry Pi to the network.
  2. Run sudo raspi-config.
  3. Open the interface or remote-access settings.
  4. Enable SSH and confirm the prompt.
  5. Select Finish and reboot if requested.
  6. Find the device hostname or network address. The command below displays the current hostname:
hostname

You can then use an SSH client from another computer with the appropriate username and hostname or IP address. The exact connection command depends on the account and address in use. If SSH is not needed, leave it disabled. Every enabled service increases the number of reachable components that must be secured.

Expand the root filesystem

The root filesystem is the main filesystem containing the operating system, user data, and installed software. A Raspberry Pi OS image may initially use only part of a larger microSD card or other storage device.

Filesystem expansion increases the usable root partition and filesystem to fill available capacity on the storage device. Use the storage-related option in raspi-config when you have flashed an image and the reported capacity is smaller than expected.

  1. Back up important data before changing partitions or filesystems.
  2. Open raspi-config and locate the filesystem expansion option.
  3. Apply the change and read the completion message.
  4. Reboot when requested.
  5. Check the available capacity after the system starts.
df -h

Look for the mounted root filesystem and compare its size and available space with the capacity you expect. Do not confuse free space inside the filesystem with unallocated space outside the partition.

System and boot settings

System-related menus can include a hostname, boot behavior, display or resolution options where supported, and update- or firmware-related choices. A hostname is the network name assigned to a computer, so changing it can make several Raspberry Pis easier to distinguish on a local network.

Boot settings may control whether the system starts at a graphical desktop or a command-line login, and whether it logs in automatically. Display choices can be useful with unusual monitors, televisions, or headless setups, but the available controls depend on the hardware, display stack, and Raspberry Pi OS release.

Firmware and update-related settings affect low-level components or update behavior. Use the defaults unless you have a clear project or maintenance reason to change them. Keep the system backed up before making changes that affect boot or storage behavior.

Hardware interfaces

Raspberry Pi projects often communicate with sensors and peripherals through interfaces connected to GPIO pins. Enable only the interface required by the project, then follow the peripheral's wiring and software instructions.

InterfaceTypical useRequired peripheral or projectFollow-up action after enabling
I2CConnect sensors, RTC modules, and other addressable peripheralsAn I2C-compatible device and correct power, ground, data, and clock wiringReboot if requested, then install or use software that detects the device
SPICommunicate with displays, converters, memory devices, and fast sensorsAn SPI peripheral with compatible voltage and chip-select wiringReboot if requested and configure the project for the selected SPI bus
Serial/UARTExchange serial data with controllers, GPS modules, and debugging equipmentA UART peripheral and correct transmit, receive, ground, and voltage connectionsCheck which device owns the serial console before connecting hardware
CameraUse a supported camera moduleA compatible camera and software stack for the installed releaseFollow current camera software instructions; support varies by release
1-WireUse simple addressed sensors such as temperature sensorsA 1-Wire device and suitable pull-up or wiring arrangementLoad the required driver and verify the device appears
Remote GPIOAccess GPIO from another system or serviceA project that specifically requires network-based GPIO controlSecure the service and restrict network access
VNCReach the graphical desktop remotelyA supported desktop environment and VNC softwareUse strong authentication and limit who can connect

Interface names and availability vary. A camera option, for example, may be absent on a release that uses a different camera system or on hardware that does not support the relevant feature. Do not force an unsupported option; consult documentation for the installed release and model.

Performance and advanced settings

Advanced menus may expose memory allocation, overlay filesystem, network behavior, audio, and boot-time options. These settings can have system-wide effects:

  • Memory allocation may divide memory between the operating system and graphics-related functions. Choose it for a specific workload rather than copying a value from an unrelated project.
  • An overlay filesystem can make the normal filesystem behave as a read-only base with changes stored temporarily or in an overlay. This can help some kiosk or appliance designs, but it changes how files persist across reboots.
  • Network behavior options can affect how the device obtains or identifies network configuration.
  • Audio choices can select or alter the available audio output path where supported.
  • Boot-time options can alter startup services, consoles, automatic login, or graphical behavior.

These options are useful when you have a documented requirement. When you are unsure, keep the documented default, cancel the dialog, or back out without saving.

Safe configuration workflow

  1. Record the current state. Write down unfamiliar settings, the current hostname, the reason for the change, and any project wiring or service dependencies.
  2. Group related changes. For example, handle localization together, then handle hardware interfaces separately.
  3. Change only what the project needs. Enabling every interface or service creates unnecessary complexity and exposure.
  4. Read prompts carefully. Pay special attention to warnings about storage, services, boot behavior, and rebooting.
  5. Finish normally. Select Finish instead of closing the terminal abruptly.
  6. Reboot when required. Save work first and wait for the system to return.
  7. Verify the result. Use an appropriate command, test the connected hardware, or confirm that the remote service is reachable.
Setting changedExpected resultHow to verifySecurity or project consideration
TimezoneSystem timestamps use the selected regiontimedatectlIncorrect time can confuse logs, scheduled jobs, and authentication
Keyboard layoutKeys produce the expected charactersType punctuation in the desktop and terminalChoose the physical keyboard's actual regional variant
PasswordThe account accepts the new credentialLock and sign in again, or test locallyUse a unique strong password before enabling remote access
SSHRemote terminal access is availableCheck network reachability and connect with an SSH clientEnable only when needed; prefer keys and restrict access
Filesystem expansionThe root filesystem uses additional storagedf -h after rebootBack up data and avoid interrupting storage operations
HostnameThe device has a recognizable network namehostnameAvoid duplicate names on the same network
I2C, SPI, or UARTThe required bus or serial device is availableUse the project's device-detection or test programCheck voltage levels, pin conflicts, and permissions

Security implications

Configuration changes can affect who reaches the Raspberry Pi and what hardware or services it exposes. Change default credentials because predictable credentials are an easy target, especially when the device is connected to a shared network.

Enable SSH only when remote terminal administration is required. Protect it with strong credentials or, preferably where suitable, key-based authentication. Keep the operating system updated through an appropriate maintenance process and avoid exposing services beyond the network boundaries they need.

Enabling I2C, SPI, UART, camera, remote GPIO, VNC, or other interfaces can make additional devices, drivers, or services active. Match each choice to the project, check whether pins conflict with another function, and secure any network-accessible service.

Practical configuration scenarios

Use the full capacity of a newly flashed card

After installing Raspberry Pi OS on a card larger than the image's initial partition, open raspi-config, select filesystem expansion, apply the change, and reboot. Verify the result with df -h. If the reported size remains unexpectedly small, check that the system actually rebooted and inspect the storage device for partition or filesystem errors.

Prepare GPIO communication for a sensor

Identify the sensor's protocol first. Open raspi-config, enable only I2C, SPI, or another required interface, and reboot if requested. Then wire power, ground, and signal lines according to the sensor documentation, confirm voltage compatibility, and use the project's device-detection tool. Enabling an interface does not replace wiring or installing the correct software.

Troubleshooting

“raspi-config: command not found”

The system may not be Raspberry Pi OS, the utility may be missing, or the installation may be incomplete. Confirm the operating system and release, then check whether the package is available through that system's package manager. Do not apply Raspberry Pi OS-specific instructions to an unrelated distribution without checking its equivalent tools.

An expected menu option is absent

The option may have moved or been removed in a newer release, may depend on an installed package, or may not be supported by the Raspberry Pi model. Check documentation for the installed release and look for an equivalent configuration tool or system file. Do not force an unsupported hardware feature.

SSH is still unreachable

  • Verify that the Raspberry Pi is connected to the same network or otherwise reachable.
  • Confirm the hostname or IP address; hostname shows the local hostname.
  • Restart if raspi-config requested a reboot, and verify the SSH service status locally.
  • Check router, firewall, and network rules.
  • Confirm the username, password, or SSH key being used.

Keyboard characters remain incorrect

Revisit localization settings and select the correct keyboard model, country, and variant. Test from both the desktop and a terminal after restarting. If only one environment is affected, its keyboard configuration may differ from the console configuration.

Storage capacity did not increase

Restart the Raspberry Pi after applying filesystem expansion, then run df -h. If the image already fills the device, there may be no additional space to claim. If the reported capacity is still wrong, investigate partition layout, filesystem errors, or a failing storage device before making further changes.

Key points

  • raspi-config is a terminal-based Raspberry Pi OS configuration utility run with sudo.
  • It is useful during first boot and can be launched again after login.
  • Use arrow keys, Enter, Tab, and the on-screen buttons to navigate, then select Finish.
  • Common tasks include localization, password changes, SSH, filesystem expansion, hostname and boot settings, and hardware interface configuration.
  • Menu items differ by operating system release, hardware model, and installed packages.
  • Make small, documented changes, reboot when requested, and verify each result.

For a related lesson, see Raspberry Pi configuration with raspi-config.