You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by me...@apache.org on 2023/01/24 23:29:49 UTC

[tvm] branch main updated: [docker][microTVM]Fix Zephyr 0.15.2 SDK installation and separate Zephyr python environment (#13829)

This is an automated email from the ASF dual-hosted git repository.

mehrdadh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new fd3f8035c9 [docker][microTVM]Fix Zephyr 0.15.2 SDK installation and separate Zephyr python environment (#13829)
fd3f8035c9 is described below

commit fd3f8035c94b31dbdbcce97864b1362ad254e4d1
Author: Mehrdad Hessar <mh...@octoml.ai>
AuthorDate: Tue Jan 24 15:29:42 2023 -0800

    [docker][microTVM]Fix Zephyr 0.15.2 SDK installation and separate Zephyr python environment (#13829)
    
    This PR fixes the SDK installation and separates SDK installation from ZephyrProject installation.
    Also it separates the Zephyr python environment to 3.8 which is the required version and it is different than tvm virtual env.
---
 docker/Dockerfile.ci_cortexm                |  7 +++++--
 docker/Dockerfile.ci_riscv                  |  8 ++++++--
 docker/install/ubuntu_install_zephyr.sh     | 30 +++++++++++++++++++++--------
 docker/install/ubuntu_install_zephyr_sdk.sh | 13 +++++++++----
 4 files changed, 42 insertions(+), 16 deletions(-)

diff --git a/docker/Dockerfile.ci_cortexm b/docker/Dockerfile.ci_cortexm
index 50062d9dea..a6ea27cf41 100644
--- a/docker/Dockerfile.ci_cortexm
+++ b/docker/Dockerfile.ci_cortexm
@@ -76,12 +76,15 @@ COPY install/ubuntu_install_sccache.sh /install/ubuntu_install_sccache.sh
 RUN bash /install/ubuntu_install_sccache.sh
 ENV PATH /opt/sccache:$PATH
 
-# Zephyr SDK deps
+# Zephyr Project
 COPY install/ubuntu_install_zephyr.sh /install/ubuntu_install_zephyr.sh
 COPY install/ubuntu_init_zephyr_project.sh /install/ubuntu_init_zephyr_project.sh
-COPY install/ubuntu_install_zephyr_sdk.sh /install/ubuntu_install_zephyr_sdk.sh
 RUN bash /install/ubuntu_install_zephyr.sh
 ENV ZEPHYR_BASE=/opt/zephyrproject/zephyr
+
+#Zephyr SDK
+COPY install/ubuntu_install_zephyr_sdk.sh /install/ubuntu_install_zephyr_sdk.sh
+RUN bash /install/ubuntu_install_zephyr_sdk.sh /opt/zephyr-sdk
 ENV PATH /opt/zephyr-sdk/sysroots/x86_64-pokysdk-linux/usr/bin:$PATH
 
 # NRF
diff --git a/docker/Dockerfile.ci_riscv b/docker/Dockerfile.ci_riscv
index a640e996c7..c115df423f 100644
--- a/docker/Dockerfile.ci_riscv
+++ b/docker/Dockerfile.ci_riscv
@@ -80,13 +80,17 @@ COPY install/ubuntu_install_sccache.sh /install/ubuntu_install_sccache.sh
 RUN bash /install/ubuntu_install_sccache.sh
 ENV PATH /opt/sccache:$PATH
 
-# Zephyr SDK deps
+# Zephyr Project
 COPY install/ubuntu_install_zephyr.sh /install/ubuntu_install_zephyr.sh
 COPY install/ubuntu_init_zephyr_project.sh /install/ubuntu_init_zephyr_project.sh
-COPY install/ubuntu_install_zephyr_sdk.sh /install/ubuntu_install_zephyr_sdk.sh
 RUN bash /install/ubuntu_install_zephyr.sh
 ENV ZEPHYR_BASE=/opt/zephyrproject/zephyr
 
+#Zephyr SDK
+COPY install/ubuntu_install_zephyr_sdk.sh /install/ubuntu_install_zephyr_sdk.sh
+RUN bash /install/ubuntu_install_zephyr_sdk.sh /opt/zephyr-sdk
+ENV PATH /opt/zephyr-sdk/sysroots/x86_64-pokysdk-linux/usr/bin:$PATH
+
 # Download RISC-V gcc toolchain (linux)
 COPY install/ubuntu_download_xuantie_gcc_linux.sh /install/ubuntu_download_xuantie_gcc_linux.sh
 RUN bash /install/ubuntu_download_xuantie_gcc_linux.sh /opt/riscv/riscv64-unknown-linux-gnu
diff --git a/docker/install/ubuntu_install_zephyr.sh b/docker/install/ubuntu_install_zephyr.sh
index 6eaa5e5aa1..8c36171f8d 100755
--- a/docker/install/ubuntu_install_zephyr.sh
+++ b/docker/install/ubuntu_install_zephyr.sh
@@ -38,7 +38,27 @@ sudo apt-get update
 
 sudo apt-install-and-clear -y cmake
 
-pip3 install west
+# Find release version
+apt-get update
+apt-install-and-clear -y \
+    lsb-core
+
+release=$(lsb_release -sc)
+if [ "${release}" == "bionic" ]; then
+     python_cmd="python3"
+elif [ "${release}" == "focal" ]; then
+     python_cmd="python3.8"
+else
+    echo "Don't know which version of python to use for Zephyr."
+    exit 2
+fi
+
+# Current Zephyr version is compatible with python3.8.
+# We use a different python env for Zephyr to test the
+# real world scenario where TVM and Zephyr could be in different
+# python environments.
+# TODO: use virtual env for Zephyr.
+$python_cmd -m pip install west
 
 # Init ZephyrProject
 ZEPHYR_PROJECT_PATH=/opt/zephyrproject
@@ -58,10 +78,4 @@ chmod -R o+w ${ZEPHYR_PROJECT_PATH}
 mkdir zephyr/.cache
 chmod o+rwx zephyr/.cache
 
-pip3 install -r /opt/zephyrproject/zephyr/scripts/requirements.txt
-
-# the requirements above overwrite junintparser with an older version, but it is not
-# used so overwrite it again with the correct version
-pip3 install junitparser==2.4.2
-
-bash /install/ubuntu_install_zephyr_sdk.sh /opt/zephyr-sdk
+$python_cmd -m pip install -r /opt/zephyrproject/zephyr/scripts/requirements.txt
diff --git a/docker/install/ubuntu_install_zephyr_sdk.sh b/docker/install/ubuntu_install_zephyr_sdk.sh
index 228baf7321..2c1e926e68 100755
--- a/docker/install/ubuntu_install_zephyr_sdk.sh
+++ b/docker/install/ubuntu_install_zephyr_sdk.sh
@@ -43,9 +43,14 @@ INSTALLATION_PATH=$1
 shift
 
 ZEPHYR_SDK_FILE_SHA=8e3572fbca9f9ba18a4436c00d680af34a85e239f7fe66c7988da85571a0d23d
+ZEPHYR_SDK_FILE_NAME=zephyr-sdk-0.15.2_linux-x86_64.tar.gz
 wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/zephyr-sdk-0.15.2_linux-x86_64.tar.gz
-echo "$ZEPHYR_SDK_FILE_SHA zephyr-sdk-0.15.2_linux-x86_64.tar.gz" | sha256sum --check
+echo "$ZEPHYR_SDK_FILE_SHA ${ZEPHYR_SDK_FILE_NAME}" | sha256sum --check
 
-tar xvf zephyr-sdk-0.15.2_linux-x86_64.tar.gz
-mv zephyr-sdk-0.15.2 zephyr-sdk
-rm zephyr-sdk-0.15.2_linux-x86_64.tar.gz
+mkdir ${INSTALLATION_PATH}
+tar -xvf ${ZEPHYR_SDK_FILE_NAME} -C "${INSTALLATION_PATH}" --strip-components=1
+rm ${ZEPHYR_SDK_FILE_NAME}
+
+# Setup SDK
+cd ${INSTALLATION_PATH}
+./setup.sh -h