summaryrefslogtreecommitdiff
path: root/meta-google/recipes-google/kcs/gbmc-kcs-config.bb
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@linux.intel.com>2021-05-24 22:35:24 +0300
committerJason M. Bills <jason.m.bills@linux.intel.com>2021-05-24 22:35:24 +0300
commit0e0df451ae365f09d5c0c766b253f23de26901f2 (patch)
treedb4d7d3ce85e02ee01ad58a86ede02ac876aae77 /meta-google/recipes-google/kcs/gbmc-kcs-config.bb
parente370fd750e2821620ec427f26f8efab0069824ff (diff)
parent7e10dee74964afa47859704886128dd256acf854 (diff)
downloadopenbmc-0e0df451ae365f09d5c0c766b253f23de26901f2.tar.xz
Merge tag '0.52' of ssh://git-amr-1.devtools.intel.com:29418/openbmc-openbmc into update
Diffstat (limited to 'meta-google/recipes-google/kcs/gbmc-kcs-config.bb')
-rw-r--r--meta-google/recipes-google/kcs/gbmc-kcs-config.bb46
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-google/recipes-google/kcs/gbmc-kcs-config.bb b/meta-google/recipes-google/kcs/gbmc-kcs-config.bb
new file mode 100644
index 000000000..ca7110660
--- /dev/null
+++ b/meta-google/recipes-google/kcs/gbmc-kcs-config.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Configures KCS for a gBMC system"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+
+S = "${WORKDIR}"
+
+PROVIDES += "virtual-obmc-host-ipmi-hw"
+RPROVIDES_${PN} += "virtual-obmc-host-ipmi-hw"
+
+FILES_${PN} += "${systemd_system_unitdir}"
+RDEPENDS_${PN} += "google-kcsbridge"
+
+GBMC_KCS_DEV ?= ""
+
+def systemd_escape_char(c):
+ return '\\x{:x}'.format(ord(c))
+
+def systemd_escape(unit):
+ import string
+ ret = ''
+ if len(unit) > 0 and unit[0] == '.':
+ ret += systemd_escape_char(unit[0])
+ unit = unit[1:]
+ for c in unit:
+ if c == '/':
+ ret += '-'
+ elif c not in {*string.ascii_letters, *string.digits, ':', '_', '.'}:
+ ret += systemd_escape_char(c)
+ else:
+ ret += c
+ return ret
+
+do_install_append() {
+ if [ -z '${GBMC_KCS_DEV}' ]; then
+ echo "Missing GBMC_KCS_DEV" >&2
+ exit 1
+ fi
+
+ wantdir=${D}${systemd_system_unitdir}/multi-user.target.wants
+ install -d -m0755 $wantdir
+ inst="${@systemd_escape(GBMC_KCS_DEV)}"
+ ln -sv ../kcsbridge@.service $wantdir/kcsbridge@$inst.service
+}