Windows IoT Enterprise
Contents
BSP Version
Windows : W21H2 (19044.1288.211006-0501.21h2_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso)
NXP BSP : W1.0.0 (W21H2-1-0-0-imx-windows-bsp.zip)
Released Image
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the latest version of advrisc/u18.04-imx8lbv1 Docker image for developing nVidia jetson projects.
Docker command:
$ docker pull advrisc/u18.04-imx8lbv1:latest
Run Docker example
Step1 Run docker container (example)
$ docker run -it --name <CONTAINER_NAME> -v <BSP_PATH>:/home/adv/BSP:rw advrisc/u18.04-imx8lbv1:latest /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Getting Linux Source Code
PLEASE DOWNLOAD SOURCE CODE IN THE DOCKER (both download code and build code are the same user.)
NXP_BSP_W1.0.0
$ cd ~/BSP $ mkdir jetson_linux_risc $ cd jetson_linux_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.0.0 $ ../repo/repo sync
Install Dependency Packages
$ sudo apt-get update $ sudo apt-get upgrade -y $ sudo apt-get install attr build-essential python3.8 python3.8-dev python3.8-venv device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip mono-devel gawk -y $ python3.8 -m venv ~/venv/win_fw_build $ source ~/venv/win_fw_build/bin/activate $ pushd mu_platform_nxp/ $ pip3 install -r requirements.txt --upgrade $ sudo apt remove python3-crypto $ pip3 install pycryptodome $ git config --global --add safe.directory /home/adv/BSP $ git submodule sync $ python3 NXP/<PROJECT>/PlatformBuild.py --setup
If get python error at last command, please do following command
$ sudo apt install gnupg ca-certificates $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF $ echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list $ sudo apt update $ sudo apt-get install attr build-essential python3.8 python3.8-dev python3.8-venv device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip mono-devel gawk -y $ python3.8 -m venv ~/venv/win_fw_build $ pip3 install pycryptodome
Do the final set up
$ python3 NXP/<PROJECT>/PlatformBuild.py --setup $ python3 NXP/<PROJECT>/PlatformBuild.py --update
Download the Arm64 cross-compiler.
$ pushd ~ $ wget https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu /gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ tar xf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ rm gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ popd
The cross compiler prefix is required to be exported later into AARCH64_TOOLCHAIN_PATH variable.
export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
Building
$ cd ~/<BSP>/ $ source ~/venv/win_fw_build/bin/activate $ export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- $ $ ./adv-buildme64.sh -b 5720 -t all -c -fw
The firmware will be generated in the
~/<BSP>/imx-windows-iot/BSP/firmware/<PRODUCT>/firmware.bin