Windows IoT Enterprise
From ESS-WIKI
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 → ROM-5720 W1.1.0 → RSB-3720
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 init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.0.0 $ repo sync
NXP_BSP_W1.1.0
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.1.0
Install Dependency Packages
$ sudo apt-get update $ sudo apt-get upgrade -y $ 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
Set up UEFI
$ pushd mu_platform_nxp $ pip3 install -r requirements.txt --upgrade $ pip3 install pycryptodome $ pip3 install pyelftools $ python3 NXP/${uefi_folder}/PlatformBuild.py --setup $ python3 NXP/${uefi_folder}/PlatformBuild.py --update $ popd
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
ROM-3720
$ 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
RSB-5720
$ cd ~/<BSP>/ $ ./adv-buildme64.sh -b 3720 -t all -c -fw
The firmware will be generated in the
~/<BSP>/imx-windows-iot/BSP/firmware/<PRODUCT>/firmware.bin