From 9a293641b9abf9e4fca34f46a2de781f50847da9 Mon Sep 17 00:00:00 2001
From: "Westergreen, Dalon" <dalon.westergreen@intel.com>
Date: Wed, 29 Mar 2017 15:41:36 -0700
Subject: Initial commit of de10-nano recipes

Please note that this is purely for development.  Only superficial
efforts have been made to resolve security concerns, and it should
be noted that the board ships with an EMPTY ROOT PASSWORD and support
for root login via ssh.  This allows passwordless access to the board
via ssh.

recipes-bsp/u-boot:
Contains the uboot 2017.03rc2 recipe and patches to support the
de10-nano board

recipes-connectivity/avahi:
bbappend to remove unwanted packages

recipes-connectivity/bluez:
bbappend to add --compat to the bluetooth service to support legacy
SDP APIs

recipes-connectivity/openssh:
bbappend to add a custom sshd_config

recipes-core/base-files:
bbappend to customize fstab and inputrc

recipes-core/imagemagick:
bbappend to change build configuration for the de10-nano board

recipes-core/packagegroups:
bbappend to remove an unwanted package

recipes-core/webkit:
bbappend to remove support for opengl

recipes-demo:
Various demo applications

recipes-devtools:
MRAA and UPM recipes

recipes-images/angstrom/de10-nano-image.bb:
DE10-Nano image definition

recipes-kernel/de10-nano-linux-firmware:
FPGA related firmware required for fpga configuration and devicetree
overlay support

recipes-kernel/linux:
bbappend to customize configuration of linux kernel as well as patch
in the de10-nano devicetree

recipes-misc:
various initialization and systemd scripts

recipes-qt/qt5:
bbappend to modify qt build options

recipes-support/neon:
bbappend to remove unwanted package

recipes-support/upower:
bbappend to remove unwanted package

recipes-webserver:
webserver configuration and webcontent for board hostedweb portal

recipes-xfce/thunar-volman:
bbappend to remove unwanted package

recipes-xfce/xfce-pointers:
add configuration so that xfce does not use the adxl input as a mouse

recipes-xfce/xfce4-settings:
bbappend to remove unwanted package

Signed-off-by: Westergreen, Dalon <dalon.westergreen@intel.com>
---
 .../de10-nano-fpga-init/de10-nano-fpga-init.bb     | 37 +++++++++++++
 .../files/de10-nano-fpga-init.service              |  9 ++++
 .../files/de10-nano-fpga-init.sh                   | 56 +++++++++++++++++++
 .../de10-nano-fpga-leds/de10-nano-fpga-leds.bb     | 37 +++++++++++++
 .../files/de10-nano-fpga-leds.service              | 10 ++++
 .../files/de10-nano-fpga-leds.sh                   | 34 ++++++++++++
 .../de10-nano-synergy-init.bb                      | 31 +++++++++++
 .../files/de10-nano-synergy-init.service           | 12 +++++
 .../de10-nano-usb-gadget/de10-nano-usb-gadget.bb   | 63 ++++++++++++++++++++++
 .../files/de10-nano-gadget-init.service            | 10 ++++
 .../files/de10-nano-gadget-init.sh                 | 10 ++++
 .../de10-nano-usb-gadget/files/udhcpd.conf         |  5 ++
 .../de10-nano-x11vnc-init/de10-nano-x11vnc-init.bb | 36 +++++++++++++
 .../files/de10-nano-x11vnc-init.service            |  9 ++++
 .../files/de10-nano-x11vnc-init.sh                 | 29 ++++++++++
 .../de10-nano-xfce-init/de10-nano-xfce-init.bb     | 32 +++++++++++
 .../files/de10-nano-xfce-init.service              | 10 ++++
 17 files changed, 430 insertions(+)
 create mode 100644 recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb
 create mode 100644 recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service
 create mode 100755 recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh
 create mode 100644 recipes-misc/de10-nano-fpga-leds/de10-nano-fpga-leds.bb
 create mode 100644 recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.service
 create mode 100755 recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.sh
 create mode 100644 recipes-misc/de10-nano-synergy-init/de10-nano-synergy-init.bb
 create mode 100644 recipes-misc/de10-nano-synergy-init/files/de10-nano-synergy-init.service
 create mode 100644 recipes-misc/de10-nano-usb-gadget/de10-nano-usb-gadget.bb
 create mode 100644 recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.service
 create mode 100644 recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.sh
 create mode 100644 recipes-misc/de10-nano-usb-gadget/files/udhcpd.conf
 create mode 100644 recipes-misc/de10-nano-x11vnc-init/de10-nano-x11vnc-init.bb
 create mode 100644 recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.service
 create mode 100644 recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.sh
 create mode 100644 recipes-misc/de10-nano-xfce-init/de10-nano-xfce-init.bb
 create mode 100644 recipes-misc/de10-nano-xfce-init/files/de10-nano-xfce-init.service

(limited to 'recipes-misc')

diff --git a/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb b/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb
new file mode 100644
index 0000000..d7fad4d
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb
@@ -0,0 +1,37 @@
+SUMMARY = "DE10-Nano FPGA Initialization"
+DESCRIPTION = "Scripts to initialize the FPGA and its peripherals using devicetree overlays."
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PR = "r0"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+PV = "1.0${PR}"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "file://de10-nano-fpga-init.service \
+           file://de10-nano-fpga-init.sh \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/*.sh ${D}${bindir}
+}
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-network = "${base_libdir}/systemd/system/de10-nano-fpga-init.service \
+                       ${bindir}/de10-nano-fpga-init.sh"
+
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-fpga-init.service"
diff --git a/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service
new file mode 100644
index 0000000..6a6b19a
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Start FPGA init
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/de10-nano-fpga-init.sh
+
+[Install]
+WantedBy=basic.target
diff --git a/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh
new file mode 100755
index 0000000..6e1a154
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# The MIT License (MIT)                                                        
+# Copyright (c) 2016 Intel Corporation                                         
+#                                                                              
+# Permission is hereby granted, free of charge, to any person obtaining a copy 
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights 
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell    
+# copies of the Software, and to permit persons to whom the Software is        
+# furnished to do so, subject to the following conditions:                     
+#                                                                              
+# The above copyright notice and this permission notice shall be included in   
+# all copies or substantial portions of the Software.                          
+#                                                                              
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR   
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,     
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER       
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN    
+# THE SOFTWARE.                                                                
+#  
+
+
+CONFIGFS_DIR=/sys/kernel/config/device-tree/overlays
+
+BOARD_MODEL=$(cat /proc/device-tree/model)
+
+# Checks to ensure that we have DT overlay support                              
+if [ ! -e "$CONFIGFS_DIR" ]; then                       
+        echo "Error: Device Tree Overlay not supported"                         
+        exit -1                                                                 
+fi 
+
+DTBO_NAME=""
+case "$BOARD_MODEL" in
+	"Terasic DE-0(Atlas)")
+		DTBO_NAME="de0-nano.dtbo"
+	;;
+	"Terasic DE10-Nano")
+		DTBO_NAME="de10-nano.dtbo"
+	;;
+	*)
+		echo "NO BOARD MODEL MATCH"
+		exit -1
+	;;	
+esac
+
+if [ ! -e /lib/firmware/$DTBO_NAME ]; then
+	echo "$DTBO_NAME file not found"
+	exit -1
+fi
+
+mkdir $CONFIGFS_DIR/$DTBO_NAME
+echo $DTBO_NAME > $CONFIGFS_DIR/$DTBO_NAME/path
diff --git a/recipes-misc/de10-nano-fpga-leds/de10-nano-fpga-leds.bb b/recipes-misc/de10-nano-fpga-leds/de10-nano-fpga-leds.bb
new file mode 100644
index 0000000..e38a2fa
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-leds/de10-nano-fpga-leds.bb
@@ -0,0 +1,37 @@
+SUMMARY = "DE10-Nano FPGA LED service"
+DESCRIPTION = "Script to one shot FPGA LEDs after FPGA load."
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PR = "r0"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PV = "1.0${PR}"
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "file://de10-nano-fpga-leds.service \
+           file://de10-nano-fpga-leds.sh \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/*.sh ${D}${bindir}
+}
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN} = "${base_libdir}/systemd/system/de10-nano-fpga-leds.service \
+                       ${bindir}/de10-nano-fpga-leds.sh"
+
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-fpga-leds.service"
diff --git a/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.service b/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.service
new file mode 100644
index 0000000..9f4f94e
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Start FPGA LEDs
+After=de10-nano-fpga-init.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/de10-nano-fpga-leds.sh
+
+[Install]
+WantedBy=basic.target
diff --git a/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.sh b/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.sh
new file mode 100755
index 0000000..073474e
--- /dev/null
+++ b/recipes-misc/de10-nano-fpga-leds/files/de10-nano-fpga-leds.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# The MIT License (MIT)                                                        
+# Copyright (c) 2016 Intel Corporation                                         
+#                                                                              
+# Permission is hereby granted, free of charge, to any person obtaining a copy 
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights 
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell    
+# copies of the Software, and to permit persons to whom the Software is        
+# furnished to do so, subject to the following conditions:                     
+#                                                                              
+# The above copyright notice and this permission notice shall be included in   
+# all copies or substantial portions of the Software.                          
+#                                                                              
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR   
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,     
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER       
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN    
+# THE SOFTWARE.                                                                
+#  
+sleep 5
+CLASS_LEDS_DIR=/sys/class/leds
+
+for i in $(ls -d $CLASS_LEDS_DIR/fpga_led*); do
+	echo oneshot > $i/trigger
+done
+
+for i in $(ls -d $CLASS_LEDS_DIR/fpga_led*); do
+	echo 1 > $i/shot
+	sleep 1
+done
diff --git a/recipes-misc/de10-nano-synergy-init/de10-nano-synergy-init.bb b/recipes-misc/de10-nano-synergy-init/de10-nano-synergy-init.bb
new file mode 100644
index 0000000..c08a74d
--- /dev/null
+++ b/recipes-misc/de10-nano-synergy-init/de10-nano-synergy-init.bb
@@ -0,0 +1,31 @@
+SUMMARY = "DE-Nano initialize synergy client"
+DESCRIPTION = "Scripts to start synergy client"
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PR = "r0"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+PV = "1.0${PR}"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "file://de10-nano-synergy-init.service \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+}
+
+FILES_${PN} = "${base_libdir}/systemd/system/de10-nano-synergy-init.service \
+               ${sysconfdir}/systemd/ \
+              "
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-synergy-init.service"
diff --git a/recipes-misc/de10-nano-synergy-init/files/de10-nano-synergy-init.service b/recipes-misc/de10-nano-synergy-init/files/de10-nano-synergy-init.service
new file mode 100644
index 0000000..ccea7d7
--- /dev/null
+++ b/recipes-misc/de10-nano-synergy-init/files/de10-nano-synergy-init.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Start synergy client
+After=de10-nano-xfce-init.service systemd-networkd-wait-online.service
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/synergyc --restart --daemon 192.168.7.5
+Restart=always
+RestartSec=5
+
+[Install]
+WantedBy=basic.target
diff --git a/recipes-misc/de10-nano-usb-gadget/de10-nano-usb-gadget.bb b/recipes-misc/de10-nano-usb-gadget/de10-nano-usb-gadget.bb
new file mode 100644
index 0000000..9c09c00
--- /dev/null
+++ b/recipes-misc/de10-nano-usb-gadget/de10-nano-usb-gadget.bb
@@ -0,0 +1,63 @@
+SUMMARY = "DE-Nano Units to initialize usb gadgets"
+DESCRIPTION = "Scripts to start usb gadget for usb mass storage, ethernet, and serial interfaces"
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PR = "r0"
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+SRCREV = "e191339d28d6d26ea5a9a5aedf3c04047cc04963"
+PV = "1.0${PR}+git${SRCPV}"
+
+SRC_URI = "file://de10-nano-gadget-init.service \
+           file://udhcpd.conf \
+           file://de10-nano-gadget-init.sh \
+	   git://github.com/01org/de10-nano-drivers.git;protocol=https \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+
+	install -d ${D}${sysconfdir}
+	install -m 0644 ${WORKDIR}/*.conf ${D}${sysconfdir}
+
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/*.sh ${D}${bindir}
+
+	install -d ${D}${sysconfdir}/systemd/system/getty.target.wants
+	( cd ${D}${sysconfdir}/systemd/system/getty.target.wants && ln -s /lib/systemd/system/serial-getty@.service serial-getty@ttyGS0.service )
+
+	install -d ${D}${datadir}/${PN}
+	tar -xzvf ${WORKDIR}/git/fat_image.img.tgz -C ${D}${datadir}/${PN}
+}
+
+PACKAGES =+ "${PN}-network ${PN}-udhcpd"
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN} = "${base_libdir}/systemd/system/de10-nano-gadget-init.service \
+               ${sysconfdir}/systemd/ \
+               ${datadir}/${PN}/ \
+               ${datadir}/${PN}/fat_image.img \
+              "
+
+FILES_${PN}-network = "${base_libdir}/systemd/system/network-gadget-init.service \
+                       ${bindir}/de10-nano-gadget-init.sh \
+		       ${datadir}/${PN}"
+
+FILES_${PN}-udhcpd = "${sysconfdir}/udhcpd.conf"
+
+RRECOMMENDS_${PN} = "${PN}-network ${PN}-udhcpd"
+RREPLACES_${PN} = "${PN}-storage"
+
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-gadget-init.service"
diff --git a/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.service b/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.service
new file mode 100644
index 0000000..4e7f7de
--- /dev/null
+++ b/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Start usb mass storage gadget
+After=dev-mmcblk0p1.device
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/de10-nano-gadget-init.sh
+
+[Install]
+WantedBy=basic.target
diff --git a/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.sh b/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.sh
new file mode 100644
index 0000000..4bfa204
--- /dev/null
+++ b/recipes-misc/de10-nano-usb-gadget/files/de10-nano-gadget-init.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+modprobe g_multi file=/usr/share/de10-nano-usb-gadget/fat_image.img
+
+sleep 5
+
+rm /var/lib/misc/udhcpd.leases
+/sbin/ifconfig usb0 hw ether 00:07:ed:01:02:03
+/sbin/ifconfig usb0 192.168.7.1 netmask 255.255.255.0
+/usr/sbin/udhcpd -fS -I 192.168.7.1 /etc/udhcpd.conf
diff --git a/recipes-misc/de10-nano-usb-gadget/files/udhcpd.conf b/recipes-misc/de10-nano-usb-gadget/files/udhcpd.conf
new file mode 100644
index 0000000..78102f6
--- /dev/null
+++ b/recipes-misc/de10-nano-usb-gadget/files/udhcpd.conf
@@ -0,0 +1,5 @@
+start      192.168.7.5
+end        192.168.7.6
+interface  usb0
+max_leases 1
+option subnet 255.255.255.0
diff --git a/recipes-misc/de10-nano-x11vnc-init/de10-nano-x11vnc-init.bb b/recipes-misc/de10-nano-x11vnc-init/de10-nano-x11vnc-init.bb
new file mode 100644
index 0000000..47aea10
--- /dev/null
+++ b/recipes-misc/de10-nano-x11vnc-init/de10-nano-x11vnc-init.bb
@@ -0,0 +1,36 @@
+SUMMARY = "De Nano X11VNC startus"
+DESCRIPTION = "De Nano scripts to start x11vnc"
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PV = "1.0"
+PR = "r0"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "file://de10-nano-x11vnc-init.service \
+           file://de10-nano-x11vnc-init.sh \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/*.sh ${D}${bindir}
+
+}
+
+FILES_${PN} = "${base_libdir}/systemd/system/de10-nano-x11vnc-init.service \
+               ${sysconfdir}/systemd/ \
+               ${bindir}/de10-nano-x11vnc-init.sh \
+              "
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-x11vnc-init.service"
diff --git a/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.service b/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.service
new file mode 100644
index 0000000..a240722
--- /dev/null
+++ b/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=DE10-Nano X11VNC server
+Documentation=man:x11vnc
+
+[Service]
+ExecStart=/usr/bin/de10-nano-x11vnc-init.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.sh b/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.sh
new file mode 100644
index 0000000..94de046
--- /dev/null
+++ b/recipes-misc/de10-nano-x11vnc-init/files/de10-nano-x11vnc-init.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+X11VNC__SH_ENV="/home/root/.x11vnc_env"
+X11VNC_HOME="/home/root"
+
+# create this environment setup file for the shell in the x11vnc session
+[ -f "${X11VNC__SH_ENV}" ] || {
+cat <<EOF > "${X11VNC__SH_ENV}"
+
+# this file is created by the script ‘/usr/bin/de10-nano-x11vnc-init.sh’.
+#
+
+# this file is assigned to the ENV environment variable which is evaluated
+# when /bin/sh is executed.  We use this to setup environment variables for
+# that shell.
+
+export PS1='\u@\h:\w$ '
+EOF
+}
+
+# then execute this command to start the x11vnc session
+FD_PROG=/usr/bin/xfce4-session \
+/usr/bin/x11vnc \
+-loop \
+-repeat \
+-env ENV="${X11VNC__SH_ENV}" \
+-env HOME="${X11VNC_HOME}" \
+-display WAIT:cmd=FINDCREATEDISPLAY-Xvfb
+
diff --git a/recipes-misc/de10-nano-xfce-init/de10-nano-xfce-init.bb b/recipes-misc/de10-nano-xfce-init/de10-nano-xfce-init.bb
new file mode 100644
index 0000000..1725af3
--- /dev/null
+++ b/recipes-misc/de10-nano-xfce-init/de10-nano-xfce-init.bb
@@ -0,0 +1,32 @@
+SUMMARY = "DE10-Nano XFCE service"
+DESCRIPTION = "Start xfce after FPGA load."
+AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>"
+SECTION = "DE10-Nano"
+
+PR = "r0"
+
+inherit systemd
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PV = "1.0${PR}"
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "file://de10-nano-xfce-init.service \
+          "
+
+do_install() {
+	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+}
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN} = "${base_libdir}/systemd/system/de10-nano-xfce-init.service \
+		      "
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "de10-nano-xfce-init.service"
diff --git a/recipes-misc/de10-nano-xfce-init/files/de10-nano-xfce-init.service b/recipes-misc/de10-nano-xfce-init/files/de10-nano-xfce-init.service
new file mode 100644
index 0000000..e33d348
--- /dev/null
+++ b/recipes-misc/de10-nano-xfce-init/files/de10-nano-xfce-init.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Start XFCE session
+After=de10-nano-fpga-init.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/startxfce4
+
+[Install]
+WantedBy=basic.target
-- 
cgit v1.1