Created
July 27, 2017 11:28
-
-
Save mattconsto/66562b1e24981c73f4ac5e71ab3341bf to your computer and use it in GitHub Desktop.
Detect a Raspberry Pi Model, RAM, CPU, and if it is a Compute Module or Zero.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
RPI_REV=$(sudo cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^ *//g' | sed 's/ *$//g') | |
if [ "$RPI_REV" = "Beta" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="0.0" | |
elif [ "$RPI_REV" = "0002" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "0003" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "0004" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0005" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0006" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0007" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0008" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0009" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "000d" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "000e" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "000f" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B" && RPI_VERSION="2.0" | |
elif [ "$RPI_REV" = "0010" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B+" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "0011" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=true && RPI_ZERO=false && RPI_MODEL="Compute Module" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "0012" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A+" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "0013" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B+" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "0014" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=true && RPI_ZERO=false && RPI_MODEL="Compute Module" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "0015" ]; then RPI=true && RPI_RAM=256 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A+" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "a01040" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 2B" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "a01041" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 2B" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "a21041" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 2B" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "a22042" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 2B" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "900021" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1A+" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "900032" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 1B+" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "900092" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=true && RPI_MODEL="Zero" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "900093" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=true && RPI_MODEL="Zero" && RPI_VERSION="1.3" | |
elif [ "$RPI_REV" = "920093" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=true && RPI_MODEL="Zero" && RPI_VERSION="1.3" | |
elif [ "$RPI_REV" = "9000c1" ]; then RPI=true && RPI_RAM=512 && RPI_COMPUTE=false && RPI_ZERO=true && RPI_MODEL="Zero W" && RPI_VERSION="1.1" | |
elif [ "$RPI_REV" = "a02082" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 3B" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "a020a0" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=true && RPI_ZERO=false && RPI_MODEL="Compute Module 3" && RPI_VERSION="1.0" | |
elif [ "$RPI_REV" = "a22082" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 3B" && RPI_VERSION="1.2" | |
elif [ "$RPI_REV" = "a32082" ]; then RPI=true && RPI_RAM=1024 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Model 3B" && RPI_VERSION="1.2" | |
else RPI=false && RPI_RAM=0 && RPI_COMPUTE=false && RPI_ZERO=false && RPI_MODEL="Unknown Model" && RPI_VERSION="0.0" | |
fi | |
RPI_CPU=$(lscpu | grep "CPU max MHz" | awk '{print int($4)}') | |
if [ $RPI = true ]; then | |
echo -e "Raspberry Pi ${RPI_MODEL} v${RPI_VERSION} @ ${RPI_CPU}MHz (${RPI_RAM}MB)\n" | |
else | |
echo -e "Unknown Device ${RPI_MODEL} v${RPI_VERSION} @ ${RPI_CPU}MHz (${RPI_RAM}MB)\n" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment