meta-hpe: Add jsnbd and and busybox config

Signed-off-by: Mike Garrett <mike.garrett@hpe.com>
Change-Id: If827b0d5e66a403942b28692ca738c99adc9da72
diff --git a/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd/state_hook b/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd/state_hook
new file mode 100755
index 0000000..f283263
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd/state_hook
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]
+then
+    echo "usage: $0 <start|stop> <config>" >&2
+    exit 1
+fi
+
+action=$1
+config=$2
+
+gadget_name=mass-storage
+gadget_dir=/sys/kernel/config/usb_gadget/$gadget_name
+
+case "$config" in
+0)
+    nbd_device=/dev/nbd0
+    ;;
+*)
+    echo "invalid config $config" >&2
+    exit 1
+    ;;
+esac
+
+set -ex
+
+case "$action" in
+start)
+    mkdir -p $gadget_dir
+    (
+    cd $gadget_dir
+    # http://www.linux-usb.org/usb.ids
+    #    |-> 1d6b  Linux Foundation
+    #          |-> 0104  Multifunction Composite Gadget
+    echo "0x1d6b" > idVendor
+    echo "0x0104" > idProduct
+    mkdir -p strings/0x409
+    echo "OpenBMC" > strings/0x409/manufacturer
+    echo "Virtual Media Device" > strings/0x409/product
+    mkdir -p configs/c.1/strings/0x409
+    echo "config 1" > configs/c.1/strings/0x409/configuration
+    mkdir -p functions/mass_storage.usb0
+    ln -s functions/mass_storage.usb0 configs/c.1
+    echo 1 > functions/mass_storage.usb0/lun.0/removable
+    echo 1 > functions/mass_storage.usb0/lun.0/ro
+    echo 0 > functions/mass_storage.usb0/lun.0/cdrom
+    echo $nbd_device > functions/mass_storage.usb0/lun.0/file
+    echo "80402000.udc" > UDC
+    )
+    ;;
+stop)
+    (
+    cd $gadget_dir
+    echo "" > UDC
+    rm configs/c.1/mass_storage.usb0
+    rmdir functions/mass_storage.usb0
+    rmdir configs/c.1/strings/0x409
+    rmdir configs/c.1
+    rmdir strings/0x409
+    )
+    rmdir $gadget_dir
+    ;;
+*)
+    echo "invalid action $action" >&2
+    exit 1
+esac
+
+exit 0
+
diff --git a/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd_git.bbappend b/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd_git.bbappend
new file mode 100644
index 0000000..1061a92
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-connectivity/jsnbd/jsnbd_git.bbappend
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+FILES:${PN} += "${sysconfdir}/nbd-proxy/state"
+SRC_URI += "file://state_hook"
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/nbd-proxy/
+    install -m 0755 ${WORKDIR}/state_hook ${D}${sysconfdir}/nbd-proxy/state
+}
diff --git a/meta-hpe/meta-gxp/recipes-core/busybox/busybox/FEATURE_FANCY_HEAD.cfg b/meta-hpe/meta-gxp/recipes-core/busybox/busybox/FEATURE_FANCY_HEAD.cfg
new file mode 100644
index 0000000..16017ea
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-core/busybox/busybox/FEATURE_FANCY_HEAD.cfg
@@ -0,0 +1 @@
+CONFIG_FEATURE_FANCY_HEAD=y
diff --git a/meta-hpe/meta-gxp/recipes-core/busybox/busybox_%.bbappend b/meta-hpe/meta-gxp/recipes-core/busybox/busybox_%.bbappend
new file mode 100644
index 0000000..a1d6384
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-core/busybox/busybox_%.bbappend
@@ -0,0 +1,2 @@
+SRC_URI += "file://FEATURE_FANCY_HEAD.cfg"
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"