]> git.ipfire.org Git - thirdparty/collectd.git/commit
mmc: add more vendor specific and generic data sources (#4006)
authorLeonard Göhrs <leonard@goehrs.eu>
Fri, 3 Jun 2022 13:31:54 +0000 (15:31 +0200)
committerGitHub <noreply@github.com>
Fri, 3 Jun 2022 13:31:54 +0000 (15:31 +0200)
commit2f15c7048f0426a4bd9b354662eecd5839c80a09
treeb62236a8d54bdd5fde00b538644d298834ef0094
parentc268154ba489580dcce33552263cdea488b6eb4f
mmc: add more vendor specific and generic data sources (#4006)

* mmc plugin: integrate into configure.ac

The mmc plugin is not fully integrated in the configure.ac.
Change that.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: Skip mmc paths in /sys that start with a '.' (like "." and "..")

The plugin tries to (and obiously fails to) use "." and "..", that come out of
listdir, as mmc devices.
Filter these two out by skipping hidden files/directories.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: read standard eMMC 5.0 health metrics

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: remove type-name defines

These defines can become confusing, especially when combined with the defines
for attribute names in the sysfs. This will only get worse when more
vendor-specific metrics are supported.
Remove the defines and use the type names directly.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: remove sysfs-attribute defines

These defines are used only once or twice and do not help with readability.
Replace them with just the raw strings.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: port to libudev

While using the sysfs directly works fine for the swissbit and generic eMMC
driver it does not scale well to other vendor-specific interfaces where one has
to open the block device in /dev to perform ioctls.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: add micron eMMC support

While this patch was only tested with a single product (MTFC16GAPALBH) I am
fairly confident that it will generalize to others as well, as micron
themselves ship a single tool[1], which this patch uses as a reference, to read
similar info from all of their eMMCs.

This patch also increases the maximum value of mmc_bad_blocks to infinity,
as it can be any 16 bit integer for micron eMMC but could be even larger for
other vendors.

[1]: https://github.com/arcus-smart-home/arcushubos/blob/master/meta-iris/recipes-core/iris-utils/files/emmcparm_1.0.c

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
* mmc plugin: add sandisk eMMC support

While this patch was only tested with a single product (SDINBDG4-8G), I am
fairly confident that it should generalize to other devices as well,
as the current product portfolio on their website looks very similar to the one
I tested and new devies will likely use a Western Digital manufacturer ID.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
Makefile.am
README
configure.ac
src/mmc.c
src/types.db