# Configuration - raspi-config

The raspi-config tool is a configuration utility for Raspberry Pi that allows users to easily modify various system settings through an interactive menu-based interface.&#x20;

It provides a convenient way to perform initial setup and configuration tasks without the need for manual editing of configuration files.

Here's a detailed explanation of how the raspi-config tool works and the technical terms associated with it:

### <mark style="color:green;">Accessing raspi-config</mark>

* The raspi-config tool is launched from the command line by running the command&#x20;

```bash
sudo raspi-config
```

* The `sudo` command is used to run the tool with superuser (administrative) privileges, as modifying system settings requires elevated permissions.

<figure><img src="https://4284411457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTHUqo1Gz3PNgLnvJy0ym%2Fuploads%2FaTiQZ6mbuBzDTZHSrtt4%2Fimage.png?alt=media&#x26;token=ec90ca40-de36-49a1-abbb-4aee3640f344" alt=""><figcaption></figcaption></figure>

### <mark style="color:green;">User Interface</mark>

* Upon launching raspi-config, you'll see a <mark style="color:blue;">blue screen</mark> with options presented in a grey box.
* The options are organized into different categories, such as System Options, Display Options, Interface Options, Performance Options, Localisation Options, and Advanced Options.
* You can navigate through the options using the up and down arrow keys, and select an option by pressing the Enter key.

### <mark style="color:green;">System Options</mark>

* The System Options submenu allows you to configure various system-level settings.
* Some notable options include:
  * <mark style="color:purple;">Wireless LAN:</mark> Set the wireless network SSID and passphrase.
  * <mark style="color:purple;">Audio:</mark> Specify the audio output destination.
  * <mark style="color:purple;">Password:</mark> Change the default user password.
  * <mark style="color:purple;">Hostname:</mark> Set the visible name for the Raspberry Pi on the network.
  * <mark style="color:purple;">Boot/Auto Login:</mark> Choose whether to boot to the console or desktop, and enable/disable automatic login.

### <mark style="color:green;">Display Options</mark>

* The Display Options submenu provides settings related to the display and video output.
* Options include:
  * Underscan: Adjust the overscan settings to ensure the display fits properly on the screen.
  * Screen Blanking: Enable or disable screen blanking (turning off the display after a period of inactivity).
  * VNC Resolution: Define the video resolution to use in headless setups (when the Raspberry Pi is accessed remotely without a physical display).

### <mark style="color:green;">Interface Options</mark>

* The Interface Options submenu allows you to enable or disable various interfaces and protocols.
* Options include:
  * <mark style="color:purple;">SSH (Secure Shell):</mark> Enable/disable remote command-line access to the Raspberry Pi using SSH.
  * <mark style="color:purple;">VNC (Virtual Network Computing):</mark> Enable/disable the VNC server for remote desktop access.
  * <mark style="color:purple;">SPI (Serial Peripheral Interface):</mark> Enable/disable SPI interfaces and automatic loading of the SPI kernel module.
  * <mark style="color:purple;">I2C (Inter-Integrated Circuit):</mark> Enable/disable I2C interfaces and automatic loading of the I2C kernel module.
  * <mark style="color:purple;">Serial Port:</mark> Enable/disable shell and kernel messages on the serial connection.

### <mark style="color:green;">Performance Options</mark>

* The Performance Options submenu allows you to configure settings related to system performance.
* Options include:
  * Overclock: Enable overclocking of the Raspberry Pi's CPU to achieve higher performance (available on some models).
  * GPU Memory: Change the amount of memory allocated to the GPU (Graphics Processing Unit).
  * Overlay File System: Enable or disable a read-only filesystem for protecting the SD card.

### <mark style="color:green;">Localisation Options</mark>

* The Localisation Options submenu provides settings for configuring localization preferences.
* Options include:
  * Locale: Select the locale settings, such as language and character encoding (e.g., en\_GB.UTF-8).
  * Time Zone: Choose the appropriate time zone based on region and city.
  * Keyboard: Select the keyboard layout to match your physical keyboard.
  * WLAN Country: Set the country code for the wireless network to ensure compliance with local regulations.

### <mark style="color:green;">Advanced Options</mark>

* The Advanced Options submenu contains additional settings for advanced users.
* Options include:
  * <mark style="color:purple;">Expand Filesystem:</mark> Expand the filesystem to use the entire SD card capacity.
  * <mark style="color:purple;">Network Interface Names:</mark> Enable or disable predictable network interface names.
  * <mark style="color:purple;">Network Proxy Settings:</mark> Configure proxy settings for network connectivity.
  * <mark style="color:purple;">Boot Order:</mark> Specify the boot order preference (e.g., boot from USB or network if the SD card is not inserted).
  * <mark style="color:purple;">Bootloader Version:</mark> Choose between the latest boot ROM software or the factory default version.

### <mark style="color:green;">Applying Changes</mark>

* After making the desired configuration changes, you can select the "Finish" option to exit raspi-config.
* If you made changes that require a reboot, you'll be prompted to reboot the Raspberry Pi for the changes to take effect.

The raspi-config tool simplifies the process of configuring various aspects of the Raspberry Pi system by providing an intuitive menu-based interface. It abstracts away the complexity of manually editing configuration files and allows users to make changes easily.

Under the hood, raspi-config modifies relevant configuration files and system settings based on the options selected.&#x20;

It automates the process of editing files such as <mark style="color:yellow;">`/boot/config.txt`</mark>, <mark style="color:yellow;">`/etc/ssh/sshd_config`</mark>, and other system configuration files.

By using raspi-config, users can quickly set up their Raspberry Pi with desired settings, enable or disable features, and customize the system to suit their needs without requiring in-depth knowledge of the underlying configuration files and syntax.
