4

I'm developing a UI which also runs on a Raspberry Pi (currently with Raspbian).

With the os object I can get information about the OS. But how can I be sure that I'm running on Raspbian or in general on a Raspberry Pi?

console.log(os.platform()); // 'linux'
console.log(os.release()); //'3.12.28+'
joan
  • 71,024
  • 5
  • 73
  • 106
Boas Enkler
  • 215
  • 3
  • 7
  • what's the point? what should happen if your UI runs on Beagle or Panda or hundreds of other ARM-based linux-running boards? – lenik Nov 30 '14 at 05:06
  • For example that i would expect an GPIO only on as raspberry pi. – Boas Enkler Nov 30 '14 at 18:38
  • 1
    no idea how you would go about it but should you not be checking for GPIO support instead? Raspbian can be run on qemu on any platform for instance. – rob Dec 05 '14 at 11:53
  • Hmm thinking about this your right. Do you have an starting but on whot to detemerine that there is a gpio support? – Boas Enkler Dec 09 '14 at 17:35

2 Answers2

7

To check for Raspbian read the file /etc/os-release and check for ID=raspbian.

PRETTY_NAME="Raspbian GNU/Linux jessie/sid"
NAME="Raspbian GNU/Linux"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

To check for a Pi read the file /proc/cpuinfo and check for hardware BCM2708.

processor   : 0
model name  : ARMv6-compatible processor rev 7 (v6l)
Features    : swp half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7

Hardware    : BCM2708
Revision    : 0010
Serial      : 00000000f7094d77
joan
  • 71,024
  • 5
  • 73
  • 106
6

Based on joan's answer I've created a tiny Node.js library. It can be used to check if node is currently running on the RPi.

You can install it through:

npm install detect-rpi --save

To use it, you can use the following snippet:

var isPi = require('detect-rpi');

if (isPi()) {
  console.log('Running on Raspberry Pi!');
} else {
  // ...
}
fourcube
  • 161
  • 1
  • 1