From c73a08247fbad88c0b906dd00b2afe7d231cdfe2 Mon Sep 17 00:00:00 2001 From: Medad CChien Date: Thu, 18 Jun 2020 16:57:57 +0800 Subject: nuvoton-layer: recipes-connectivity: jsnbd: Support jsnbd for virtual media (From meta-phosphor rev: 204c9307ff7ec907aeee05d34f46e0f6b5d84bf9) Signed-off-by: Medad CChien Change-Id: Ie397415954d965a9457ccecb0dc8c8d164c7991d Signed-off-by: Andrew Geissler --- .../recipes-connectivity/jsnbd/jsnbd/state_hook | 68 ++++++++++++++++++++++ .../recipes-connectivity/jsnbd/jsnbd_git.bbappend | 9 +++ 2 files changed, 77 insertions(+) create mode 100755 meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd/state_hook create mode 100644 meta-phosphor/nuvoton-layer/recipes-connectivity/jsnbd/jsnbd_git.bbappend (limited to 'meta-phosphor/nuvoton-layer/recipes-connectivity') 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 " >&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 +} -- cgit v1.2.3