首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于没有正确安装ads1115传感器conf文件,因此跳过了磷光管波勒。

由于没有正确安装ads1115传感器conf文件,因此跳过了磷光管波勒。
EN

Stack Overflow用户
提问于 2021-09-22 03:20:07
回答 1查看 213关注 0票数 0

我试图添加ads1115传感器到我的Rpi4-b板与Openbmc 2.8.0。我的配置几乎完成了,但是phophor-hwmon没有开始读取这些值。我参考了以下问题,并认为我的conf文件可能没有正确安装。然而,我不知道为什么它没有按预期安装,有人请给我这方面的建议。

我提到过:如何将传感器添加到OpenBMC?#3063 https://github.com/openbmc/openbmc/issues/3063

这是我查过的。

向dts添加ads1115

代码语言:javascript
运行
复制
ads1115@48 {
    compatible = "ti,ads1115";
    reg = <0x48>;
    status = "okay";
};

ADS1115驱动程序为dts中的设备加载,传感器开始工作。

代码语言:javascript
运行
复制
snipped lsmod output

root@raspberrypi4:/# lsmod
Module                  Size  Used by

ads1015                16384  0
raspberrypi_hwmon      16384  0
hwmon                  16384  2 ads1015,raspberrypi_hwmon
i2c_dev                20480  0

 root@raspberrypi4:/#

添加的设备存在于fsys

代码语言:javascript
运行
复制
root@raspberrypi4:/# ls -la /sys/firmware/devicetree/base/soc/i2c\@7e804000/ads1115\@48/*
-r--r--r--    1 root     root            11 Jan  1 00:02 /sys/firmware/devicetree/base/soc/i2c@7e804000/ads1115@48/compatible
-r--r--r--    1 root     root             8 Jan  1 00:02 /sys/firmware/devicetree/base/soc/i2c@7e804000/ads1115@48/name
-r--r--r--    1 root     root             4 Jan  1 00:02 /sys/firmware/devicetree/base/soc/i2c@7e804000/ads1115@48/reg
-r--r--r--    1 root     root             5 Jan  1 00:02 /sys/firmware/devicetree/base/soc/i2c@7e804000/ads1115@48/status
root@raspberrypi4:/#

of_node正确地指出了添加的设备

代码语言:javascript
运行
复制
root@raspberrypi4:/# cat /sys/class/hwmon/hwmon1/of_node/compatible
ti,ads1115

root@raspberrypi4:/# cat /sys/class/hwmon/hwmon1/of_node/name
ads1115

root@raspberrypi4:/# hexdump /sys/class/hwmon/hwmon1/of_node/reg
0000000 0000 4800
0000004

udevadm输出看起来没有问题,

代码语言:javascript
运行
复制
root@raspberrypi4:/# udevadm test /sys/class/hwmon/hwmon1
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/60-autosuspend-chromiumos.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-fido-id.rules
Reading rules file: /lib/udev/rules.d/60-input-id.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-sensor.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /lib/udev/rules.d/61-autosuspend-manual.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/70-hwmon.rules
Reading rules file: /lib/udev/rules.d/70-iio.rules
Reading rules file: /lib/udev/rules.d/70-joystick.rules
Reading rules file: /lib/udev/rules.d/70-leds.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-touchpad.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-obmc-console-uart.rules
Reading rules file: /etc/udev/rules.d/99-com.rules
/etc/udev/rules.d/99-com.rules:10 Invalid value "/bin/sh -c 'ALIASES=/proc/device-tree/aliases; if cmp -s $ALIASES/uart0 $ALIASES/serial0; then echo 0;elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then echo 1; else exit 1; fi'" for PROGRAM (char 58: invalid substitution type), ignoring, but please fix it.
/etc/udev/rules.d/99-com.rules:21 Invalid value "/bin/sh -c 'ALIASES=/proc/device-tree/aliases; if cmp -s $ALIASES/uart1 $ALIASES/serial0; then echo 0; elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then echo 1; else exit 1; fi '" for PROGRAM (char 58: invalid substitution type), ignoring, but please fix it.
Reading rules file: /lib/udev/rules.d/99-systemd.rules
Reading rules file: /etc/udev/rules.d/can.rules
Reading rules file: /etc/udev/rules.d/touchscreen.rules
DEVPATH=/devices/platform/soc/fe804000.i2c/i2c-1/1-0048/hwmon/hwmon1
OF_NAME=ads1115
OF_FULLNAME=/soc/i2c@7e804000/ads1115@48
OF_COMPATIBLE_0=ti,ads1115
OF_COMPATIBLE_N=1
ACTION=add
SUBSYSTEM=hwmon
USEC_INITIALIZED=761973935
run: '/usr/bin/start_hwmon.sh start /devices/platform/soc/fe804000.i2c/i2c-1/1-0048/hwmon/hwmon1 /soc/i2c@7e804000/ads1115@48'
Unload module index
Unloaded link configuration context.
root@raspberrypi4:/#

ads1115驱动程序创建其值为的文件。

从in0到in7都有8个通道。

代码语言:javascript
运行
复制
root@raspberrypi4:/sys/class/hwmon/hwmon1/device# ls
driver     in0_input  in2_input  in4_input  in6_input  modalias   of_node    subsystem
hwmon      in1_input  in3_input  in5_input  in7_input  name       power      uevent
root@raspberrypi4:/sys/class/hwmon/hwmon1/device#

没有将conf文件安装到右目录

代码语言:javascript
运行
复制
root@raspberrypi4:/etc/default/obmc# ls -la
drwxr-xr-x    3 root     root          1024 Sep 20  2021 .
drwxr-xr-x    4 root     root          1024 Sep 20  2021 ..
-rw-r--r--    1 root     root           165 Sep 17  2021 mapper
drwxr-xr-x    2 root     root          1024 Sep 20  2021 watchdog
root@raspberrypi4:/etc/default/obmc#

日志显示了“跳过”的日志

代码语言:javascript
运行
复制
root@raspberrypi4:/# journalctl | grep -i hwmon
Jan 01 00:00:05 raspberrypi4 systemd[1]: Created slice system-xyz.openbmc_project.Hwmon.slice.
Jan 01 00:00:05 raspberrypi4 systemd[1]: Condition check resulted in Phosphor Hwmon Poller being skipped.
Jan 01 00:00:05 raspberrypi4 systemd[1]: Condition check resulted in Phosphor Hwmon Poller being skipped.
root@raspberrypi4:/#

.Conf文件和BBappendfile

代码语言:javascript
运行
复制
yocto@yocto-VM:~/Rpi4-2.8.0/openbmc/meta-evb/meta-evb-raspberrypi/recipes-phosphor$ tree
.
    └── sensors
         ├── phosphor-hwmon
         │    └── obmc
         │         └── hwmon
         │             └── soc
         │                 └── i2c@7e804000
         │                     └── ads1115@48.conf
         └── phosphor-hwmon_%.bbappend


yocto@yocto-VM:~/Rpi4-2.8.0/openbmc/meta-evb/meta-evb-raspberrypi/recipes-phosphor$ cat sensors/phosphor-hwmon_%.bbappend 

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

CHIPS = "i2c@7e804000/ads1115@48"
ITEMSFMT = "soc/{0}.conf"

ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"

ENVS = "obmc/hwmon/{0}"
SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"


yocto@yocto-VM:~/Rpi4-2.8.0/openbmc/meta-evb/meta-evb-raspberrypi/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/soc/i2c@7e804000$ cat ads1115@48.conf 
LABEL_in4=cpu
WARNLO_in4=10
WARNHI_in4=270
CRITHI_in4=350
CRITLO_in4=0

根据我检查的内容,我认为设备被正确地定义为dts,并且驱动程序也相应地被加载。但是,没有按预期安装conf文件。我试着改变了几个参数,但没有起作用。现在,我不知道为什么没有安装conf文件。所以,我很感激有人对我的案子提出的建议。

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 06:09:52

检查SYSTEMD_ENVIRONMENT_FILE_${PN}的最终值可能会给您一些线索。..。实际上它只是给了我线索。这需要是:${PN}而不是_${PN}。约克托在大约6个月前改变了重写的语法,并且_语法没有解释它用于be.Change的方式-hwmon_%..bbappend文件中的SYSTEMD_ENVIRONMENT_FILE_${PN}SYSTEMD_ENVIRONMENT_FILE:${PN}的值。看起来不错。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69277768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档