diff --git a/dietpi/func/dietpi-obtain_hw_model b/dietpi/func/dietpi-obtain_hw_model index eede515538..c3f41f2710 100644 --- a/dietpi/func/dietpi-obtain_hw_model +++ b/dietpi/func/dietpi-obtain_hw_model @@ -50,12 +50,12 @@ # 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 15 oDroid N2 - # G_HW_MODEL 14 oDroid N1 - # G_HW_MODEL 13 oDroid U3 - # G_HW_MODEL 12 oDroid C2 - # G_HW_MODEL 11 oDroid XU3/XU4/HC1/HC2 - # G_HW_MODEL 10 oDroid C1 + # G_HW_MODEL 15 Odroid N2 + # G_HW_MODEL 14 Odroid N1 + # G_HW_MODEL 13 Odroid U3 + # G_HW_MODEL 12 Odroid C2 + # G_HW_MODEL 11 Odroid XU3/XU4/HC1/HC2 + # G_HW_MODEL 10 Odroid C1 # G_HW_MODEL 3 Raspberry Pi 3/3+ # G_HW_MODEL 2 Raspberry Pi 2 # G_HW_MODEL 1 Raspberry Pi 1/Zero (512mb) @@ -93,13 +93,13 @@ # HW_ONBOARD_WIFI 0 Not set # HW_ONBOARD_WIFI 1 RPi3/ZeroW (BCM43438) # - Line 11 - (RPi only) - # HW_REVISION_CODE + # HW_MEMORY_SIZE # - Line 12 - (RPi only) - # HW_RELEASE_DATE + # HW_REVISION_CODE # - Line 13 - (RPi only) - # HW_PCB_REVISION_CODE + # HW_RELEASE_DATEH # - Line 14 - (RPi only) - # HW_MEMORY_SIZE + # W_PCB_REVISION_CODE # - Line 15 - (RPi only) # HW_MANUFACTURER_NAME #//////////////////////////////////// @@ -119,7 +119,7 @@ G_HW_MODEL=-1 G_HW_MODEL_DESCRIPTION='Unknown Device' G_DISTRO=0 - ROOTFS_DEVICE_PATH=$(df --output=source,target | mawk '/\/$/ {print $1;exit}') + ROOTFS_DEVICE_PATH=$(df --output=source / | tail -1) HW_UUID=0 G_HW_ARCH=0 G_HW_ARCH_DESCRIPTION=$(uname -m) @@ -128,7 +128,7 @@ HW_ONBOARD_WIFI=0 # RPi extras - HW_REVISION_CODE=0 + HW_REVISION_CODE='Unknown' HW_RELEASE_DATE='Unknown' HW_PCB_REVISION_CODE='Unknown' HW_MEMORY_SIZE=0 @@ -137,9 +137,10 @@ RPi_BoardInfo(){ #----------------------------------------------------------------------------------- - # Obtain device info by revision number - # *" because 10000002 then it indicates that your Raspberry Pi has been over-volted - HW_REVISION_CODE=$(mawk '/Revision/ {print $3;exit}' /proc/cpuinfo) + # Obtain device info by revision number: https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md + # - Release dates: https://www.elinux.org/RPi_HardwareHistory + # - *' because 10000002 then it indicates that your Raspberry Pi has been over-volted + HW_REVISION_CODE=$(mawk '/^Revision/ {print $3;exit}' /proc/cpuinfo) G_HW_MODEL_DESCRIPTION='RPi ' @@ -147,9 +148,7 @@ 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 @@ -158,7 +157,7 @@ G_HW_MODEL_DESCRIPTION+='B' HW_PCB_REVISION_CODE='1.0' HW_MEMORY_SIZE=256 - HW_MANUFACTURER_NAME='Unknown' + HW_MANUFACTURER_NAME='Egoman' G_HW_MODEL=0 elif [[ $HW_REVISION_CODE == *'0003' ]]; then @@ -167,7 +166,7 @@ G_HW_MODEL_DESCRIPTION+='B (ECN0001)' HW_PCB_REVISION_CODE='1.0' HW_MEMORY_SIZE=256 - HW_MANUFACTURER_NAME='Unknown' + HW_MANUFACTURER_NAME='Egoman' G_HW_MODEL=0 elif [[ $HW_REVISION_CODE == *'0004' ]]; then @@ -212,7 +211,7 @@ G_HW_MODEL_DESCRIPTION+='A' HW_PCB_REVISION_CODE='2.0' HW_MEMORY_SIZE=256 - HW_MANUFACTURER_NAME='Sony' + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=0 elif [[ $HW_REVISION_CODE == *'0009' ]]; then @@ -239,7 +238,7 @@ G_HW_MODEL_DESCRIPTION+='B' HW_PCB_REVISION_CODE='2.0' HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Sony' + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=1 elif [[ $HW_REVISION_CODE == *'000f' ]]; then @@ -248,16 +247,16 @@ G_HW_MODEL_DESCRIPTION+='B' HW_PCB_REVISION_CODE='2.0' HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Qisda' + HW_MANUFACTURER_NAME='Egoman' 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_PCB_REVISION_CODE='1.2' HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Sony' + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=1 elif [[ $HW_REVISION_CODE == *'0011' ]]; then @@ -266,16 +265,16 @@ G_HW_MODEL_DESCRIPTION+='CM' HW_PCB_REVISION_CODE='1.0' HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Sony' + HW_MANUFACTURER_NAME='Sony, UK' 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_PCB_REVISION_CODE='1.1' HW_MEMORY_SIZE=256 - HW_MANUFACTURER_NAME='Sony' + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=0 elif [[ $HW_REVISION_CODE == *'0013' ]]; then @@ -284,34 +283,132 @@ G_HW_MODEL_DESCRIPTION+='B+' HW_PCB_REVISION_CODE='1.2' HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Unknown' + HW_MANUFACTURER_NAME='Embest, China' G_HW_MODEL=1 - elif [[ $HW_REVISION_CODE == *'a01041' ]]; then + elif [[ $HW_REVISION_CODE == *'0014' ]]; then - HW_RELEASE_DATE='Q1 2015' - G_HW_MODEL_DESCRIPTION+='2 Model B' + HW_RELEASE_DATE='Q2 2014' + G_HW_MODEL_DESCRIPTION+='CM' + HW_PCB_REVISION_CODE='1.0' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Embest, China' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'0015' ]]; then + + G_HW_MODEL_DESCRIPTION+='A+' HW_PCB_REVISION_CODE='1.1' - HW_MEMORY_SIZE=1024 - HW_MANUFACTURER_NAME='Sony' - G_HW_MODEL=2 + # 256M and 512M versions exist + if (( $(mawk '/^MemTotal:/ {print $2}' /proc/meminfo) > 300000 )); then - elif [[ $HW_REVISION_CODE == *'a020a0' ]]; then + HW_MEMORY_SIZE=512 + G_HW_MODEL=1 + + else + + HW_MEMORY_SIZE=256 + G_HW_MODEL=0 + + fi + HW_MANUFACTURER_NAME='Embest, China' + + elif [[ $HW_REVISION_CODE == *'900021' ]]; then + + HW_RELEASE_DATE='Q3 2016' + G_HW_MODEL_DESCRIPTION+='A+' + HW_PCB_REVISION_CODE='1.1' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Sony, UK' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'900032' ]]; then + + HW_RELEASE_DATE='Q2 2016' + G_HW_MODEL_DESCRIPTION+='B+' + HW_PCB_REVISION_CODE='1.2' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Sony, UK' + G_HW_MODEL=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, UK' + 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, UK' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'9000c1' ]]; then HW_RELEASE_DATE='Q1 2017' - G_HW_MODEL_DESCRIPTION+='CM 3' + G_HW_MODEL_DESCRIPTION+='Zero W' + HW_PCB_REVISION_CODE='1.1' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Sony, UK' + G_HW_MODEL=1 + HW_ONBOARD_WIFI=1 + + elif [[ $HW_REVISION_CODE == *'9020e0' ]]; then + + HW_RELEASE_DATE='Q4 2018' + G_HW_MODEL_DESCRIPTION+='3 Model A+' HW_PCB_REVISION_CODE='1.0' - HW_MEMORY_SIZE=1024 - HW_MANUFACTURER_NAME='Sony' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=3 + HW_ONBOARD_WIFI=1 - elif [[ $HW_REVISION_CODE == *'a21041' ]]; then + elif [[ $HW_REVISION_CODE == *'920092' ]]; then + + G_HW_MODEL_DESCRIPTION+='Zero' + HW_PCB_REVISION_CODE='1.2' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Embest, China' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'920093' ]]; then + + HW_RELEASE_DATE='Q4 2016' + G_HW_MODEL_DESCRIPTION+='Zero' + HW_PCB_REVISION_CODE='1.3' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Embest, China' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'900061' ]]; then + + G_HW_MODEL_DESCRIPTION+='CM' + HW_PCB_REVISION_CODE='1.1' + HW_MEMORY_SIZE=512 + HW_MANUFACTURER_NAME='Sony, UK' + G_HW_MODEL=1 + + elif [[ $HW_REVISION_CODE == *'a01040' ]]; then + + G_HW_MODEL_DESCRIPTION+='2 Model B' + HW_PCB_REVISION_CODE='1.0' + HW_MEMORY_SIZE=1024 + HW_MANUFACTURER_NAME='Sony, UK' + G_HW_MODEL=2 + + 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='Embest, China' + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=2 elif [[ $HW_REVISION_CODE == *'a02082' ]]; then @@ -324,6 +421,34 @@ G_HW_MODEL=3 HW_ONBOARD_WIFI=1 + 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, UK' + G_HW_MODEL=3 + + elif [[ $HW_REVISION_CODE == *'a020d3' ]]; then + + HW_RELEASE_DATE='Q1 2018' + G_HW_MODEL_DESCRIPTION+='3 Model B+' + HW_PCB_REVISION_CODE='1.3' + HW_MEMORY_SIZE=1024 + HW_MANUFACTURER_NAME='Sony, UK' + 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 == *'a22042' ]]; then HW_RELEASE_DATE='Q1 2016' @@ -343,44 +468,24 @@ G_HW_MODEL=3 HW_ONBOARD_WIFI=1 + elif [[ $HW_REVISION_CODE == *'a220a0' ]]; then + + G_HW_MODEL_DESCRIPTION+='CM 3' + HW_PCB_REVISION_CODE='1.0' + HW_MEMORY_SIZE=1024 + HW_MANUFACTURER_NAME='Embest, China' + G_HW_MODEL=3 + 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' + HW_MANUFACTURER_NAME='Sony, Japan' 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 - elif [[ $HW_REVISION_CODE == *'a52082' ]]; then HW_RELEASE_DATE='Q1 2018' @@ -391,32 +496,29 @@ G_HW_MODEL=3 HW_ONBOARD_WIFI=1 - elif [[ $HW_REVISION_CODE == *'a020d3' ]]; then + elif [[ $HW_REVISION_CODE == *'a22083' ]]; then - HW_RELEASE_DATE='Q1 2018' - G_HW_MODEL_DESCRIPTION+='3 Model B+' + G_HW_MODEL_DESCRIPTION+='3 Model B' HW_PCB_REVISION_CODE='1.3' HW_MEMORY_SIZE=1024 - HW_MANUFACTURER_NAME='Sony UK' + HW_MANUFACTURER_NAME='Embest, China' G_HW_MODEL=3 HW_ONBOARD_WIFI=1 - elif [[ $HW_REVISION_CODE == *'9020e0' ]]; then + elif [[ $HW_REVISION_CODE == *'a02100' ]]; then - HW_RELEASE_DATE='Q3 2018' - G_HW_MODEL_DESCRIPTION+='3 Model A+' + G_HW_MODEL_DESCRIPTION+='CM 3+' HW_PCB_REVISION_CODE='1.0' - HW_MEMORY_SIZE=512 - HW_MANUFACTURER_NAME='Sony UK' + HW_MEMORY_SIZE=1024 + HW_MANUFACTURER_NAME='Sony, UK' G_HW_MODEL=3 - HW_ONBOARD_WIFI=1 fi } - # NB: PLEASE ENSURE HW_MODEL INDEX ENTRIES MATCH : PREP, dietpi-obtain_hw_model, dietpi-survey_results, - # NBB: DO NOT REORDER INDEX's. These are now fixed and will never change (due to survey results etc) + # NB: PLEASE ENSURE HW_MODEL INDEX ENTRIES MATCH : PREP, dietpi-obtain_hw_model, dietpi-survey_results, + # NBB: DO NOT REORDER INDEX's. These are now fixed and will never change (due to survey results etc) Obtain_HW_Info(){ # Systems that use /etc/.dietpi_hw_model_identifier for G_HW_MODEL @@ -657,7 +759,7 @@ # RPi elif grep -qi '^ID=raspbian' /etc/os-release; then - #Grab hardware description from rpi_boardinfo + # Grab hardware description from rpi_boardinfo RPi_BoardInfo fi @@ -725,11 +827,11 @@ $G_HW_ARCH $G_HW_ARCH_DESCRIPTION $IMAGE_ADDITIONAL_CREDITS $G_HW_CPUID -$HW_ONBOARD_WIFI -HW_MEMORY_SIZE=$HW_MEMORY_SIZE" > /DietPi/dietpi/.hw_model +$HW_ONBOARD_WIFI" > /DietPi/dietpi/.hw_model # - RPi extras - (( $G_HW_MODEL < 10 )) && echo "$HW_REVISION_CODE + (( $G_HW_MODEL < 10 )) && echo "HW_MEMORY_SIZE=$HW_MEMORY_SIZE +$HW_REVISION_CODE HW_RELEASE_DATE=$HW_RELEASE_DATE HW_PCB_REVISION_CODE=$HW_PCB_REVISION_CODE HW_MANUFACTURER_NAME=$HW_MANUFACTURER_NAME" >> /DietPi/dietpi/.hw_model @@ -737,7 +839,7 @@ HW_MANUFACTURER_NAME=$HW_MANUFACTURER_NAME" >> /DietPi/dietpi/.hw_model } #----------------------------------------------------------------------------------- - #Main + # Main Obtain_HW_Info #----------------------------------------------------------------------------------- exit 0