#!/bin/bash do { #//////////////////////////////////// # 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. setglobal 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 #///////////////////////////////////////////////////////////////////////////////////// setglobal G_HW_MODEL = '0' setglobal G_HW_MODEL_DESCRIPTION = ''Unknown Device'' setglobal FP_G_HW_MODEL_INDENTIFIER = ''/etc/.dietpi_hw_model_identifier'' setglobal G_DISTRO = '0' setglobal HW_UUID = '0' setglobal G_HW_ARCH = '0' setglobal G_HW_ARCH_DESCRIPTION = ''unknown'' setglobal IMAGE_ADDITIONAL_CREDITS = '''' setglobal G_HW_CPUID = '0' setglobal HW_ONBOARD_WIFI = '0' setglobal ROOTFS_DEVICE_PATH = $[df | grep -m1 '/$' | awk '{print $1}] # RPi Extras setglobal HW_REVISION_CODE = '0' setglobal HW_RELEASE_DATE = ''Unknown'' setglobal HW_PCB_REVISION_CODE = ''Unknown'' setglobal HW_MEMORY_SIZE = '0' setglobal HW_MANUFACTURER_NAME = ''Unknown'' proc RPi_BoardInfo{ #----------------------------------------------------------------------------------- #Obtain device info by revision number # *" because 10000002 then it indicates that your Raspberry Pi has been over-volted setglobal HW_REVISION_CODE = $[cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}] setglobal G_HW_MODEL_DESCRIPTION = ''RPi '' if [[ "$HW_REVISION_CODE" = *"Beta" ]] { setglobal HW_RELEASE_DATE = ''Q1 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''Beta'' setglobal HW_PCB_REVISION_CODE = ''Unknown'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Unknown'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0002" ]] { setglobal HW_RELEASE_DATE = ''Q1 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Unknown'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0003" ]] { setglobal HW_RELEASE_DATE = ''Q3 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B (ECN0001)'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Unknown'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0004" ]] { setglobal HW_RELEASE_DATE = ''Q3 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0005" ]] { setglobal HW_RELEASE_DATE = ''Q4 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Qisda'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0006" ]] { setglobal HW_RELEASE_DATE = ''Q4 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Egoman'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0007" ]] { setglobal HW_RELEASE_DATE = ''Q1 2013'' setglobal G_HW_MODEL_DESCRIPTION = ''A'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Egoman'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0008" ]] { setglobal HW_RELEASE_DATE = ''Q1 2013'' setglobal G_HW_MODEL_DESCRIPTION = ''A'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0009" ]] { setglobal HW_RELEASE_DATE = ''Q1 2013'' setglobal G_HW_MODEL_DESCRIPTION = ''A'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Qisda'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"000d" ]] { setglobal HW_RELEASE_DATE = ''Q4 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Egoman'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"000e" ]] { setglobal HW_RELEASE_DATE = ''Q4 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"000f" ]] { setglobal HW_RELEASE_DATE = ''Q4 2012'' setglobal G_HW_MODEL_DESCRIPTION = ''B'' setglobal HW_PCB_REVISION_CODE = ''2.0'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Qisda'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"0010" ]] { setglobal HW_RELEASE_DATE = ''Q3 2014'' setglobal G_HW_MODEL_DESCRIPTION = ''B+'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"0011" ]] { setglobal HW_RELEASE_DATE = ''Q2 2014'' setglobal G_HW_MODEL_DESCRIPTION = ''CM'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"0012" ]] { setglobal HW_RELEASE_DATE = ''Q4 2014'' setglobal G_HW_MODEL_DESCRIPTION = ''A+'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '256' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '0' } elif [[ "$HW_REVISION_CODE" = *"0013" ]] { setglobal HW_RELEASE_DATE = ''Q1 2015'' setglobal G_HW_MODEL_DESCRIPTION = ''B+'' setglobal HW_PCB_REVISION_CODE = ''1.2'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Unknown'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"a01041" ]] { setglobal HW_RELEASE_DATE = ''Q1 2015'' setglobal G_HW_MODEL_DESCRIPTION = ''2 Model B'' setglobal HW_PCB_REVISION_CODE = ''1.1'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '2' } elif [[ "$HW_REVISION_CODE" = *"a020a0" ]] { setglobal HW_RELEASE_DATE = ''Q1 2017'' setglobal G_HW_MODEL_DESCRIPTION = ''CM 3'' setglobal HW_PCB_REVISION_CODE = ''1.0'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '3' setglobal HW_ONBOARD_WIFI = '1' } elif [[ "$HW_REVISION_CODE" = *"a21041" ]] { setglobal HW_RELEASE_DATE = ''Q1 2015'' setglobal G_HW_MODEL_DESCRIPTION = ''2 Model B'' setglobal HW_PCB_REVISION_CODE = ''1.1'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Embest, China'' setglobal G_HW_MODEL = '2' } elif [[ "$HW_REVISION_CODE" = *"a02082" ]] { setglobal HW_RELEASE_DATE = ''Q1 2016'' setglobal G_HW_MODEL_DESCRIPTION = ''3 Model B'' setglobal HW_PCB_REVISION_CODE = ''1.2'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '3' setglobal HW_ONBOARD_WIFI = '1' } elif [[ "$HW_REVISION_CODE" = *"a22082" ]] { setglobal HW_RELEASE_DATE = ''Q1 2016'' setglobal G_HW_MODEL_DESCRIPTION = ''3 Model B'' setglobal HW_PCB_REVISION_CODE = ''1.2'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Embest, China'' setglobal G_HW_MODEL = '3' setglobal HW_ONBOARD_WIFI = '1' } elif [[ "$HW_REVISION_CODE" = *"a32082" ]] { setglobal HW_RELEASE_DATE = ''Q4 2016'' setglobal G_HW_MODEL_DESCRIPTION = ''3 Model B'' setglobal HW_PCB_REVISION_CODE = ''1.2'' setglobal HW_MEMORY_SIZE = '1024' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '3' setglobal HW_ONBOARD_WIFI = '1' } elif [[ "$HW_REVISION_CODE" = *"900092" ]] { setglobal HW_RELEASE_DATE = ''Q4 2015'' setglobal G_HW_MODEL_DESCRIPTION = ''Zero'' setglobal HW_PCB_REVISION_CODE = ''1.2'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"900093" ]] { setglobal HW_RELEASE_DATE = ''Q2 2016'' setglobal G_HW_MODEL_DESCRIPTION = ''Zero'' setglobal HW_PCB_REVISION_CODE = ''1.3'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' } elif [[ "$HW_REVISION_CODE" = *"9000c1" ]] { setglobal HW_RELEASE_DATE = ''Q1 2017'' setglobal G_HW_MODEL_DESCRIPTION = ''Zero W'' setglobal HW_PCB_REVISION_CODE = ''1.1'' setglobal HW_MEMORY_SIZE = '512' setglobal HW_MANUFACTURER_NAME = ''Sony'' setglobal G_HW_MODEL = '1' setglobal HW_ONBOARD_WIFI = '1' } } proc Obtain_HW_Info{ #Systems that use /etc/.dietpi_hw_model_identifier for G_HW_MODEL if test -f $FP_G_HW_MODEL_INDENTIFIER { setglobal G_HW_MODEL = $[sed -n 1p $FP_G_HW_MODEL_INDENTIFIER] #Beagle Bone Black if sh-expr ' $G_HW_MODEL == 71 ' { setglobal G_HW_MODEL_DESCRIPTION = ''BBB'' #Sparky SBC } elif sh-expr ' $G_HW_MODEL == 70 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Sparky SBC'' #NanoPi M1 Plus } elif sh-expr ' $G_HW_MODEL == 66 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi M1 Plus'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #NanoPi NEO 2 } elif sh-expr ' $G_HW_MODEL == 65 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi NEO 2'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '2' #NanoPi NEO Air } elif sh-expr ' $G_HW_MODEL == 64 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi NEO Air'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #NanoPi M1 } elif sh-expr ' $G_HW_MODEL == 63 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi M1/T1'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #NanoPi M3 } elif sh-expr ' $G_HW_MODEL == 62 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi M3/T3'' #NanoPi M2 } elif sh-expr ' $G_HW_MODEL == 61 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi M2/T2'' #NanoPi Neo } elif sh-expr ' $G_HW_MODEL == 60 ' { setglobal G_HW_MODEL_DESCRIPTION = ''NanoPi Neo'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #Asus Tinker Board } elif sh-expr ' $G_HW_MODEL == 52 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Asus Tinker Board'' #BananaPi Pro } elif sh-expr ' $G_HW_MODEL == 51 ' { setglobal G_HW_MODEL_DESCRIPTION = ''BananaPi Pro'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' #BananaPi M2+ } elif sh-expr ' $G_HW_MODEL == 50 ' { setglobal G_HW_MODEL_DESCRIPTION = ''BananaPi M2+'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #Rock64 } elif sh-expr ' $G_HW_MODEL == 43 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Rock64'' setglobal IMAGE_ADDITIONAL_CREDITS = ''Longsleep, Ayufan'' #PineA64 } elif sh-expr ' $G_HW_MODEL == 40 ' { setglobal IMAGE_ADDITIONAL_CREDITS = ''Longsleep, Rhkean'' setglobal G_HW_MODEL_DESCRIPTION = ''Pine A64'' #OrangePi PC 2 } elif sh-expr ' $G_HW_MODEL == 38 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OPi PC2'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '2' #OrangePi Prime } elif sh-expr ' $G_HW_MODEL == 37 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OPi Prime'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '2' #OrangePi Win } elif sh-expr ' $G_HW_MODEL == 36 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OPi Win'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' #OrangePi Zero Plus 2 (h3/h5) } elif sh-expr ' $G_HW_MODEL == 35 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OPi Zero 2 Plus'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #OrangePi Plus } elif sh-expr ' $G_HW_MODEL == 34 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OrangePi Plus'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #OrangePi Lite } elif sh-expr ' $G_HW_MODEL == 33 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OrangePi Lite'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #OrangePi Zero } elif sh-expr ' $G_HW_MODEL == 32 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OrangePi Zero'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' #G_HW_CPUID=1 #H2+ #OrangePi One } elif sh-expr ' $G_HW_MODEL == 31 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OrangePi One'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #OrangePi Pc } elif sh-expr ' $G_HW_MODEL == 30 ' { setglobal G_HW_MODEL_DESCRIPTION = ''OrangePi PC'' setglobal IMAGE_ADDITIONAL_CREDITS = ''ARMbian'' setglobal G_HW_CPUID = '1' #Generic device (eg: unknown to DietPi) } elif sh-expr ' $G_HW_MODEL == 22 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Generic Device'' setglobal IMAGE_ADDITIONAL_CREDITS = ''You!'' #x86_64 native PC } elif sh-expr ' $G_HW_MODEL == 21 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Native PC'' #VM } elif sh-expr ' $G_HW_MODEL == 20 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Virtual Machine'' #oDroid U3 } elif sh-expr ' $G_HW_MODEL == 13 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Odroid U3'' #IMAGE_ADDITIONAL_CREDITS='Meveric' #Odroid C2 } elif sh-expr ' $G_HW_MODEL == 12 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Odroid C2'' setglobal IMAGE_ADDITIONAL_CREDITS = ''Meveric'' #Odroid XU3/XU4/HC1 } elif sh-expr ' $G_HW_MODEL == 11 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Odroid XU3/4'' setglobal IMAGE_ADDITIONAL_CREDITS = ''Meveric'' #Odroid C1 } elif sh-expr ' $G_HW_MODEL == 10 ' { setglobal G_HW_MODEL_DESCRIPTION = ''Odroid C1'' setglobal IMAGE_ADDITIONAL_CREDITS = ''Meveric'' } #RPi } elif sh-expr ' $(grep -ci -m1 '^ID=raspbian' /etc/os-release) ' { #Grab hardware description from rpi_boardinfo RPi_BoardInfo } #Get Distro Index if sh-expr ' $( grep -ci -m1 'jessie' /etc/os-release) ' { setglobal G_DISTRO = '3' } elif sh-expr ' $( grep -ci -m1 'stretch' /etc/os-release) ' { setglobal G_DISTRO = '4' } elif sh-expr ' $( grep -ci -m1 'buster' /etc/os-release) ' { setglobal G_DISTRO = '5' } #Generate UUID if it does not exist if test ! -f /DietPi/dietpi/.hw_model { setglobal HW_UUID = $[cat /proc/sys/kernel/random/uuid] } else { setglobal HW_UUID = $[sed -n 5p /DietPi/dietpi/.hw_model] } #Obtain hardware cpu architecture setglobal G_HW_ARCH_DESCRIPTION = $[uname -m] if test $G_HW_ARCH_DESCRIPTION = "armv6l" { setglobal G_HW_ARCH = '1' } elif test $G_HW_ARCH_DESCRIPTION = "armv7l" { setglobal G_HW_ARCH = '2' } elif test $G_HW_ARCH_DESCRIPTION = "aarch64" { setglobal G_HW_ARCH = '3' } elif test $G_HW_ARCH_DESCRIPTION = "x86_64" { setglobal G_HW_ARCH = '10' # - Unknown arch for DietPi, inform user by adding 'unknown'. } else { setglobal G_HW_ARCH_DESCRIPTION = '' (Unknown)'' } # - Add HW arch to HW desc setglobal G_HW_MODEL_DESCRIPTION = "" ($G_HW_ARCH_DESCRIPTION)"" #Save data cat << """ > /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 """ > /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 #----------------------------------------------------------------------------------- }