system() added Raspberry CM5 detection

This commit is contained in:
Sebastian Hildebrandt 2024-12-08 12:19:52 +01:00
parent 3a92931c7d
commit 56032602df
4 changed files with 112 additions and 49 deletions

View File

@ -15,9 +15,13 @@
#### Breaking Changes #### Breaking Changes
**Be aware**, that the new version 5.x **is NOT fully backward compatible** to version 4.x ... **Be aware**, that the new version 5.x **is NOT fully backward compatible** to
version 4.x ...
We had to make **several interface changes** to keep systeminformation as consistent as possible. We highly [recommend to go through the complete list](https://systeminformation.io/changes.html) and adapt your own code to be again compatible to the new version 5. We had to make **several interface changes** to keep systeminformation as
consistent as possible. We highly
[recommend to go through the complete list](https://systeminformation.io/changes.html)
and adapt your own code to be again compatible to the new version 5.
| Function | Old | New (V5) | Comments | | Function | Old | New (V5) | Comments |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
@ -54,7 +58,8 @@ We had to make **several interface changes** to keep systeminformation as consis
- `diskLayout()`: added S.M.R.R.T. (win) - `diskLayout()`: added S.M.R.R.T. (win)
- `fsSize()`: added available - `fsSize()`: added available
- `fsSize()`: improved calculation of used - `fsSize()`: improved calculation of used
- `getData()`: support for passing parameters and filters (see section General / getData) - `getData()`: support for passing parameters and filters (see section General /
getData)
- `graphics()`: extended properties (mac OS) - `graphics()`: extended properties (mac OS)
- `graphics()`: extended nvidia-smi parsing - `graphics()`: extended nvidia-smi parsing
- `networkInterfaces()`: type detection improved (win - wireless) - `networkInterfaces()`: type detection improved (win - wireless)
@ -74,8 +79,10 @@ We had to make **several interface changes** to keep systeminformation as consis
#### Test Full Version 5 Functionality #### Test Full Version 5 Functionality
If you want to see all function results on your machine, please head over to [Testing section](https://systeminformation.io/tests.html). We implemented a tiny test suite where you can easily go through all functions and test resuls on your machine without coding. If you want to see all function results on your machine, please head over to
[Testing section](https://systeminformation.io/tests.html). We implemented a
tiny test suite where you can easily go through all functions and test resuls on
your machine without coding.
For major (breaking) changes - **version 4, 3 and 2** - see end of page. For major (breaking) changes - **version 4, 3 and 2** - see end of page.
@ -83,6 +90,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| Version | Date | Comment | | Version | Date | Comment |
| ------- | ---------- | --------------------------------------------------------------------------------------------------- | | ------- | ---------- | --------------------------------------------------------------------------------------------------- |
| 5.23.6 | 2024-12-08 | `system()` added Raspberry CM5 detection |
| 5.23.5 | 2024-08-21 | `processLoad()` fixed * process list (linux) | | 5.23.5 | 2024-08-21 | `processLoad()` fixed * process list (linux) |
| 5.23.4 | 2024-08-06 | `baseboard()` `chassis()` cleaned defaults (linux) | | 5.23.4 | 2024-08-06 | `baseboard()` `chassis()` cleaned defaults (linux) |
| 5.23.3 | 2024-08-02 | `usb()` fixed duplicate entries (windows) | | 5.23.3 | 2024-08-02 | `usb()` fixed duplicate entries (windows) |
@ -254,7 +262,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.9.5 | 2021-10-08 | `battery()` fixed isCharging (windows) | | 5.9.5 | 2021-10-08 | `battery()` fixed isCharging (windows) |
| 5.9.4 | 2021-09-23 | `processes()` fixed memVsz, Memrss (macOS M1) | | 5.9.4 | 2021-09-23 | `processes()` fixed memVsz, Memrss (macOS M1) |
| 5.9.3 | 2021-09-17 | `cpuTemperature()` improved tdie detection (linux) | | 5.9.3 | 2021-09-17 | `cpuTemperature()` improved tdie detection (linux) |
| 5.9.2 | 2021-09-16 | `graohics()` (macOS), `memLayout()` (win) improvements | | 5.9.2 | 2021-09-16 | `graohics()` (macOS), `memLayout()` (win) improvements |
| 5.9.1 | 2021-09-15 | `diskLayout()` fix size (macOS) | | 5.9.1 | 2021-09-15 | `diskLayout()` fix size (macOS) |
| 5.9.0 | 2021-09-15 | `graphics()` new XML parser, added properties (macOS) | | 5.9.0 | 2021-09-15 | `graphics()` new XML parser, added properties (macOS) |
| 5.8.9 | 2021-09-13 | `battery()` fix linux | | 5.8.9 | 2021-09-13 | `battery()` fix linux |
@ -735,35 +743,57 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
**Breaking Changes** **Breaking Changes**
- `networkStats()`: will provide an **array** of stats for all given interfaces. In previous versions only one interface was provided as a parameter. Pass '*' for all interfaces - `networkStats()`: will provide an **array** of stats for all given interfaces.
In previous versions only one interface was provided as a parameter. Pass '*'
for all interfaces
- `networkStats()`: `rx` and `tx` changed to `rx_bytes` and `tx_bytes` - `networkStats()`: `rx` and `tx` changed to `rx_bytes` and `tx_bytes`
- `dockerContainerStats()`: will provide an **array** of stats for all given docker containers. In previous versions only one interface was provided as a parameter. Pass '*' for all docker containers - `dockerContainerStats()`: will provide an **array** of stats for all given
docker containers. In previous versions only one interface was provided as a
parameter. Pass '*' for all docker containers
**Other Changes** **Other Changes**
- `system()` optimized system detection (e.g. new Raspberry Pi models, ...), additional flags - `system()` optimized system detection (e.g. new Raspberry Pi models, ...),
additional flags
- `system()`, `bios()`, `baseboard()` information also as non-root (linux) - `system()`, `bios()`, `baseboard()` information also as non-root (linux)
- `graphics()` better controller and display detection, fixes - `graphics()` better controller and display detection, fixes
- `versions()` optimization, fixes - `versions()` optimization, fixes
- `networkInterfaces()` added `operstate`, `type`, `duplex`, `mtu`, `speed`, `carrierChanges` - `networkInterfaces()` added `operstate`, `type`, `duplex`, `mtu`, `speed`,
`carrierChanges`
- `networkStats()` added stats for `errors`, `dropped` - `networkStats()` added stats for `errors`, `dropped`
- added TypeScript definitions - added TypeScript definitions
**Be aware**, that the new version 4.x is **NOT fully backward compatible** to version 3.x ... **Be aware**, that the new version 4.x is **NOT fully backward compatible** to
version 3.x ...
### Major (breaking) Changes - Version 3 ### Major (breaking) Changes - Version 3
- works only with [node.js][nodejs-url] **v4.0.0** and above (using now internal ES6 promise function, arrow functions, ...) - works only with [node.js][nodejs-url] **v4.0.0** and above (using now internal
- **Promises**. As you can see in the documentation, you can now also use it in a promise oriented way. But callbacks are still supported. ES6 promise function, arrow functions, ...)
- **Async/Await**. Due to the promises support, systeminformation also works perfectly with the `async/await` pattern (available in [node.js][nodejs-url] **v7.6.0** and above). See example in the docs. - **Promises**. As you can see in the documentation, you can now also use it in
- `cpuCurrentspeed`: now returns an object with current minimal, maximal and average CPU frequencies of all cores. a promise oriented way. But callbacks are still supported.
- `mem`: now supports also newer versions of `free` (Version 3.3.10 and above); extended information `avaliable` (potentially available memory) - **Async/Await**. Due to the promises support, systeminformation also works
- `fsStats`: added information sum bytes read + write (tx) and sum transfer rate/sec (tx_sec) perfectly with the `async/await` pattern (available in [node.js][nodejs-url]
- `networkInterfaces`: now providing one more detail: internal - true if this is an internal interface like "lo" **v7.6.0** and above). See example in the docs.
- `networkConnections`: instead of only counting sockets, you now get an array of objects with connection details for each socket (protocol, local and peer address, state) - `cpuCurrentspeed`: now returns an object with current minimal, maximal and
- `users`: now provides an array of objects with users online including detailed session information (login date/time, ip address, terminal, command) average CPU frequencies of all cores.
- `inetLatency`: now you can provide a host against which you want to test latency (default is 8.8.8.8) - `mem`: now supports also newer versions of `free` (Version 3.3.10 and above);
- `getDynamicData`: changed order of parameters (callback - if provided - is now the last one): `getDynamicData(srv, network, callback)` extended information `avaliable` (potentially available memory)
- `getAllData`: changed order of parameters (callback - if provided - is now the last one): `getAllData(srv, network, callback)` - `fsStats`: added information sum bytes read + write (tx) and sum transfer
rate/sec (tx_sec)
- `networkInterfaces`: now providing one more detail: internal - true if this is
an internal interface like "lo"
- `networkConnections`: instead of only counting sockets, you now get an array
of objects with connection details for each socket (protocol, local and peer
address, state)
- `users`: now provides an array of objects with users online including detailed
session information (login date/time, ip address, terminal, command)
- `inetLatency`: now you can provide a host against which you want to test
latency (default is 8.8.8.8)
- `getDynamicData`: changed order of parameters (callback - if provided - is now
the last one): `getDynamicData(srv, network, callback)`
- `getAllData`: changed order of parameters (callback - if provided - is now the
last one): `getAllData(srv, network, callback)`
New Functions New Functions
@ -773,42 +803,60 @@ New Functions
- Windows support: for some basic functions (new in version 3.17 ff) - Windows support: for some basic functions (new in version 3.17 ff)
- `cpuCache`: returns CPU cache (L1, L2, L3) sizes (new in version 3.14) - `cpuCache`: returns CPU cache (L1, L2, L3) sizes (new in version 3.14)
- `cpuFlags`: returns CPU flags (new in version 3.14) - `cpuFlags`: returns CPU flags (new in version 3.14)
- `currentLoad.cpus`: returns current load per cpu/core in an array (new in version 3.14) - `currentLoad.cpus`: returns current load per cpu/core in an array (new in
version 3.14)
- `shell`: returns standard shell e.g. /bin/bash (new in version 3.13) - `shell`: returns standard shell e.g. /bin/bash (new in version 3.13)
- `blockDevices`: returns array of block devices like disks, partitions, raids, roms (new in version 3.10) - `blockDevices`: returns array of block devices like disks, partitions, raids,
- `dockerContainerProcesses`: returns processes for a specific docker container (new in version 3.8) roms (new in version 3.10)
- `versions`: returns object of versions - kernel, ssl, node, npm, ...(new in version 3.6) - `dockerContainerProcesses`: returns processes for a specific docker container
- `graphics`: returns arrays of graphics controllers and displays (new in version 3.5) (new in version 3.8)
- `networkInterfaceDefault`: returns default network interface (new in version 3.4) - `versions`: returns object of versions - kernel, ssl, node, npm, ...(new in
- `processes`: now returns also a process list with all process details (new in version 3.3) version 3.6)
- `graphics`: returns arrays of graphics controllers and displays (new in
version 3.5)
- `networkInterfaceDefault`: returns default network interface (new in version
3.4)
- `processes`: now returns also a process list with all process details (new in
version 3.3)
- `battery`: retrieves battery status and charging level (new in version 3.2) - `battery`: retrieves battery status and charging level (new in version 3.2)
- `dockerContainers`: returns a list of all docker containers (new in version 3.1) - `dockerContainers`: returns a list of all docker containers (new in version
- `dockerContainerStats`: returns statistics for a specific docker container (new in version 3.1) 3.1)
- `dockerAll`: returns a list of all docker containers including their stats (new in version 3.1) - `dockerContainerStats`: returns statistics for a specific docker container
- `disksIO`: returns overall diskIO and IOPS values for all mounted volumes (new in version 3.0) (new in version 3.1)
- `dockerAll`: returns a list of all docker containers including their stats
(new in version 3.1)
- `disksIO`: returns overall diskIO and IOPS values for all mounted volumes (new
in version 3.0)
Bug Fixes / improvements Bug Fixes / improvements
- improvement `cpuTemperature` - works now also on Raspberry Pi - improvement `cpuTemperature` - works now also on Raspberry Pi
- bugfix `disksIO` - on OSX read and write got mixed up - bugfix `disksIO` - on OSX read and write got mixed up
- several bug fixes (like assess errors in `cpuCurrentspeed`, potentially incorrect results in `users`, ...) - several bug fixes (like assess errors in `cpuCurrentspeed`, potentially
incorrect results in `users`, ...)
- testet on even more platforms and linux distributions - testet on even more platforms and linux distributions
**Be aware**, that the new version 3.x is **NOT fully backward compatible** to version 2.x ... **Be aware**, that the new version 3.x is **NOT fully backward compatible** to
version 2.x ...
### Major (breaking) Changes - Version 2 ### Major (breaking) Changes - Version 2
There had been a lot of changes in version 2 of systeminformation! Here is a quick overview (for those who come from version 1): There had been a lot of changes in version 2 of systeminformation! Here is a
quick overview (for those who come from version 1):
New Functions New Functions
- `version`: returns systeminformation version (semver) of this library - `version`: returns systeminformation version (semver) of this library
- `system`: hardware info (manufacturer, product/model name, version, serial, uuid) - `system`: hardware info (manufacturer, product/model name, version, serial,
uuid)
- `networkConnections`: number of active connections - `networkConnections`: number of active connections
- `inetLatency`: latency in ms to external resource (internet) - `inetLatency`: latency in ms to external resource (internet)
- `getStaticData`: returns on json object with static data at once (OS, CPU, Network Interfaces - they should not change until restarted) - `getStaticData`: returns on json object with static data at once (OS, CPU,
- `getDynamicData`: returns on json object with all dynamic data at once (e.g. for monitoring agents) Network Interfaces - they should not change until restarted)
- `getAllData`: returns on json object with all data (static and dynamic) at once - `getDynamicData`: returns on json object with all dynamic data at once (e.g.
for monitoring agents)
- `getAllData`: returns on json object with all data (static and dynamic) at
once
Renamed Functions (now all camelCase) Renamed Functions (now all camelCase)
@ -827,13 +875,18 @@ Renamed Functions (now all camelCase)
Function Changes Function Changes
- `cpu_temperature`/`cpuTemperature`: -1 is new default (and indicates that non sensors are installed) - `cpu_temperature`/`cpuTemperature`: -1 is new default (and indicates that non
- `cpu_temperature`/`cpuTemperature`: new result `max` which returns max temperature of all cores sensors are installed)
- `cpu_temperature`/`cpuTemperature`: new result `max` which returns max
temperature of all cores
- `cpu_currentspeed`/`cpuCurrentspeed`: now in GHz - `cpu_currentspeed`/`cpuCurrentspeed`: now in GHz
- `cpu`: splitted `manufacturer` (e.g. Intel) and `brand` (e.g. Core 2 Duo) - `cpu`: splitted `manufacturer` (e.g. Intel) and `brand` (e.g. Core 2 Duo)
- `network_speed`/`networkStats`: now better support for OS X (also support for `operstate`) - `network_speed`/`networkStats`: now better support for OS X (also support for
- `network_speed`/`networkStats`: overall received and transferred bytes (rx, tx) `operstate`)
- `mem`: now better support for OS X (also support for `swaptotal`, `swapused`, `swapfree`) - `network_speed`/`networkStats`: overall received and transferred bytes (rx,
tx)
- `mem`: now better support for OS X (also support for `swaptotal`, `swapused`,
`swapfree`)
- `fs_size`/`fsSize`: use-values now in % (0 - 100% instead of 0 - 1) - `fs_size`/`fsSize`: use-values now in % (0 - 100% instead of 0 - 1)
- `fs_speed`/`fsStats`: now also full support for OS X - `fs_speed`/`fsStats`: now also full support for OS X
- `checksite`/`inetChecksite`: new result structure - see command reference - `checksite`/`inetChecksite`: new result structure - see command reference
@ -843,6 +896,7 @@ Other changes
- osx-temperature-sensor: now added as an optional dependency - osx-temperature-sensor: now added as an optional dependency
- no more external dependencies: `request` is not longer needed - no more external dependencies: `request` is not longer needed
- where possible results are now integer or float values (instead of strings) because it is easier to calculate with numbers ;-) - where possible results are now integer or float values (instead of strings)
because it is easier to calculate with numbers ;-)
[nodejs-url]: https://nodejs.org/en/ [nodejs-url]: https://nodejs.org/en/

View File

@ -57,6 +57,11 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr>
<th scope="row">5.23.6</th>
<td>2024-12-08</td>
<td><span class="code">system()</span> added Raspberry CM5 detection</td>
</tr>
<tr> <tr>
<th scope="row">5.23.5</th> <th scope="row">5.23.5</th>
<td>2024-08-21</td> <td>2024-08-21</td>

View File

@ -170,7 +170,7 @@
<img class="logo" src="assets/logo.png" alt="logo"> <img class="logo" src="assets/logo.png" alt="logo">
<div class="title">systeminformation</div> <div class="title">systeminformation</div>
<div class="subtitle"><span id="typed"></span>&nbsp;</div> <div class="subtitle"><span id="typed"></span>&nbsp;</div>
<div class="version">New Version: <span id="version">5.23.5</span></div> <div class="version">New Version: <span id="version">5.23.6</span></div>
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button> <button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
</div> </div>
<div class="down"> <div class="down">
@ -212,7 +212,7 @@
<div class="title">Downloads last month</div> <div class="title">Downloads last month</div>
</div> </div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12"> <div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">722</div> <div class="numbers">782</div>
<div class="title">Dependents</div> <div class="title">Dependents</div>
</div> </div>
</div> </div>

View File

@ -1018,7 +1018,11 @@ function decodePiCpuinfo(lines) {
'13': '400', '13': '400',
'14': 'CM4', '14': 'CM4',
'15': 'CM4S', '15': 'CM4S',
'16': 'Internal use only',
'17': '5', '17': '5',
'18': 'CM5 (EMMC)',
'19': 'Internal use only',
'1a': 'CM5 (Lite)',
}; };
const revisionCode = getValue(lines, 'revision', ':', true); const revisionCode = getValue(lines, 'revision', ':', true);