Dietpi.txt Help

In the dietpi.txt file I have enabled auto setup, then in the next section, configured the software I want automatically installed. It is setup on WiFi and the dietpi-wifi.txt has been configured. However, when I log in via SSH, I basically have to go through the setup from scratch. Nothing is installed from the list. Each item on that list is on its own line and I confirmed with the GitHub list that the software ID’s are correct.

Am I missing something. I was under the impression that in doing this that you could just put in the SD card and let it rip. At least that was my hope anyway.

I can watch my router and see it connect on WiFi (I use DNS Reservation so it gets the same IP) so it does not appear the network connection is the issue. Is it not possible to do what I am envisioning?

Hi,

Many thanks for your messages. In theory its possibly to perform installation on first initial setup automatically. Wouldn’t be good if you can see your dietpi.txt file. Than we can have a look what’s missing.

Thanks Joulinar for your reply. Below is my dietpi.txt file:


# IMPORTANT:
# - This is intended for advanced users, unless you know what you are doing, do not edit this file. Please use the DietPi programs instead.
# - Do not remove uncommented lines, as the items are scraped by DietPi programs, on demand.

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Automation settings, applied on first boot of DietPi only, ONCE!
#------------------------------------------------------------------------------------------------------
##### Language/Regional Options #####
# Locale: eg: "en_GB.UTF-8" / "de_DE.UTF-8" | One entry and UTF-8 ONLY!
AUTO_SETUP_LOCALE=C.UTF-8

# Keyboard Layout eg: "gb" / "us" / "de" / "fr"
AUTO_SETUP_KEYBOARD_LAYOUT=us

# Timezone eg: "Europe/London" / "America/New_York" | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
AUTO_SETUP_TIMEZONE=America/New York

##### Networking Options #####
# Enable Ethernet or WiFi adapter: 1=enable | 0=disable
# - If both Ethernet and WiFi are enabled, WiFi will take priority and Ethernet will be disabled.
# - If using WiFi, please edit dietpi-wifi.txt to pre-enter credentials.
AUTO_SETUP_NET_ETHERNET_ENABLED=1
AUTO_SETUP_NET_WIFI_ENABLED=1

# Force ethernet speeds: 0=automatic speed | 10 = 10Mbit | 100 = 100Mbit etc
# - This is mainly aimed at Pine A64 which may have an HW issue that causes unstable 1Gbit link.
AUTO_SETUP_NET_ETH_FORCE_SPEED=0

# WiFi country code: 2 uppercase character value (e.g. GB US DE JP): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
AUTO_SETUP_NET_WIFI_COUNTRY_CODE=US

# Enter your Static Network details below, if applicable.
AUTO_SETUP_NET_USESTATIC=0
AUTO_SETUP_NET_STATIC_IP=192.168.0.100
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1
AUTO_SETUP_NET_STATIC_DNS=9.9.9.9

# Hostname
AUTO_SETUP_NET_HOSTNAME=RPI3-2

##### Misc Options #####
# Swapfile size to generate: 0=disable | 1=auto (2GB-RAM = size) | 2+=manual (MB)
AUTO_SETUP_SWAPFILE_SIZE=1
# Swapfile location
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap

# Disable HDMI output (and GPU/VPU where supported) for supported devices: RPi, Odroid C1, Odroid C2
AUTO_SETUP_HEADLESS=0

# Unmask (enable) systemd-logind service, which is masked by default on DietPi
AUTO_UNMASK_LOGIND=0

# Custom Script (pre-networking and pre-DietPi install)
# - Allows you to automatically execute a custom script before network is up on first boot.
# - Copy your script to /boot/Automation_Custom_PreScript.sh and it will be executed automatically.
# - Executed script log: /var/tmp/dietpi/logs/dietpi-automation_custom_prescript.log

# Custom Script (post-networking and post-DietPi install)
# - Allows you to automatically execute a custom script at the end of DietPi install.
# - Option 0 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically.
# - Option 1 = Host your script online, then use e.g. AUTO_SETUP_CUSTOM_SCRIPT_EXEC=https://myweb.com/myscript.sh and it will be downloaded and executed automatically.
# - Executed script log: /var/tmp/dietpi/logs/dietpi-automation_custom_script.log
AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0

##### Software Options #####
# SSH Server Selection: 0=none/custom | -1=Dropbear | -2=OpenSSH
AUTO_SETUP_SSH_SERVER_INDEX=-2

# File Server Selection: 0=none/custom | -1=ProFTP | -2=Samba
AUTO_SETUP_FILE_SERVER_INDEX=2

# Logging Mode Selection: 0=none/custom | -1=RAMlog 1h clear | -2=RAMlog 1h save clear | -3=rsyslog + logrotate
AUTO_SETUP_LOGGING_INDEX=-1
# RAMlog max tmpfs size (MB). 50MB should be fine for single use. 200MB+ for heavy webserver and access log etc.
AUTO_SETUP_RAMLOG_MAXSIZE=50

# Webserver Preference Selection: 0=Apache2 | -1=Nginx | -2=Lighttpd
# - This will be ignored if you have manually selected any webserver stack.
AUTO_SETUP_WEB_SERVER_INDEX=-2

# DietPi-Autostart: 0=Console | 7=Console autologin | 1=Kodi | 2=Desktop autologin | 16=Desktop | 3=RetroPie | 4=OpenTyrian | 5=DietPi-Cloudshell | 6=Amiberry fast boot | 8=Amiberry standard boot | 9=DDX-Rebirth | 10=CAVA Spectrum | 11=Chromium kiosk | 14=Custom autostart service
# - This will be effective on 2nd boot, after firstrun update and installs have been done.
# - Related software titles must be installed either on firstrun installs or via AUTO_SETUP_AUTOMATED=1 + AUTO_SETUP_INSTALL_SOFTWARE_ID (see below).
AUTO_SETUP_AUTOSTART_TARGET_INDEX=0
# Autologin user name
# - This user must exist before firstrun installs, otherwise it will be reverted to root.
# - Applies to all autostart options but: 0, 6, 14 and 16
AUTO_SETUP_AUTOSTART_LOGIN_USER=root

##### Non-interactive Firstrun Setup #####
# On first login, run update, initial setup and software installs without any user input
# - Setting this to "1" is required for below settings to take effect
# - It is HIGHLY recommended to also set CONFIG_BOOT_WAIT_FOR_NETWORK=2, to force infinite wait for network connection during boot and prevent connection timeout errors.
AUTO_SETUP_AUTOMATED=1

# Global Password to be applied for the system
# - Affects user "root" and "dietpi" login passwords, and, all software installed by dietpi-software, that requires a login password
# - WARN: Passwords with any of the following characters are not supported: \"$
AUTO_SETUP_GLOBAL_PASSWORD=dietpi

# Software to automatically install
# - List of available software IDs: https://github.com/MichaIng/DietPi/wiki/DietPi-Software-list
# - Add as many entries as you wish, one each line.
# - DietPi will automatically install all pre-reqs (e.g. ALSA/X11 for desktops etc)
# - E.g. the following (without the leading "#") will install the LXDE desktop automatically on first boot:
#AUTO_SETUP_INSTALL_SOFTWARE_ID=23
AUTO_SETUP_INSTALL_SOFTWARE_ID=9
AUTO_SETUP_INSTALL_SOFTWARE_ID=59
AUTO_SETUP_INSTALL_SOFTWARE_ID=72
AUTO_SETUP_INSTALL_SOFTWARE_ID=87
AUTO_SETUP_INSTALL_SOFTWARE_ID=96
AUTO_SETUP_INSTALL_SOFTWARE_ID=115
AUTO_SETUP_INSTALL_SOFTWARE_ID=122
AUTO_SETUP_INSTALL_SOFTWARE_ID=123
AUTO_SETUP_INSTALL_SOFTWARE_ID=130
AUTO_SETUP_INSTALL_SOFTWARE_ID=162

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Misc DietPi program settings
#------------------------------------------------------------------------------------------------------
# DietPi-Survey: 1=opt in | 0=opt out | -1=ask on first call
# - https://dietpi.com/forum/t/dietpi-survey-information/32/1
SURVEY_OPTED_IN=-0

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Config settings
#------------------------------------------------------------------------------------------------------
# CPU Governor: powersave | conservative | ondemand | performance
CONFIG_CPU_GOVERNOR=ondemand
# Ondemand Sampling Rate | Min value: 10000 microseconds (10ms)
CONFIG_CPU_ONDEMAND_SAMPLE_RATE=25000
# Ondemand Sampling Down Factor: Samling Rate * Down Factor / 1000 = ms (40 = 1000ms when sampling rate is 25000)
CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=40
# Throttle Up Percentage: Percentage of average CPU usage during samling rate at which CPU will be throttled up/down
CONFIG_CPU_USAGE_THROTTLE_UP=50

# CPU Frequency Limits: Disabled=disabled
# - Intel CPUs use a percentage value (%) from 0-100, eg: 55
# - All other devices must use a specific MHz value, eg: 1600
# - Has no effect on RPi, please set "arm_freq" and "arm_freq_min" in config.txt instead.
CONFIG_CPU_MAX_FREQ=Disabled
CONFIG_CPU_MIN_FREQ=Disabled

# Disable Intel-based turbo/boost stepping. This flag should not be required, setting <100% MAX frequency should disable Turbo on Intel CPUs.
CONFIG_CPU_DISABLE_TURBO=0

# System-wide proxy settings
# - Do not modify, you must use dietpi-config > "Network Options: Adapters" to apply
CONFIG_PROXY_ADDRESS=MyProxyServer.com
CONFIG_PROXY_PORT=8080
CONFIG_PROXY_USERNAME=
CONFIG_PROXY_PASSWORD=

# Delay boot until network is established: 0=disabled | 1=10 second wait max (default) | 2=infinite wait
CONFIG_BOOT_WAIT_FOR_NETWORK=2

# Connection timeout in seconds, before G_CHECK_URL assumes the URL is dead. Increase if you have a "flaky" connection or slow DNS resolver.
# - Set this to "0" to allow unlimited time, however this is not recommended to avoid unlimited hanging background scripts, e.g. daily DietPi update check.
# - A negative or non-integer value will result in the default of 10 seconds.
CONFIG_G_CHECK_URL_TIMEOUT=10
# Connection attempts with above timeout each, before G_CHECK_URL is giving up and prompts an error.
# - Any value below "1" or a non-integer value will result in the default of 2 attempts.
CONFIG_G_CHECK_URL_ATTEMPTS=2
# General connection and DNS testing
# - IP to ping when checking network connectivity. Default: 9.9.9.9 (Quad9 DNS IP)
CONFIG_CHECK_CONNECTION_IP=9.9.9.9
# - Domain to ping when checking DNS resolver. Default: dns9.quad9.net (Quad9 DNS domain)
CONFIG_CHECK_DNS_DOMAIN=dns9.quad9.net

# DietPi checks for updates: Allows DietPi to check for updates on a daily basis and boot using a less 1 KiB file download.
CONFIG_CHECK_DIETPI_UPDATES=1

# Network time sync: 0=disabled | 1=boot only | 2=boot + daily | 3=boot + hourly | 4=Daemon + Drift
CONFIG_NTP_MODE=2

# Serial Console: Set to 0 if you do not require serial console.
CONFIG_SERIAL_CONSOLE_ENABLE=1

# Soundcard
CONFIG_SOUNDCARD=none

# LCD Panel addon
# - Do not modify, you must use dietpi-config to configure/set options
CONFIG_LCDPANEL=none

# IPv6
CONFIG_ENABLE_IPV6=0

# Prefer IPv4 with APT and wget, NB: This has no effect if IPv6 is disabled anyway!
CONFIG_PREFER_IPV4=1

# APT mirrors which are applied to /etc/apt/sources.list | Values here will also be applied during 1st run setup
# - Raspbian: https://www.raspbian.org/RaspbianMirrors
CONFIG_APT_RASPBIAN_MIRROR=http://raspbian.raspberrypi.org/raspbian/
# - Debian: https://www.debian.org/mirror/official#list
CONFIG_APT_DEBIAN_MIRROR=https://deb.debian.org/debian/

# NTP mirror, applied to /etc/ntp.conf
# - For a full list, please see: https://www.ntppool.org/zone/@
# - Please remove the initial integer and full stop from the value (removing "0."), eg: debian.pool.ntp.org
CONFIG_NTP_MIRROR=debian.pool.ntp.org

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Software settings
#------------------------------------------------------------------------------------------------------
# Enter your EmonCMS.org write API key here. It will be applied automatically during EmonPi/Hub install.
# - Eg: SOFTWARE_EMONHUB_APIKEY=b4dfmk2o203mmxx93a
SOFTWARE_EMONHUB_APIKEY=

# VNC Server
SOFTWARE_VNCSERVER_WIDTH=1280
SOFTWARE_VNCSERVER_HEIGHT=720
SOFTWARE_VNCSERVER_DEPTH=16
SOFTWARE_VNCSERVER_DISPLAY_INDEX=1
SOFTWARE_VNCSERVER_SHARE_DESKTOP=0

# ownCloud/Nextcloud
# - Optional username for admin account, the default is 'admin', applied during install
SOFTWARE_OWNCLOUD_NEXTCLOUD_USERNAME=admin
# - Optional data directory, default is "/mnt/dietpi_userdata/owncloud_data" respectively "/mnt/dietpi_userdata/nextcloud_data", applied during install
#	NB: This option is for advanced users. For full compatibility, please keep this options defaults, and, use dietpi-drive_manager to move the DietPi user data location.
SOFTWARE_OWNCLOUD_DATADIR=/mnt/dietpi_userdata/owncloud_data
SOFTWARE_NEXTCLOUD_DATADIR=/mnt/dietpi_userdata/nextcloud_data

# WiFi Hotspot
SOFTWARE_WIFI_HOTSPOT_SSID=DietPi-HotSpot
# - Key requires a minimum of 8 characters
SOFTWARE_WIFI_HOTSPOT_KEY=dietpihotspot
SOFTWARE_WIFI_HOTSPOT_CHANNEL=3

# X.org
# - DPI 96(default) 120(+25%) 144(+50%) 168(+75%) 192(+100%)
SOFTWARE_XORG_DPI=96

# Chromium
SOFTWARE_CHROMIUM_RES_X=1280
SOFTWARE_CHROMIUM_RES_Y=720
SOFTWARE_CHROMIUM_AUTOSTART_URL=https://dietpi.com

# Home Assistant
# - Optional Python build dependencies and modules, possibly required for certain HA components
#	Space separated list (no quotation!), will be installed together with Home Assistant automatically, if present
SOFTWARE_HOMEASSISTANT_APT_DEPS=
#	Add Python modules with version string at best, e.g.: firstModule==1.2.3 secondModule==4.5.6
SOFTWARE_HOMEASSISTANT_PIP_DEPS=

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Dev settings
#------------------------------------------------------------------------------------------------------
DEV_GITBRANCH=master
DEV_GITOWNER=MichaIng

#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Settings, automatically added by dietpi-update
#------------------------------------------------------------------------------------------------------

After hooking up a monitor to watch the install I saw a couple things that were issues.

  1. It flagged the docker install stating that there was a mismatch between the loaded kernel and installed one, but based on the output, it appeared to have deselected it

  2. There was an error with the host-name, the output stating it was invalid. I cant imagine why unless it is some sort of conflict with the DNS reservation where I have to have unique names for each entry so I typically RPi3-ETH and RPi3-WiFi so I can tell which is connected. So I assume its possible that giving a different host-name in the dietpi.txt file causes an issue.

  3. During the installation, it apparently lost its internet connection and shutdown the install. At least that was what was flagged in the dietpi-firstrun-setup.log. Though I was watching the connection and it was still up in the router and I was running a ping to the WiFi interface.

So I re-imaged the SD card, again. But it appears in the configuration of dietpi.txt, if you have both WiFi and Ethernet enabled, it still favors the WiFi. I am not sure why this is, but it means that if the WiFi is truly dropping out, even if I have the Ethernet cable connected, it still halts the install. I am not that versed in the RPi nor DietPi for that matter but I can’t quite grasp why it has to be one or the other and one cannot serve as a fallback to the other.

Unless I am missing something, it would seem that I have to choose Ethernet connectivity, but that leads me to the problem of how do I, then, set up WiFi after the initial install has completed.

I can continue the install after it fails (presumably due to the WiFi connection) but that kind of defeats the purpose of trying to automate the setup. I guess I can keep trying and see if I can ‘stumble’ onto anything but it’s not looking good at this point.

The WiFi is not the issue. I re-imaged the SD card again and this time changed the configuration so it would only use the Ethernet and it still failed and the last lines in the dietpi-firstrun-setup.log again state ERROR: No Internet Connection.

I’m left with a bunch of questions and no meaningful way to answer them. :thinking:

Hi,

yes that’s always good to get a screen connected. :slight_smile:

Well the issue with the kernel and docker could be due to the kernel / software update that is done at the first setup. I guess this one should be related https://github.com/MichaIng/DietPi/issues/3425

Well it’s not a good idea to have Ethernet as well as WiFi connected same time. Therefore it would be recommended to use just one or the other. If you use Ethernet for the first setup, WiFi can be configured later on using dietpi-config. Quite a simple process :wink:

If you like to configure WiFi as fallback for Ethernet, you might have a look to following tutorial https://dietpi.com/forum/t/using-ethernet-wlan-interfaces-not-at-the-same-time-in-v6-30/4251/1

EDIT: You might run into some timeouts for checking the internet connection. Do you see on screen what check is failing?

Thank you Joulinar for all that information. I will certainly check it out.

I do not see what check is failing. I see some sort of red colored screen for just a very brief moment but not long enough to read anything and then it pops up with the message about something failed and to check the log.

hmm you could alter dietpi.txt and set

CONFIG_G_CHECK_URL_TIMEOUT=15
CONFIG_G_CHECK_URL_ATTEMPTS=5

As well you can check if it make a difference if you adjust the internet check from Quad9 to something else like Gopple.DNS

CONFIG_CHECK_CONNECTION_IP=8.8.8.8
CONFIG_CHECK_DNS_DOMAIN=dns.google

in worst case set the connection check to something local in your network or localhost.

I tried, again. This time I just flashed the SD card with DietPi and didn’t change anything. Just inserted the card in the Pi and set it off and decided to just try installing everything through selecting it from the software list. It failed again. But this time I saw a little more when it did fail. One of the packages I was trying to install was NodeRed. When it got to that I saw it was trying to install the javascrip runtimes and about the instant it hit that point, it failed.

So I am going to try and take that out of the list I had in the dietpi.txt list I was trying earlier and see if I get any further.

Okay, I give up. I took NodeRed out of the list and it still failed, and again I saw it was trying to install some javascript runtime. I don’t know what else to do. I so wanted to use DietPi.

yes currently there is an issue on the Node.js installer. As this is out of DietPi scope, we will implement our own fork with release 6.32

https://github.com/MichaIng/DietPi/issues/3671

Well that puts a cramp in things as I kind of need Node.js. Maybe I can find a workaround.

well you could wait until 6.32 was released if you need automated software setup. Or you are going to run the initial installation without automated software setup. Once completed, just install your software from dietpi-software catalogue as usual. This way you should get a hotfix via MOTD and the node.js installed should be switched to our own fork already.

Yeah, I will just do a manual run and get it started that way. Once the update comes out I can try the automated setup again. I have another Pi available and I can use that to test out the automated install without disturbing the one I am using now.

pls ensure to have MOTD activated (default). There you should get the hotfix with. If you still get errors on node.js install, just follow this instruction to switch to our fork for the node-install.sh

https://github.com/MichaIng/DietPi/issues/3650#issuecomment-653955722

Actually it is easy to fix manually. Edit dietpi/dietpi-software on the first (FAT) partition and replace the only occurance of “taaem” with “MichaIng”.

Thank you SO much for all of your time and help Joulinar. I have one Pi set up now, but did so manually. Now knowing the issues with NodeRED and Node.js, I am trying another swing at the automated install with those removed to see how it goes. I didn’t have any issues manually installing all the other packaged, here’s to them working equally well in the automated setup.

Well crap, LOL. If this automated run goes well, I will start over again and try that to see how it goes.

MichaIng
Would dietpi-software not overwritten on first boot while updating DietPi to latest version?

After removing NodeRED and Node.js from the non-interactive install, everything went about as perfect as you could expect. I can get by without them for now and either wait for the next update of DietPi or modify the dietpi-software as MichaIng suggested.

I do have one other question. In the non-interactive install, I have Mosquitto installed, but I also need the client, which I don’t see in the available software list. I see, however, where you can run a custom script post-networking and post-install.

Do I just create a script and put in it

sudo apt install mosquitto-clients

or should there be something else in there?