diff options
Diffstat (limited to 'meta-phosphor/nuvoton-layer/recipes-connectivity')
-rwxr-xr-x | meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd/state_hook | 68 | ||||
-rw-r--r-- | meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd_git.bbappend | 9 |
2 files changed, 77 insertions, 0 deletions
diff --git a/meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd/state_hook b/meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd/state_hook new file mode 100755 index 000000000..d317e2e9b --- /dev/null +++ b/meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd/state_hook @@ -0,0 +1,68 @@ +#!/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 "f0831000.udc" > UDC + ) + ;; +stop) + ( + cd $gadget_dir + 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-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd_git.bbappend b/meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd_git.bbappend new file mode 100644 index 000000000..3ccc08798 --- /dev/null +++ b/meta-phosphor/nuvoton-layer/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 +} |