#!/bin/bash
{
	#////////////////////////////////////
	# DietPi
	#
	#////////////////////////////////////
	# Created by Daniel Knight / daniel.knight@dietpi.com / dietpi.com
	#////////////////////////////////////
	#
	# Info:
	# - Generates /DietPi/dietpi/.hw_model
	# - Called from /DietPi/dietpi/boot
	#
	# In DietPi-Software:
	#	MAX_G_HW_MODEL=64		#This needs to match highest G_HW_MODEL value in dietpi-obtain_hw_model
	#	MAX_G_HW_ARCH=10		#This needs to match highest G_HW_ARCH value in dietpi-obtain_hw_model
	#
	# - Line1 -
	# G_HW_MODEL 71 Beagle Bone Black
	# G_HW_MODEL 70 Sparky SBC
	# G_HW_MODEL 66 NanoPi M1 Plus
	# G_HW_MODEL 65 NanoPi NEO 2
	# G_HW_MODEL 64 NanoPi NEO Air
	# G_HW_MODEL 63 NanoPi M1/T1
	# G_HW_MODEL 62 NanoPi M3/T3
	# G_HW_MODEL 61 NanoPi M2/T2
	# G_HW_MODEL 60 NanoPi Neo
	# G_HW_MODEL 52 Asus Tinker Board
	# G_HW_MODEL 51 BananaPi Pro (Lemaker)
	# G_HW_MODEL 50 BananaPi M2+ (sinovoip)
	# G_HW_MODEL 43 Rock64
	# G_HW_MODEL 40 Pine A64
	# G_HW_MODEL 38 OrangePi PC 2
	# G_HW_MODEL 37 OrangePi Prime
	# G_HW_MODEL 36 OrangePi Win
	# G_HW_MODEL 35 OrangePi Zero Plus 2 (H3/H5)
	# G_HW_MODEL 34 OrangePi Plus
	# G_HW_MODEL 33 OrangePi Lite
	# G_HW_MODEL 32 OrangePi Zero (H2+)
	# G_HW_MODEL 31 OrangePi One
	# G_HW_MODEL 30 OrangePi PC
	# G_HW_MODEL 22 Generic device (eg: unknown to DietPi)
	# G_HW_MODEL 21 x86_64 native (PC)
	# G_HW_MODEL 20 VM x64 (VMware VirtualBox)
	# G_HW_MODEL 13 oDroid U3
	# G_HW_MODEL 12 oDroid C2
	# G_HW_MODEL 11 oDroid XU3/XU4/HC1
	# G_HW_MODEL 10 oDroid C1
	# G_HW_MODEL 3 Raspberry Pi 3
	# G_HW_MODEL 2 Raspberry Pi 2
	# G_HW_MODEL 1 Raspberry Pi 1/Zero (512mb)
	# G_HW_MODEL 0 Raspberry Pi 1 (256mb)
	# - Line2 -
	# G_HW_MODEL_DESCRIPTION
	# - Line3 -
	# G_DISTRO 0 unknown
	# G_DISTRO 1 Debian Wheezy (No longer supported, http://dietpi.com/phpbb/viewtopic.php?f=9&t=432#p1898)
	# G_DISTRO 2 Ubuntu 14.04 (No longer supported, left in for user message during update)
	# G_DISTRO 3 Jessie
	# G_DISTRO 4 Stretch, pulled a muscle!
	# G_DISTRO 5 Buster
	# - Line4 -
	# RootFS device path (eg: /dev/mmc01)
	# - Line5 -
	# UUID
	# - Line 6 -
	# G_HW_ARCH 10 x86_64 (VM)
	# G_HW_ARCH 3 armv8/arm64
	# G_HW_ARCH 2 armv7
	# G_HW_ARCH 1 armv6
	# G_HW_ARCH 0 unknown
	# - Line 7 -
	# G_HW_ARCH_DESCRIPTION
	# - Line 8 -
	# IMAGE_ADDITIONAL_CREDITS (eg: ARMbian, Meveric)
	# - Line 9 - Group CPU's
	# G_HW_CPUID 0 Not set
	# G_HW_CPUID 1 H3
	# G_HW_CPUID 2 H5
	# - Line 10 - Onboard WiFi/BT Index
	# HW_ONBOARD_WIFI 0 Not set
	# HW_ONBOARD_WIFI 1 RPi3/ZeroW (BCM43438)
	# - Line 11 - (RPi only)
	# HW_REVISION_CODE
	# - Line 12 - (RPi only)
	# HW_RELEASE_DATE
	# - Line 13 - (RPi only)
	# HW_PCB_REVISION_CODE
	# - Line 14 - (RPi only)
	# HW_MEMORY_SIZE
	# - Line 15 - (RPi only)
	# HW_MANUFACTURER_NAME
	#////////////////////////////////////

	#Import DietPi-Globals ---------------------------------------------------------------
	#. /DietPi/dietpi/func/dietpi-globals
	#Import DietPi-Globals ---------------------------------------------------------------

	#Force en_GB Locale for whole script. Prevents incorrect parsing with non-english locales.
	LANG=en_GB.UTF-8

	#Ensure we are in users home dir: https://github.com/Fourdee/DietPi/issues/905#issuecomment-298223705
	cd "$HOME"

	#/////////////////////////////////////////////////////////////////////////////////////
	#Obtain Hardware Model index
	#/////////////////////////////////////////////////////////////////////////////////////

	G_HW_MODEL=0
	G_HW_MODEL_DESCRIPTION='Unknown Device'
	FP_G_HW_MODEL_INDENTIFIER='/etc/.dietpi_hw_model_identifier'
	G_DISTRO=0
	HW_UUID=0
	G_HW_ARCH=0
	G_HW_ARCH_DESCRIPTION='unknown'
	IMAGE_ADDITIONAL_CREDITS=''
	G_HW_CPUID=0
	HW_ONBOARD_WIFI=0

	ROOTFS_DEVICE_PATH=$(df | grep -m1 '/$' | awk '{print $1}')

	#	RPi Extras
	HW_REVISION_CODE=0
	HW_RELEASE_DATE='Unknown'
	HW_PCB_REVISION_CODE='Unknown'
	HW_MEMORY_SIZE=0
	HW_MANUFACTURER_NAME='Unknown'

	RPi_BoardInfo(){

		#-----------------------------------------------------------------------------------
		#Obtain device info by revision number
		# *" because 10000002 then it indicates that your Raspberry Pi has been over-volted
		HW_REVISION_CODE=$(cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}')

		G_HW_MODEL_DESCRIPTION='RPi '

		if [[ "$HW_REVISION_CODE" = *"Beta" ]]; then

			HW_RELEASE_DATE='Q1 2012'
			G_HW_MODEL_DESCRIPTION+='Beta'
			HW_PCB_REVISION_CODE='Unknown'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Unknown'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0002" ]]; then

			HW_RELEASE_DATE='Q1 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Unknown'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0003" ]]; then

			HW_RELEASE_DATE='Q3 2012'
			G_HW_MODEL_DESCRIPTION+='B (ECN0001)'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Unknown'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0004" ]]; then

			HW_RELEASE_DATE='Q3 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0005" ]]; then

			HW_RELEASE_DATE='Q4 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Qisda'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0006" ]]; then

			HW_RELEASE_DATE='Q4 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Egoman'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0007" ]]; then

			HW_RELEASE_DATE='Q1 2013'
			G_HW_MODEL_DESCRIPTION+='A'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Egoman'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0008" ]]; then

			HW_RELEASE_DATE='Q1 2013'
			G_HW_MODEL_DESCRIPTION+='A'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0009" ]]; then

			HW_RELEASE_DATE='Q1 2013'
			G_HW_MODEL_DESCRIPTION+='A'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Qisda'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"000d" ]]; then

			HW_RELEASE_DATE='Q4 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Egoman'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"000e" ]]; then

			HW_RELEASE_DATE='Q4 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"000f" ]]; then

			HW_RELEASE_DATE='Q4 2012'
			G_HW_MODEL_DESCRIPTION+='B'
			HW_PCB_REVISION_CODE='2.0'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Qisda'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"0010" ]]; then

			HW_RELEASE_DATE='Q3 2014'
			G_HW_MODEL_DESCRIPTION+='B+'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"0011" ]]; then

			HW_RELEASE_DATE='Q2 2014'
			G_HW_MODEL_DESCRIPTION+='CM'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"0012" ]]; then

			HW_RELEASE_DATE='Q4 2014'
			G_HW_MODEL_DESCRIPTION+='A+'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=256
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=0

		elif [[ "$HW_REVISION_CODE" = *"0013" ]]; then

			HW_RELEASE_DATE='Q1 2015'
			G_HW_MODEL_DESCRIPTION+='B+'
			HW_PCB_REVISION_CODE='1.2'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Unknown'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"a01041" ]]; then

			HW_RELEASE_DATE='Q1 2015'
			G_HW_MODEL_DESCRIPTION+='2 Model B'
			HW_PCB_REVISION_CODE='1.1'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=2

		elif [[ "$HW_REVISION_CODE" = *"a020a0" ]]; then

			HW_RELEASE_DATE='Q1 2017'
			G_HW_MODEL_DESCRIPTION+='CM 3'
			HW_PCB_REVISION_CODE='1.0'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=3
			HW_ONBOARD_WIFI=1

		elif [[ "$HW_REVISION_CODE" = *"a21041" ]]; then

			HW_RELEASE_DATE='Q1 2015'
			G_HW_MODEL_DESCRIPTION+='2 Model B'
			HW_PCB_REVISION_CODE='1.1'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Embest, China'
			G_HW_MODEL=2

		elif [[ "$HW_REVISION_CODE" = *"a02082" ]]; then

			HW_RELEASE_DATE='Q1 2016'
			G_HW_MODEL_DESCRIPTION+='3 Model B'
			HW_PCB_REVISION_CODE='1.2'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=3
			HW_ONBOARD_WIFI=1

		elif [[ "$HW_REVISION_CODE" = *"a22082" ]]; then

			HW_RELEASE_DATE='Q1 2016'
			G_HW_MODEL_DESCRIPTION+='3 Model B'
			HW_PCB_REVISION_CODE='1.2'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Embest, China'
			G_HW_MODEL=3
			HW_ONBOARD_WIFI=1

		elif [[ "$HW_REVISION_CODE" = *"a32082" ]]; then

			HW_RELEASE_DATE='Q4 2016'
			G_HW_MODEL_DESCRIPTION+='3 Model B'
			HW_PCB_REVISION_CODE='1.2'
			HW_MEMORY_SIZE=1024
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=3
			HW_ONBOARD_WIFI=1

		elif [[ "$HW_REVISION_CODE" = *"900092" ]]; then

			HW_RELEASE_DATE='Q4 2015'
			G_HW_MODEL_DESCRIPTION+='Zero'
			HW_PCB_REVISION_CODE='1.2'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"900093" ]]; then

			HW_RELEASE_DATE='Q2 2016'
			G_HW_MODEL_DESCRIPTION+='Zero'
			HW_PCB_REVISION_CODE='1.3'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1

		elif [[ "$HW_REVISION_CODE" = *"9000c1" ]]; then

			HW_RELEASE_DATE='Q1 2017'
			G_HW_MODEL_DESCRIPTION+='Zero W'
			HW_PCB_REVISION_CODE='1.1'
			HW_MEMORY_SIZE=512
			HW_MANUFACTURER_NAME='Sony'
			G_HW_MODEL=1
			HW_ONBOARD_WIFI=1

		fi

	}

	Obtain_HW_Info(){

		#Systems that use /etc/.dietpi_hw_model_identifier for G_HW_MODEL
		if [ -f "$FP_G_HW_MODEL_INDENTIFIER" ]; then

			G_HW_MODEL=$(sed -n 1p "$FP_G_HW_MODEL_INDENTIFIER")

			#Beagle Bone Black
			if (( $G_HW_MODEL == 71 )); then

				G_HW_MODEL_DESCRIPTION='BBB'

			#Sparky SBC
			elif (( $G_HW_MODEL == 70 )); then

				G_HW_MODEL_DESCRIPTION='Sparky SBC'

			#NanoPi M1 Plus
			elif (( $G_HW_MODEL == 66 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi M1 Plus'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#NanoPi NEO 2
			elif (( $G_HW_MODEL == 65 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi NEO 2'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=2

			#NanoPi NEO Air
			elif (( $G_HW_MODEL == 64 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi NEO Air'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#NanoPi M1
			elif (( $G_HW_MODEL == 63 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi M1/T1'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#NanoPi M3
			elif (( $G_HW_MODEL == 62 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi M3/T3'

			#NanoPi M2
			elif (( $G_HW_MODEL == 61 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi M2/T2'

			#NanoPi Neo
			elif (( $G_HW_MODEL == 60 )); then

				G_HW_MODEL_DESCRIPTION='NanoPi Neo'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#Asus Tinker Board
			elif (( $G_HW_MODEL == 52 )); then

				G_HW_MODEL_DESCRIPTION='Asus Tinker Board'

			#BananaPi Pro
			elif (( $G_HW_MODEL == 51 )); then

				G_HW_MODEL_DESCRIPTION='BananaPi Pro'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'

				#BananaPi M2+
			elif (( $G_HW_MODEL == 50 )); then

				G_HW_MODEL_DESCRIPTION='BananaPi M2+'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#Rock64
			elif (( $G_HW_MODEL == 43 )); then

				G_HW_MODEL_DESCRIPTION='Rock64'
				IMAGE_ADDITIONAL_CREDITS='Longsleep, Ayufan'

			#PineA64
			elif (( $G_HW_MODEL == 40 )); then

				IMAGE_ADDITIONAL_CREDITS='Longsleep, Rhkean'
				G_HW_MODEL_DESCRIPTION='Pine A64'

			#OrangePi PC 2
			elif (( $G_HW_MODEL == 38 )); then

				G_HW_MODEL_DESCRIPTION='OPi PC2'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=2

			#OrangePi Prime
			elif (( $G_HW_MODEL == 37 )); then

				G_HW_MODEL_DESCRIPTION='OPi Prime'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=2

			#OrangePi Win
			elif (( $G_HW_MODEL == 36 )); then

				G_HW_MODEL_DESCRIPTION='OPi Win'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'

			#OrangePi Zero Plus 2 (h3/h5)
			elif (( $G_HW_MODEL == 35 )); then

				G_HW_MODEL_DESCRIPTION='OPi Zero 2 Plus'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#OrangePi Plus
			elif (( $G_HW_MODEL == 34 )); then

				G_HW_MODEL_DESCRIPTION='OrangePi Plus'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#OrangePi Lite
			elif (( $G_HW_MODEL == 33 )); then

				G_HW_MODEL_DESCRIPTION='OrangePi Lite'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#OrangePi Zero
			elif (( $G_HW_MODEL == 32 )); then

				G_HW_MODEL_DESCRIPTION='OrangePi Zero'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				#G_HW_CPUID=1 #H2+

			#OrangePi One
			elif (( $G_HW_MODEL == 31 )); then

				G_HW_MODEL_DESCRIPTION='OrangePi One'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#OrangePi Pc
			elif (( $G_HW_MODEL == 30 )); then

				G_HW_MODEL_DESCRIPTION='OrangePi PC'
				IMAGE_ADDITIONAL_CREDITS='ARMbian'
				G_HW_CPUID=1

			#Generic device (eg: unknown to DietPi)
			elif (( $G_HW_MODEL == 22 )); then

				G_HW_MODEL_DESCRIPTION='Generic Device'
				IMAGE_ADDITIONAL_CREDITS='You!'

			#x86_64 native PC
			elif (( $G_HW_MODEL == 21 )); then

				G_HW_MODEL_DESCRIPTION='Native PC'

			#VM
			elif (( $G_HW_MODEL == 20 )); then

				G_HW_MODEL_DESCRIPTION='Virtual Machine'

			#oDroid U3
			elif (( $G_HW_MODEL == 13 )); then

				G_HW_MODEL_DESCRIPTION='Odroid U3'
				#IMAGE_ADDITIONAL_CREDITS='Meveric'

			#Odroid C2
			elif (( $G_HW_MODEL == 12 )); then

				G_HW_MODEL_DESCRIPTION='Odroid C2'
				IMAGE_ADDITIONAL_CREDITS='Meveric'

			#Odroid XU3/XU4/HC1
			elif (( $G_HW_MODEL == 11 )); then

				G_HW_MODEL_DESCRIPTION='Odroid XU3/4'
				IMAGE_ADDITIONAL_CREDITS='Meveric'

			#Odroid C1
			elif (( $G_HW_MODEL == 10 )); then

				G_HW_MODEL_DESCRIPTION='Odroid C1'
				IMAGE_ADDITIONAL_CREDITS='Meveric'

			fi

		#RPi
		elif (( $(grep -ci -m1 '^ID=raspbian' /etc/os-release) )); then

			#Grab hardware description from rpi_boardinfo
			RPi_BoardInfo

		fi

		#Get Distro Index
		if (( $( grep -ci -m1 'jessie' /etc/os-release) )); then

			G_DISTRO=3

		elif (( $( grep -ci -m1 'stretch' /etc/os-release) )); then

			G_DISTRO=4

		elif (( $( grep -ci -m1 'buster' /etc/os-release) )); then

			G_DISTRO=5

		fi

		#Generate UUID if it does not exist
		if [ ! -f /DietPi/dietpi/.hw_model ]; then

			HW_UUID=$(cat /proc/sys/kernel/random/uuid)

		else

			HW_UUID=$(sed -n 5p /DietPi/dietpi/.hw_model)

		fi

		#Obtain hardware cpu architecture
		G_HW_ARCH_DESCRIPTION=$(uname -m)
		if [ "$G_HW_ARCH_DESCRIPTION" = "armv6l" ]; then

			G_HW_ARCH=1

		elif [ "$G_HW_ARCH_DESCRIPTION" = "armv7l" ]; then

			G_HW_ARCH=2

		elif [ "$G_HW_ARCH_DESCRIPTION" = "aarch64" ]; then

			G_HW_ARCH=3

		elif [ "$G_HW_ARCH_DESCRIPTION" = "x86_64" ]; then

			G_HW_ARCH=10

		# - Unknown arch for DietPi, inform user by adding 'unknown'.
		else

			G_HW_ARCH_DESCRIPTION+=' (Unknown)'

		fi

		# - Add HW arch to HW desc
		G_HW_MODEL_DESCRIPTION+=" ($G_HW_ARCH_DESCRIPTION)"

		#Save data
		cat << _EOF_ > /DietPi/dietpi/.hw_model
$G_HW_MODEL
$G_HW_MODEL_DESCRIPTION
$G_DISTRO
$ROOTFS_DEVICE_PATH
$HW_UUID
$G_HW_ARCH
$G_HW_ARCH_DESCRIPTION
$IMAGE_ADDITIONAL_CREDITS
$G_HW_CPUID
$HW_ONBOARD_WIFI
$HW_REVISION_CODE
$HW_RELEASE_DATE
$HW_PCB_REVISION_CODE
$HW_MEMORY_SIZE
$HW_MANUFACTURER_NAME
_EOF_

	}

	#-----------------------------------------------------------------------------------
	#Main
	Obtain_HW_Info
	#-----------------------------------------------------------------------------------
	exit 0
	#-----------------------------------------------------------------------------------

}