System settings
Open System in esp32-config to change the hostname, login password, time,
or startup program. Run the command-line examples as root on the board.
Hostname and login password
Choose Hostname, enter a name, and select Save and apply. The hostname changes immediately and is restored at boot. From the command line:
esp32-config system hostname my-s31
Choose Change login password to set the root account’s password. The menu opens the system password prompt, which asks for the new password twice. This changes the password used by the board’s login service. The equivalent command is:
esp32-config system password
Date and time
Choose Date and time → Time zone and automatic time. Select an installed
zone such as America/Los_Angeles or Asia/Shanghai, then choose whether to
use a network time server. The zone’s daylight-saving rules apply automatically. The image includes a
curated set of nine zones from configs/esp32-config-timezones.list, rather
than the entire timezone database; available names are listed in
/usr/share/esp32-config/timezones.
For example, to select Los Angeles time and enable network time:
esp32-config system time configure America/Los_Angeles 1 pool.ntp.org
esp32-config system time status
The arguments are ZONE, AUTOMATIC (0 or 1), and SERVER. The default
zone is Etc/UTC; automatic time is initially off. Saved settings are applied
at startup. Automatic synchronization needs a working network connection.
To request an update immediately:
esp32-config system time sync
This waits up to 30 seconds and reports whether the update completed. Enabling the time service alone does not mean that the clock has synchronized.
For an offline board, choose Set date and time manually or run:
esp32-config system time set '2026-09-26 12:00:00'
Replace the example with the current local time in the selected zone. Manual setting turns automatic time off. It updates the running clock; after power loss, set the clock again or enable network time. The saved time-zone setting survives reboot.
Run a program at startup
Install your executable or an executable shell script on persistent storage. For example, make an existing script executable:
chmod +x /root/start-player.sh
Choose Startup program → Program and arguments. Enter the absolute path, then put each argument on a separate line. Arguments are passed literally; place pipelines, redirection, or other shell commands inside the script. Select Run at startup → Enabled to run it when Linux boots.
The equivalent commands are:
esp32-config system autostart configure /root/start-player.sh
esp32-config system autostart enable
esp32-config system autostart start
esp32-config system autostart status
To pass arguments, append them to configure, using normal shell quoting:
esp32-config system autostart configure /root/start-player.sh --volume 50
Changing the saved program or startup switch does not restart a running program. Use Stop program, then Start saved program to run the new selection immediately. You can also start the saved program once while startup is disabled. Disabling startup leaves the current instance running:
esp32-config system autostart disable
esp32-config system autostart stop
The program runs as root with no console input. Keep the program in the foreground so the launcher can track its exit and stop it. It runs once per start; it is not automatically restarted after exit. Applications on removable storage need that volume mounted before they start.
The page shows whether the program is running and its last exit status. You
can also read the result with esp32-config system autostart status. The
last-run result is temporary and cleared by reboot; the program selection and
arguments are persistent.
The launcher discards standard output and standard error. If your application needs logs, have its script direct them to an appropriate file and limit their size. For backing up the configuration, see Configuration.