Skip to content

raspi-config Not Working: Command Not Found and nonint Errors

If sudo raspi-config fails, identify whether the problem is the installed package, administrator access, terminal, or requested option. This guide covers Raspberry Pi OS, including Lite and headless installations; Ubuntu and generic Debian use different configuration tools.

Choose the matching raspi-config error

Symptom First check Next action
raspi-config: command not found OS identity and package installation Install or repair the Raspberry Pi OS package
sudo asks for a password Administrator account and policy Enter the current user's password; check sudo access
Menu cannot open or terminal is unknown Interactive terminal and TERM Use a terminal or allocate an SSH TTY
nonint prints nothing Whether a subcommand was supplied Specify an explicit command; bare nonint is not help
do_...: not found Installed version and exact spelling Inspect the installed script and use the correct option
Command succeeds but feature fails Service, device, network, or reboot Verify the actual feature separately

1. Confirm Raspberry Pi OS and the installed package

Run these inspection commands before changing repositories:

1
2
3
4
5
6
# Identify the distribution, architecture, and package version.
cat /etc/os-release
dpkg --print-architecture
command -v raspi-config
dpkg-query -W -f='${Package} ${Version}\n' raspi-config
apt-cache policy raspi-config

A missing package produces a dpkg-query error. APT's candidate and origin help show whether the package is available from the configured sources. The board being a Raspberry Pi does not by itself mean its operating system is Raspberry Pi OS.

On Raspberry Pi OS, install the package:

1
2
3
sudo apt update
sudo apt install raspi-config
sudo raspi-config

For an installed package with missing or damaged files, use sudo apt install --reinstall raspi-config. If APT reports no installation candidate, diagnose the OS release and repositories first; do not add a different distribution's repositories to force installation. See the APT failure checklist for DNS, repository, disk-space, and interrupted-package errors.

If command -v finds the program but sudo does not, inspect sudo sh -c 'command -v raspi-config' and the package file list with dpkg -L raspi-config. Use the package-owned path you verified instead of downloading a replacement script into a system directory.

2. Resolve sudo password or permission failures

Current installations may require an administrator password. A password prompt is not evidence that raspi-config is broken; terminal password entry normally displays no characters.

1
2
3
# Check the account and its permitted administrator commands.
id
sudo -l

If the account is not allowed to run the command, use an existing administrator account or local recovery access. Do not remove authentication just to make the menu open. Follow the Trixie sudo access guide for account recovery and automation.

3. Open the menu through a real terminal

The interactive tool needs a usable terminal. From a local terminal or an ordinary interactive SSH session, run sudo raspi-config.

If launching a remote command directly from another computer, allocate a TTY:

# Run on your client computer; replace the account and address.
ssh -t your-user@pi-address 'sudo raspi-config'

Errors mentioning TERM, whiptail, or terminal size belong to the menu layer. Open a standard terminal, enlarge the window, and inspect printf '%s\n' "$TERM". An IDE output pane, cron job, and systemd service are not interactive terminals. Use explicit non-interactive commands for automation, with administrator access configured for that environment.

4. Fix raspi-config nonint syntax

The form is sudo raspi-config nonint <command> [arguments]. In the upstream Trixie implementation, nonint dispatches the supplied command. Running sudo raspi-config nonint alone does not print a command list, and a zero exit status from that empty invocation confirms no setting change.

For example, enable SSH and check both boot policy and current service state:

1
2
3
4
5
# These SSH options use 0 for enabled and 1 for disabled.
sudo raspi-config nonint do_ssh 0
sudo raspi-config nonint get_ssh
systemctl is-enabled ssh
systemctl is-active ssh

For current Trixie, get_ssh checks whether the service is enabled. That is separate from whether it is running and whether a client can connect. Keep your current SSH connection open until a second login succeeds.

Check each option's arguments rather than generalising the SSH convention to all settings. For the wider command reference, see Raspberry Pi configuration commands.

5. Check an option against the installed version

First locate the installed script with command -v raspi-config. On the normal package path, this read-only search shows the names of configuration functions:

# Inspect the installed implementation; do not execute the matching lines.
grep -nE '^(get_|do_)[[:alnum:]_]+\(\)' /usr/bin/raspi-config

If your verified path differs, use it instead. Finding a function name does not establish its supported arguments or board compatibility. Read that function and the relevant official configuration instructions, or use the interactive menu.

Update through the package manager when an old package is the cause:

sudo apt update
sudo apt install --only-upgrade raspi-config

Avoid nonint do_update in unattended jobs: the current Trixie implementation updates the package and then launches raspi-config again, which can return to interactive operation. Keep package updates and setting changes as separate, checked steps.

6. Verify the result after applying a setting

Changed feature Verification
SSH Enabled and active service, then a new client login
Hostname hostnamectl hostname, then name resolution from another computer
I2C or SPI Reboot if requested, inspect /dev/i2c-* or /dev/spidev*, then test the peripheral
Serial hardware Device path plus console policy and pin wiring
Boot target Reboot with recovery access and inspect the actual login screen

An enabled interface cannot correct wiring, an absent peripheral, or a conflicting overlay. For boot-file settings on current Raspberry Pi OS, use /boot/firmware/config.txt and preserve the established board-specific sections.

FAQ

Does Raspberry Pi OS Lite support raspi-config?

Yes. The terminal menu does not require a desktop. A missing command should lead to the package and distribution checks above.

Why does nonint return 0 but print nothing?

Some successful setting commands are quiet. A bare nonint invocation also does no useful work. Check the exact invocation, read the relevant setting, and verify the actual service or device.

Can I run it inside a Docker container?

Configure the Raspberry Pi host for its boot files, interfaces, and host services. A container has its own filesystem and process environment; installing the tool there is not equivalent to configuring the host.

References and next steps

Command behaviour was checked against the upstream Trixie raspi-config source on 2 October 2026. Your installed package remains the authority for its available functions.