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:
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:
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.
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:
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:
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:
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:
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.