diff --git a/Ultra96/packages/dpu-pynq/qemu.sh b/Ultra96/packages/dpu-pynq/qemu.sh new file mode 100755 index 0000000..cecdaae --- /dev/null +++ b/Ultra96/packages/dpu-pynq/qemu.sh @@ -0,0 +1,12 @@ +#! /bin/bash + +set -x +set -e + +# Pull in env vars like PYNQ_JUPYTER_NOTEBOOKS to this script +. /etc/environment +for f in /etc/profile.d/*.sh; do source $f; done + +pip3 install pynq-dpu==2.5.1 --no-build-isolation +cd $PYNQ_JUPYTER_NOTEBOOKS +pynq get-notebooks pynq-dpu -p . diff --git a/Ultra96/packages/ipycanvas/plugin.jupyterlab-settings b/Ultra96/packages/ipycanvas/plugin.jupyterlab-settings new file mode 100644 index 0000000..66a5d2e --- /dev/null +++ b/Ultra96/packages/ipycanvas/plugin.jupyterlab-settings @@ -0,0 +1,10 @@ +{ + // Extension Manager + // @jupyterlab/extensionmanager-extension:plugin + // Extension manager settings. + // ********************************************* + + // Disclaimed Status + // Whether the user understand that extensions managed through this interface run arbitrary code that may be dangerous + "disclaimed": true +} diff --git a/Ultra96/packages/ipycanvas/pre.sh b/Ultra96/packages/ipycanvas/pre.sh new file mode 100755 index 0000000..00ef37a --- /dev/null +++ b/Ultra96/packages/ipycanvas/pre.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -x +set -e + +target=$1 +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Enabled plugins for JupyterLab +sudo mkdir -p $target/root/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension +sudo cp $script_dir/plugin.jupyterlab-settings $target/root/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/ diff --git a/Ultra96/packages/ipycanvas/qemu.sh b/Ultra96/packages/ipycanvas/qemu.sh new file mode 100755 index 0000000..9eaf8fc --- /dev/null +++ b/Ultra96/packages/ipycanvas/qemu.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +set -x +set -e + +# Prep to install ipycanvas Jupyter Lab extension, it needs npm, PYNQ provides nodejs +#curl -L https://www.npmjs.org/install.sh | sh + +source /etc/profile.d/pynq_venv.sh + +# Install the package then install / compile it as a Jupyter Lab extension +pip3 install ipycanvas orjson +#jupyter labextension install @jupyter-widgets/jupyterlab-manager ipycanvas --no-build +#jupyter lab build +#jupyter labextension install ipycanvas diff --git a/Ultra96/packages/juliabrot/qemu.sh b/Ultra96/packages/juliabrot/qemu.sh new file mode 100755 index 0000000..32139a5 --- /dev/null +++ b/Ultra96/packages/juliabrot/qemu.sh @@ -0,0 +1,16 @@ +#! /bin/bash + +set -x +set -e + +# Pull in env vars like PYNQ_JUPYTER_NOTEBOOKS to this script +. /etc/environment +for f in /etc/profile.d/*.sh; do source $f; done + +cd $PYNQ_JUPYTER_NOTEBOOKS +git clone https://github.com/FredKellerman/PYNQ-juliabrot -b v1.0.3 +cd PYNQ-juliabrot +rm -rf .git +rm .gitignore +echo "https://github.com/FredKellerman/PYNQ-juliabrot" > github-url.txt +chown -R xilinx:xilinx ./ diff --git a/Ultra96/packages/update_pynq/qemu.sh b/Ultra96/packages/update_pynq/qemu.sh new file mode 100755 index 0000000..12a2cb5 --- /dev/null +++ b/Ultra96/packages/update_pynq/qemu.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +set -x +set -e + +# Upgrade from v3.0.0 & v3.0.1 to fix hierarchy detection for v3.0.x +python3 -m pip install pynqmetadata==0.1.2 diff --git a/Ultra96/petalinux_bsp_v1/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg b/Ultra96/petalinux_bsp_v1/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg index 27438e5..75d9241 100644 --- a/Ultra96/petalinux_bsp_v1/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg +++ b/Ultra96/petalinux_bsp_v1/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg @@ -50,6 +50,11 @@ CONFIG_USB_GADGETFS=y CONFIG_USB_STORAGE=y CONFIG_USB_UAS=y +# +# Add camera driver +# +CONFIG_VIDEO_AP1302=m + # # Enable SPI user mode driver # diff --git a/Ultra96/petalinux_bsp_v2/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg b/Ultra96/petalinux_bsp_v2/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg index 374a3c4..4e48324 100644 --- a/Ultra96/petalinux_bsp_v2/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg +++ b/Ultra96/petalinux_bsp_v2/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg @@ -51,6 +51,11 @@ CONFIG_USB_GADGETFS=y CONFIG_USB_STORAGE=y CONFIG_USB_UAS=y +# +# Add camera driver +# +CONFIG_VIDEO_AP1302=m + # # Enable SPI user mode driver # diff --git a/Ultra96/specs/Ultra96_v1.spec b/Ultra96/specs/Ultra96_v1.spec index e44c576..2f194ea 100755 --- a/Ultra96/specs/Ultra96_v1.spec +++ b/Ultra96/specs/Ultra96_v1.spec @@ -5,4 +5,4 @@ FPGA_MANAGER_Ultra96 := 1 # Note: for PYNQ v3.0 mraa & ump packages are out of date and deprecated (not installed) STAGE4_PACKAGES_Ultra96 := pynq usbgadget usb-eth0 pynq_selftest -STAGE4_PACKAGES_Ultra96 += xrt sensorconf-v1 python_pmbus u96v1_notebooks +STAGE4_PACKAGES_Ultra96 += xrt sensorconf-v1 python_pmbus u96v1_notebooks ipycanvas juliabrot diff --git a/Ultra96/specs/Ultra96_v2.spec b/Ultra96/specs/Ultra96_v2.spec index 20e9a5b..744a18c 100755 --- a/Ultra96/specs/Ultra96_v2.spec +++ b/Ultra96/specs/Ultra96_v2.spec @@ -5,4 +5,4 @@ FPGA_MANAGER_Ultra96 := 1 # Note: for PYNQ v3.0 mraa & ump packages are out of date and deprecated (not installed) STAGE4_PACKAGES_Ultra96 := pynq usbgadget usb-eth0 pynq_selftest -STAGE4_PACKAGES_Ultra96 += xrt sensorconf-v2 python_pmbus wilc3000 +STAGE4_PACKAGES_Ultra96 += xrt sensorconf-v2 python_pmbus wilc3000 ipycanvas juliabrot diff --git a/build96.sh b/build96.sh index d0ace9e..301626a 100755 --- a/build96.sh +++ b/build96.sh @@ -30,9 +30,9 @@ fi START_DIR=$PWD MAIN_DIR="$START_DIR/Ultra96" PYNQ_GIT_LOCAL_PATH="$START_DIR/PYNQ-git" -SD_IMAGE_FILE="$START_DIR/$BOARD_TYPE-3.0.0.img" -PYNQ_IMAGE_FILE="$PYNQ_GIT_LOCAL_PATH/sdbuild/output/Ultra96-3.0.0.img" -PYNQ_GIT_TAG=v3.0.0 +SD_IMAGE_FILE="$START_DIR/$BOARD_TYPE-3.0.1.img" +PYNQ_IMAGE_FILE="$PYNQ_GIT_LOCAL_PATH/sdbuild/output/Ultra96-3.0.1.img" +PYNQ_GIT_TAG=v3.0.1 PYNQ_GIT_REPO_URL=https://github.com/Xilinx/PYNQ ULTRA96_BOARDDIR=$START_DIR SPEC_DIR=specs @@ -43,10 +43,10 @@ OVERLAY_SEMA_NAME="_""$BOARD_TYPE""_" BSP_FILE_PATH=$MAIN_DIR BSP_FILE_URL=https://github.com/Avnet/Ultra96-PYNQ/releases/download/v3.0.0 ROOTFS_TMP_DIR="$START_DIR/rootfs_tmp" -ROOTFS_ZIP_FILE=jammy.aarch64.3.0.0.tar.gz -PREBUILT_IMAGE_ZIP_FILE=pynq-3.0.0.tar.gz -ROOTFS_IMAGE_FILE_URL=https://www.xilinx.com/bin/public/openDownload?filename=jammy.aarch64.3.0.0.tar.gz -PREBUILT_IMAGE_FILE_URL=https://github.com/Xilinx/PYNQ/releases/download/v3.0.0/pynq-3.0.0.tar.gz +ROOTFS_ZIP_FILE=jammy.aarch64.3.0.1.tar.gz +PREBUILT_IMAGE_ZIP_FILE=pynq-3.0.1.tar.gz +ROOTFS_IMAGE_FILE_URL=https://bit.ly/pynq_aarch64_v3_0_1 +PREBUILT_IMAGE_FILE_URL=https://github.com/Xilinx/PYNQ/releases/download/v3.0.1/pynq-3.0.1.tar.gz ################################## # Fetching and compiling #