Initial commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "Phosphor zone events definition default data"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://events.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
install -D events.yaml ${D}${control_datadir}/events.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${control_datadir}/events.yaml"
|
||||
@@ -0,0 +1,2 @@
|
||||
#Default zone events definition YAML - empty.
|
||||
#For format, see documentation in fan control code repository example yaml.
|
||||
@@ -0,0 +1,23 @@
|
||||
SUMMARY = "Generate fan control YAML from the MRW"
|
||||
LICENSE = "Apache-2.0"
|
||||
DEPENDS = "mrw-native mrw-perl-tools-native"
|
||||
PROVIDES += "virtual/phosphor-fan-control-fan-config"
|
||||
PR = "r1"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
inherit mrw-xml
|
||||
|
||||
do_compile() {
|
||||
${bindir}/perl-native/perl \
|
||||
${bindir}/gen_fan_zone_yaml.pl \
|
||||
-i ${STAGING_DIR_NATIVE}${mrw_datadir}/${MRW_XML} \
|
||||
-o fans.yaml
|
||||
}
|
||||
do_install() {
|
||||
install -D fans.yaml ${D}${control_datadir}/fans.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${control_datadir}/fans.yaml"
|
||||
@@ -0,0 +1,18 @@
|
||||
SUMMARY = "Phosphor fan definition example data"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PROVIDES += "virtual/phosphor-fan-control-fan-config"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://fans.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
install -D fans.yaml ${D}${control_datadir}/fans.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${control_datadir}/fans.yaml"
|
||||
@@ -0,0 +1,2 @@
|
||||
#Default fan definition YAML - empty.
|
||||
#For format, see documentation in fan control code repository example yaml.
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "Phosphor zone conditions definition default data"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://zone_conditions.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
install -D zone_conditions.yaml ${D}${control_datadir}/zone_conditions.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${control_datadir}/zone_conditions.yaml"
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
#Default zone conditions definition YAML - empty.
|
||||
#For format, see documentation in fan control code repository example yaml.
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "Phosphor fan zone definition default data"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://zones.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
install -D zones.yaml ${D}${control_datadir}/zones.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${control_datadir}/zones.yaml"
|
||||
@@ -0,0 +1,2 @@
|
||||
#Default fan zone definition YAML - empty.
|
||||
#For format, see documentation in fan control code repository example yaml.
|
||||
@@ -0,0 +1,18 @@
|
||||
SUMMARY = "Phosphor fan monitor definition default data"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://monitor.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${monitor_datadir}
|
||||
install -D monitor.yaml ${D}${monitor_datadir}/monitor.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${monitor_datadir}/monitor.yaml"
|
||||
@@ -0,0 +1,2 @@
|
||||
#Default fan monitor definition YAML - empty.
|
||||
#For format, see documentation in fan monitor code repository example yaml.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Provides the config file for the phosphor-fan-presence application.
|
||||
# The default config file is empty. To provide a real one,
|
||||
# append this recipe in a layer, add:
|
||||
# FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
|
||||
# and provide a config file.
|
||||
SUMMARY = "Config file for phosphor-fan-presence"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
PROVIDES += "virtual/phosphor-fan-presence-config"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "file://config.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
|
||||
do_install() {
|
||||
install -D config.yaml ${D}${presence_datadir}/config.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${presence_datadir}/config.yaml"
|
||||
@@ -0,0 +1,3 @@
|
||||
# This file is a stub. Consult
|
||||
# https://github.com/openbmc/phosphor-fan-presence
|
||||
# for file format description and examples.
|
||||
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "Generate fan presence YAML from the MRW"
|
||||
LICENSE = "Apache-2.0"
|
||||
DEPENDS = "mrw-native mrw-perl-tools-native"
|
||||
PROVIDES += "virtual/phosphor-fan-presence-config"
|
||||
PR = "r1"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
inherit allarch
|
||||
inherit phosphor-fan
|
||||
inherit mrw-xml
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${presence_datadir}
|
||||
install -d ${DEST}
|
||||
${bindir}/perl-native/perl \
|
||||
${bindir}/gen_presence_yaml.pl \
|
||||
-i ${STAGING_DIR_NATIVE}${mrw_datadir}/${MRW_XML} \
|
||||
-o ${DEST}/config.yaml
|
||||
}
|
||||
|
||||
FILES:${PN} += "${presence_datadir}/config.yaml"
|
||||
@@ -0,0 +1,5 @@
|
||||
HOMEPAGE = "https://github.com/openbmc/phosphor-fan-presence"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
||||
SRC_URI += "git://github.com/openbmc/phosphor-fan-presence;branch=master;protocol=https"
|
||||
SRCREV = "fc4be0d60af0567942b93f74dd26ddb4add9e262"
|
||||
@@ -0,0 +1,156 @@
|
||||
SUMMARY = "Phosphor Fan"
|
||||
DESCRIPTION = "Phosphor fan provides a set of fan monitoring and \
|
||||
control applications."
|
||||
# Common build dependencies
|
||||
DEPENDS += "${PYTHON_PN}-pyyaml-native"
|
||||
DEPENDS += "${PYTHON_PN}-mako-native"
|
||||
DEPENDS += "sdbusplus"
|
||||
DEPENDS += "${PYTHON_PN}-sdbus++-native"
|
||||
DEPENDS += "sdeventplus"
|
||||
DEPENDS += "gpioplus"
|
||||
DEPENDS += "phosphor-logging"
|
||||
DEPENDS += "libevdev"
|
||||
DEPENDS += "nlohmann-json"
|
||||
DEPENDS += "cli11"
|
||||
PACKAGECONFIG ?= "presence control monitor sensor-monitor"
|
||||
# The control, monitor, and presence apps can either be JSON or YAML driven.
|
||||
PACKAGECONFIG[json] = "-Djson-config=enabled, -Djson-config=disabled"
|
||||
# --------------------------------------
|
||||
# ${PN}-presence-tach specific configuration
|
||||
PACKAGECONFIG[presence] = "-Dpresence-service=enabled \
|
||||
-Dmachine-name=${PKG_DEFAULT_MACHINE} \
|
||||
-Dpresence-config=${STAGING_DIR_HOST}${presence_datadir}/config.yaml, \
|
||||
-Dpresence-service=disabled, \
|
||||
virtual/phosphor-fan-presence-config \
|
||||
, \
|
||||
"
|
||||
# --------------------------------------
|
||||
# ${PN}-control specific configuration
|
||||
PACKAGECONFIG[control] = "-Dcontrol-service=enabled \
|
||||
-Dmachine-name=${PKG_DEFAULT_MACHINE} \
|
||||
-Dfan-def-yaml-file=${STAGING_DIR_HOST}${control_datadir}/fans.yaml \
|
||||
-Dfan-zone-yaml-file=${STAGING_DIR_HOST}${control_datadir}/zones.yaml \
|
||||
-Dzone-events-yaml-file=${STAGING_DIR_HOST}${control_datadir}/events.yaml \
|
||||
-Dzone-conditions-yaml-file=${STAGING_DIR_HOST}${control_datadir}/zone_conditions.yaml, \
|
||||
-Dcontrol-service=disabled, \
|
||||
virtual/phosphor-fan-control-fan-config \
|
||||
phosphor-fan-control-zone-config \
|
||||
phosphor-fan-control-events-config \
|
||||
phosphor-fan-control-zone-conditions-config \
|
||||
, \
|
||||
"
|
||||
# --------------------------------------
|
||||
# ${PN}-monitor specific configuration
|
||||
PACKAGECONFIG[monitor] = "-Dmonitor-service=enabled \
|
||||
-Dmachine-name=${PKG_DEFAULT_MACHINE} \
|
||||
-Dfan-monitor-yaml-file=${STAGING_DIR_HOST}${monitor_datadir}/monitor.yaml, \
|
||||
-Dmonitor-service=disabled, \
|
||||
phosphor-fan-monitor-config \
|
||||
, \
|
||||
"
|
||||
# --------------------------------------
|
||||
# phosphor-cooling-type specific configuration
|
||||
PACKAGECONFIG[cooling-type] = "-Dcooling-type-service=enabled,-Dcooling-type-service=disabled,,"
|
||||
# --------------------------------------
|
||||
# ${PN}-sensor-monitor specific configuration
|
||||
PACKAGECONFIG[sensor-monitor] = "-Dsensor-monitor-service=enabled,-Dsensor-monitor-service=disabled"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
PR = "r1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# OBMC_CHASSIS_ZERO_ONLY: hacky way to fix the templates until
|
||||
# openbmc/phosphor-fan-presence#26 is resolved. This should likely be
|
||||
# returned to OBMC_CHASSIS_INSTANCES.
|
||||
OBMC_CHASSIS_ZERO_ONLY = "0"
|
||||
|
||||
SYSTEMD_PACKAGES = "${FAN_PACKAGES}"
|
||||
SYSTEMD_SERVICE:${PN}-presence-tach += "${TMPL_TACH}"
|
||||
SYSTEMD_LINK:${PN}-presence-tach += "${@compose_list(d, 'FMT_TACH', 'OBMC_CHASSIS_ZERO_ONLY')}"
|
||||
# JSON mode also gets linked into multi-user
|
||||
SYSTEMD_LINK:${PN}-presence-tach += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
compose_list(d, 'FMT_TACH_MUSR', 'OBMC_CHASSIS_ZERO_ONLY'), '', d)}"
|
||||
SYSTEMD_SERVICE:${PN}-control += "${TMPL_CONTROL}"
|
||||
SYSTEMD_SERVICE:${PN}-control += "${@bb.utils.contains('PACKAGECONFIG', 'json', '', '${TMPL_CONTROL_INIT}', d)}"
|
||||
# JSON: Linked to multi-user and poweron
|
||||
# YAML: Linked to fans-ready and fan control-init poweron
|
||||
SYSTEMD_LINK:${PN}-control += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
compose_list(d, 'FMT_CONTROL_MUSR', 'OBMC_CHASSIS_ZERO_ONLY'), \
|
||||
compose_list(d, 'FMT_CONTROL', 'OBMC_CHASSIS_ZERO_ONLY'), d)}"
|
||||
SYSTEMD_LINK:${PN}-control += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
compose_list(d, 'FMT_CONTROL_PWRON', 'OBMC_CHASSIS_ZERO_ONLY'), \
|
||||
compose_list(d, 'FMT_CONTROL_INIT', 'OBMC_CHASSIS_ZERO_ONLY'), d)}"
|
||||
SYSTEMD_SERVICE:${PN}-monitor += "${TMPL_MONITOR}"
|
||||
SYSTEMD_SERVICE:${PN}-monitor += "${@bb.utils.contains('PACKAGECONFIG', 'json', '', '${TMPL_MONITOR_INIT}', d)}"
|
||||
|
||||
# JSON: power on and multi-user links. YAML: fans-ready and fan monitor init links
|
||||
SYSTEMD_LINK:${PN}-monitor += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
compose_list(d, 'FMT_MONITOR_PWRON', 'OBMC_CHASSIS_ZERO_ONLY'), \
|
||||
compose_list(d, 'FMT_MONITOR_FANSREADY', 'OBMC_CHASSIS_ZERO_ONLY'), d)}"
|
||||
SYSTEMD_LINK:${PN}-monitor += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
compose_list(d, 'FMT_MONITOR_MUSR', 'OBMC_CHASSIS_ZERO_ONLY'), \
|
||||
compose_list(d, 'FMT_MONITOR_INIT', 'OBMC_CHASSIS_ZERO_ONLY'), d)}"
|
||||
SYSTEMD_SERVICE:sensor-monitor += "sensor-monitor.service"
|
||||
SYSTEMD_LINK:sensor-monitor += "../sensor-monitor.service:${MULTI_USR_TGT}.wants/sensor-monitor.service"
|
||||
|
||||
inherit meson pkgconfig python3native
|
||||
inherit obmc-phosphor-systemd
|
||||
inherit phosphor-fan
|
||||
|
||||
EXTRA_OEMESON:append = " -Dtests=disabled"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
FILES:${PN}-presence-tach = "${bindir}/phosphor-fan-presence-tach"
|
||||
# Package the JSON config files installed from the repo
|
||||
FILES:${PN}-presence-tach += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
'${datadir}/phosphor-fan-presence/presence/*', '', d)}"
|
||||
FILES:${PN}-control = "${bindir}/phosphor-fan-control"
|
||||
FILES:${PN}-control += "${bindir}/fanctl"
|
||||
# Package the JSON config files installed from the repo
|
||||
FILES:${PN}-control += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
'${datadir}/phosphor-fan-presence/control/*', '', d)}"
|
||||
FILES:${PN}-monitor = "${bindir}/phosphor-fan-monitor"
|
||||
# Package the JSON config files installed from the repo
|
||||
FILES:${PN}-monitor += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
|
||||
'${datadir}/phosphor-fan-presence/monitor/*', '', d)}"
|
||||
FILES:sensor-monitor += " ${bindir}/sensor-monitor"
|
||||
|
||||
require ${BPN}.inc
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
PKG_DEFAULT_MACHINE ??= "${MACHINE}"
|
||||
|
||||
# Package configuration
|
||||
FAN_PACKAGES = " \
|
||||
${PN}-presence-tach \
|
||||
${PN}-control \
|
||||
${PN}-monitor \
|
||||
${PN}-sensor-monitor \
|
||||
"
|
||||
PACKAGE_BEFORE_PN += "${FAN_PACKAGES}"
|
||||
MULTI_USR_TGT = "multi-user.target"
|
||||
TMPL_TACH = "phosphor-fan-presence-tach@.service"
|
||||
INSTFMT_TACH = "phosphor-fan-presence-tach@{0}.service"
|
||||
POWERON_TGT = "obmc-chassis-poweron@{0}.target"
|
||||
FMT_TACH = "../${TMPL_TACH}:${POWERON_TGT}.wants/${INSTFMT_TACH}"
|
||||
FMT_TACH_MUSR = "../${TMPL_TACH}:${MULTI_USR_TGT}.wants/${INSTFMT_TACH}"
|
||||
FAN_CONTROL_TGT = "obmc-fan-control-ready@{0}.target"
|
||||
TMPL_CONTROL = "phosphor-fan-control@.service"
|
||||
INSTFMT_CONTROL = "phosphor-fan-control@{0}.service"
|
||||
FMT_CONTROL = "../${TMPL_CONTROL}:${FAN_CONTROL_TGT}.requires/${INSTFMT_CONTROL}"
|
||||
FMT_CONTROL_MUSR = "../${TMPL_CONTROL}:${MULTI_USR_TGT}.wants/${INSTFMT_CONTROL}"
|
||||
FMT_CONTROL_PWRON = "../${TMPL_CONTROL}:${POWERON_TGT}.wants/${INSTFMT_CONTROL}"
|
||||
TMPL_CONTROL_INIT = "phosphor-fan-control-init@.service"
|
||||
INSTFMT_CONTROL_INIT = "phosphor-fan-control-init@{0}.service"
|
||||
FMT_CONTROL_INIT = "../${TMPL_CONTROL_INIT}:${POWERON_TGT}.wants/${INSTFMT_CONTROL_INIT}"
|
||||
TMPL_MONITOR = "phosphor-fan-monitor@.service"
|
||||
INSTFMT_MONITOR = "phosphor-fan-monitor@{0}.service"
|
||||
FMT_MONITOR_FANSREADY = "../${TMPL_MONITOR}:${FAN_CONTROL_TGT}.requires/${INSTFMT_MONITOR}"
|
||||
FMT_MONITOR_PWRON = "../${TMPL_MONITOR}:${POWERON_TGT}.wants/${INSTFMT_MONITOR}"
|
||||
FMT_MONITOR_MUSR = "../${TMPL_MONITOR}:${MULTI_USR_TGT}.wants/${INSTFMT_MONITOR}"
|
||||
TMPL_MONITOR_INIT = "phosphor-fan-monitor-init@.service"
|
||||
INSTFMT_MONITOR_INIT = "phosphor-fan-monitor-init@{0}.service"
|
||||
FMT_MONITOR_INIT = "../${TMPL_MONITOR_INIT}:${POWERON_TGT}.wants/${INSTFMT_MONITOR_INIT}"
|
||||
FAN_PACKAGES:append = "${@bb.utils.contains('PACKAGECONFIG', 'sensor-monitor', ' sensor-monitor', '', d)}"
|
||||
@@ -0,0 +1,51 @@
|
||||
# Each platform will need a service file that starts
|
||||
# at an appropriate time per system. For instance, if
|
||||
# your system relies on passive dbus for fans or other
|
||||
# sensors then it may be prudent to wait for all of them.
|
||||
SUMMARY = "Phosphor PID Fan Control"
|
||||
DESCRIPTION = "Fan Control"
|
||||
HOMEPAGE = "github.com/openbmc/phosphor-pid-control"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
DEPENDS += "autoconf-archive-native"
|
||||
DEPENDS += "sdbusplus"
|
||||
DEPENDS += "phosphor-dbus-interfaces"
|
||||
DEPENDS += "phosphor-logging"
|
||||
DEPENDS += "libevdev"
|
||||
DEPENDS += "nlohmann-json"
|
||||
DEPENDS += "cli11"
|
||||
DEPENDS += "boost"
|
||||
# We depend on this to be built first so we can build our providers.
|
||||
DEPENDS += "phosphor-ipmi-host"
|
||||
SRCREV = "796f06dc6f0e8161ee9ecf085443c1ae0dc45216"
|
||||
PV = "0.1+git${SRCPV}"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/phosphor-pid-control;branch=master;protocol=https"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SERVICE_FILE = "phosphor-pid-control.service"
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "${SERVICE_FILE}"
|
||||
|
||||
inherit meson pkgconfig
|
||||
inherit obmc-phosphor-ipmiprovider-symlink
|
||||
inherit systemd
|
||||
|
||||
EXTRA_OEMESON = " \
|
||||
-Dtests=disabled \
|
||||
-Dsystemd_target="multi-user.target" \
|
||||
"
|
||||
|
||||
FILES:${PN} = "${bindir}/swampd ${bindir}/setsensor"
|
||||
# The following installs the OEM IPMI handler for the fan controls.
|
||||
FILES:${PN}:append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
|
||||
FILES:${PN}:append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
|
||||
FILES:${PN}:append = " ${libdir}/net-ipmid/lib*${SOLIBS}"
|
||||
FILES:${PN}-dev:append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
|
||||
|
||||
HOSTIPMI_PROVIDER_LIBRARY += "libmanualcmds.so"
|
||||
config_datadir = "${datadir}/swampd/"
|
||||
# config_path is the location swampd expects to find a json configuration.
|
||||
# the file is expected to be named config.json
|
||||
config_path = "${config_datadir}config.json"
|
||||
Reference in New Issue
Block a user