From e0cf84836acd4f8a85c54b2a15a525b8803247d5 Mon Sep 17 00:00:00 2001 From: Sebastian Hildebrandt Date: Thu, 31 Jan 2019 18:48:10 +0100 Subject: [PATCH] Raspberry 3 B+, A+ detection added --- lib/network.js | 46 +++++++++++++++++++++++----------------------- lib/system.js | 42 +++++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/lib/network.js b/lib/network.js index ed130be..561df9a 100644 --- a/lib/network.js +++ b/lib/network.js @@ -312,29 +312,29 @@ function networkInterfaces(callback) { }); if (_linux) { let iface = dev.split(':')[0]; - const cmd = `echo -n "addr_assign_type: "; cat /sys/class/net/${iface}/addr_assign_type 2>&1; - echo -n "address: "; cat /sys/class/net/${iface}/address 2>&1; - echo -n "addr_len: "; cat /sys/class/net/${iface}/addr_len 2>&1; - echo -n "broadcast: "; cat /sys/class/net/${iface}/broadcast 2>&1; - echo -n "carrier: "; cat /sys/class/net/${iface}/carrier 2>&1; - echo -n "carrier_changes: "; cat /sys/class/net/${iface}/carrier_changes 2>&1; - echo -n "dev_id: "; cat /sys/class/net/${iface}/dev_id 2>&1; - echo -n "dev_port: "; cat /sys/class/net/${iface}/dev_port 2>&1; - echo -n "dormant: "; cat /sys/class/net/${iface}/dormant 2>&1; - echo -n "duplex: "; cat /sys/class/net/${iface}/duplex 2>&1; - echo -n "flags: "; cat /sys/class/net/${iface}/flags 2>&1; - echo -n "gro_flush_timeout: "; cat /sys/class/net/${iface}/gro_flush_timeout 2>&1; - echo -n "ifalias: "; cat /sys/class/net/${iface}/ifalias 2>&1; - echo -n "ifindex: "; cat /sys/class/net/${iface}/ifindex 2>&1; - echo -n "iflink: "; cat /sys/class/net/${iface}/iflink 2>&1; - echo -n "link_mode: "; cat /sys/class/net/${iface}/link_mode 2>&1; - echo -n "mtu: "; cat /sys/class/net/${iface}/mtu 2>&1; - echo -n "netdev_group: "; cat /sys/class/net/${iface}/netdev_group 2>&1; - echo -n "operstate: "; cat /sys/class/net/${iface}/operstate 2>&1; - echo -n "proto_down: "; cat /sys/class/net/${iface}/proto_down 2>&1; - echo -n "speed: "; cat /sys/class/net/${iface}/speed 2>&1; - echo -n "tx_queue_len: "; cat /sys/class/net/${iface}/tx_queue_len 2>&1; - echo -n "type: "; cat /sys/class/net/${iface}/type 2>&1; + const cmd = `echo -n "addr_assign_type: "; cat /sys/class/net/${iface}/addr_assign_type 2>/dev/null; echo; + echo -n "address: "; cat /sys/class/net/${iface}/address 2>/dev/null; echo; + echo -n "addr_len: "; cat /sys/class/net/${iface}/addr_len 2>/dev/null; echo; + echo -n "broadcast: "; cat /sys/class/net/${iface}/broadcast 2>/dev/null; echo; + echo -n "carrier: "; cat /sys/class/net/${iface}/carrier 2>/dev/null; echo; + echo -n "carrier_changes: "; cat /sys/class/net/${iface}/carrier_changes 2>/dev/null; echo; + echo -n "dev_id: "; cat /sys/class/net/${iface}/dev_id 2>/dev/null; echo; + echo -n "dev_port: "; cat /sys/class/net/${iface}/dev_port 2>/dev/null; echo; + echo -n "dormant: "; cat /sys/class/net/${iface}/dormant 2>/dev/null; echo; + echo -n "duplex: "; cat /sys/class/net/${iface}/duplex 2>/dev/null; echo; + echo -n "flags: "; cat /sys/class/net/${iface}/flags 2>/dev/null; echo; + echo -n "gro_flush_timeout: "; cat /sys/class/net/${iface}/gro_flush_timeout 2>/dev/null; echo; + echo -n "ifalias: "; cat /sys/class/net/${iface}/ifalias 2>/dev/null; echo; + echo -n "ifindex: "; cat /sys/class/net/${iface}/ifindex 2>/dev/null; echo; + echo -n "iflink: "; cat /sys/class/net/${iface}/iflink 2>/dev/null; echo; + echo -n "link_mode: "; cat /sys/class/net/${iface}/link_mode 2>/dev/null; echo; + echo -n "mtu: "; cat /sys/class/net/${iface}/mtu 2>/dev/null; echo; + echo -n "netdev_group: "; cat /sys/class/net/${iface}/netdev_group 2>/dev/null; echo; + echo -n "operstate: "; cat /sys/class/net/${iface}/operstate 2>/dev/null; echo; + echo -n "proto_down: "; cat /sys/class/net/${iface}/proto_down 2>/dev/null; echo; + echo -n "speed: "; cat /sys/class/net/${iface}/speed 2>/dev/null; echo; + echo -n "tx_queue_len: "; cat /sys/class/net/${iface}/tx_queue_len 2>/dev/null; echo; + echo -n "type: "; cat /sys/class/net/${iface}/type 2>/dev/null; echo; echo -n "wireless: "; cat /proc/net/wireless \| grep ${iface}; echo -n "wirelessspeed: "; iw dev ${iface} link 2>&1 \| grep bitrate; echo;`; let lines = []; diff --git a/lib/system.js b/lib/system.js index 51441c3..63c8cca 100644 --- a/lib/system.js +++ b/lib/system.js @@ -52,11 +52,11 @@ function system(callback) { result.sku = util.getValue(lines, 'sku number'); // } // Non-Root values - const cmd = `echo -n "product_name: "; cat /sys/devices/virtual/dmi/id/product_name 2>&1; - echo -n "product_serial: "; cat /sys/devices/virtual/dmi/id/product_serial 2>&1; - echo -n "product_uuid: "; cat /sys/devices/virtual/dmi/id/product_uuid 2>&1; - echo -n "product_version: "; cat /sys/devices/virtual/dmi/id/product_version 2>&1; - echo -n "sys_vendor: "; cat /sys/devices/virtual/dmi/id/sys_vendor 2>&1;`; + const cmd = `echo -n "product_name: "; cat /sys/devices/virtual/dmi/id/product_name 2>/dev/null; echo; + echo -n "product_serial: "; cat /sys/devices/virtual/dmi/id/product_serial 2>/dev/null; echo; + echo -n "product_uuid: "; cat /sys/devices/virtual/dmi/id/product_uuid 2>/dev/null; echo; + echo -n "product_version: "; cat /sys/devices/virtual/dmi/id/product_version 2>/dev/null; echo; + echo -n "sys_vendor: "; cat /sys/devices/virtual/dmi/id/sys_vendor 2>/dev/null; echo;`; try { lines = execSync(cmd).toString().split('\n'); result.manufacturer = result.manufacturer === '' ? util.getValue(lines, 'sys_vendor') : result.manufacturer; @@ -102,7 +102,11 @@ function system(callback) { result.version = result.version + ' - Rev. 1.2'; } if (['a020d3'].indexOf(result.version) >= 0) { - result.model = result.model + ' - Pi 3 Model B'; + result.model = result.model + ' - Pi 3 Model B+'; + result.version = result.version + ' - Rev. 1.3'; + } + if (['9020e0'].indexOf(result.version) >= 0) { + result.model = result.model + ' - Pi 3 Model A+'; result.version = result.version + ' - Rev. 1.3'; } // Pi 2 Model B @@ -261,9 +265,9 @@ function bios(callback) { result.releaseDate = util.parseDateTime(datetime).date; result.revision = util.getValue(lines, 'BIOS Revision'); // Non-Root values - const cmd = `echo -n "bios_date: "; cat /sys/devices/virtual/dmi/id/bios_date 2>&1; - echo -n "bios_vendor: "; cat /sys/devices/virtual/dmi/id/bios_vendor 2>&1; - echo -n "bios_version: "; cat /sys/devices/virtual/dmi/id/bios_version 2>&1;`; + const cmd = `echo -n "bios_date: "; cat /sys/devices/virtual/dmi/id/bios_date 2>/dev/null; echo; + echo -n "bios_vendor: "; cat /sys/devices/virtual/dmi/id/bios_vendor 2>/dev/null; echo; + echo -n "bios_version: "; cat /sys/devices/virtual/dmi/id/bios_version 2>/dev/null; echo;`; try { lines = execSync(cmd).toString().split('\n'); result.vendor = !result.vendor ? util.getValue(lines, 'bios_vendor') : result.vendor; @@ -355,11 +359,11 @@ function baseboard(callback) { result.serial = util.getValue(lines, 'Serial Number'); result.assetTag = util.getValue(lines, 'Asset Tag'); // Non-Root values - const cmd = `echo -n "board_asset_tag: "; cat /sys/devices/virtual/dmi/id/board_asset_tag 2>&1; - echo -n "board_name: "; cat /sys/devices/virtual/dmi/id/board_name 2>&1; - echo -n "board_serial: "; cat /sys/devices/virtual/dmi/id/board_serial 2>&1; - echo -n "board_vendor: "; cat /sys/devices/virtual/dmi/id/board_vendor 2>&1; - echo -n "board_version: "; cat /sys/devices/virtual/dmi/id/board_version 2>&1;`; + const cmd = `echo -n "board_asset_tag: "; cat /sys/devices/virtual/dmi/id/board_asset_tag 2>/dev/null; echo; + echo -n "board_name: "; cat /sys/devices/virtual/dmi/id/board_name 2>/dev/null; echo; + echo -n "board_serial: "; cat /sys/devices/virtual/dmi/id/board_serial 2>/dev/null; echo; + echo -n "board_vendor: "; cat /sys/devices/virtual/dmi/id/board_vendor 2>/dev/null; echo; + echo -n "board_version: "; cat /sys/devices/virtual/dmi/id/board_version 2>/dev/null; echo;`; try { lines = execSync(cmd).toString().split('\n'); result.manufacturer = !result.manufacturer ? util.getValue(lines, 'board_vendor') : result.manufacturer; @@ -481,11 +485,11 @@ function chassis(callback) { sku: '', }; if (_linux || _freebsd || _openbsd) { - const cmd = `echo -n "chassis_asset_tag: "; cat /sys/devices/virtual/dmi/id/chassis_asset_tag 2>&1; - echo -n "chassis_serial: "; cat /sys/devices/virtual/dmi/id/chassis_serial 2>&1; - echo -n "chassis_type: "; cat /sys/devices/virtual/dmi/id/chassis_type 2>&1; - echo -n "chassis_vendor: "; cat /sys/devices/virtual/dmi/id/chassis_vendor 2>&1; - echo -n "chassis_version: "; cat /sys/devices/virtual/dmi/id/chassis_version 2>&1;`; + const cmd = `echo -n "chassis_asset_tag: "; cat /sys/devices/virtual/dmi/id/chassis_asset_tag 2>/dev/null; echo; + echo -n "chassis_serial: "; cat /sys/devices/virtual/dmi/id/chassis_serial 2>/dev/null; echo; + echo -n "chassis_type: "; cat /sys/devices/virtual/dmi/id/chassis_type 2>/dev/null; echo; + echo -n "chassis_vendor: "; cat /sys/devices/virtual/dmi/id/chassis_vendor 2>/dev/null; echo; + echo -n "chassis_version: "; cat /sys/devices/virtual/dmi/id/chassis_version 2>/dev/null; echo;`; exec(cmd, function (error, stdout) { let lines = stdout.toString().split('\n'); result.manufacturer = util.getValue(lines, 'chassis_vendor');