Difference between revisions of "Windows IoT Enterprise"

From ESS-WIKI
Jump to: navigation, search
Line 4: Line 4:
 
Windows : W21H2 (19044.1288.211006-0501.21h2_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso)
 
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)
+
NXP BSP : W1.0.0 → ROM-5720 W1.1.0 → RSB-3720
  
 
 
 
 
Line 38: Line 38:
 
$ git config --global user.name "Your Name"
 
$ git config --global user.name "Your Name"
 
$ git config --global user.email you@example.com
 
$ 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 init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.0.0
$ ../repo/repo sync
+
$ repo sync
 +
</pre>
 +
 
 +
NXP_BSP_W1.1.0
 +
<pre>$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.1.0
 
</pre>
 
</pre>
  
Line 45: Line 49:
 
<pre>$ sudo apt-get update
 
<pre>$ sudo apt-get update
 
$ sudo apt-get upgrade -y
 
$ 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
 
</pre>
 
  
If get python error at last command, please do following command
+
$ sudo apt install gnupg ca-certificates
<pre>$ sudo apt install gnupg ca-certificates
 
 
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
 
$ 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
 
$ 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 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
 
$ 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
 
 
</pre>
 
</pre>
  
Do the final set up
+
Set up UEFI
<pre>$ python3 NXP/<PROJECT>/PlatformBuild.py --setup
+
<pre>$ pushd mu_platform_nxp
$ python3 NXP/<PROJECT>/PlatformBuild.py --update
+
$ 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
 
</pre>
 
</pre>
  
Line 86: Line 82:
  
 
== Building ==
 
== Building ==
 +
 +
ROM-3720
 
<pre>$ cd ~/<BSP>/
 
<pre>$ cd ~/<BSP>/
 
$ source ~/venv/win_fw_build/bin/activate
 
$ 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-
 
$ 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
+
$ ./adv-buildme64.sh -b 5720 -t all -c -fw
 +
</pre>
 +
 
 +
RSB-5720
 +
<pre>$ cd ~/<BSP>/
 +
$ ./adv-buildme64.sh -b 3720 -t all -c -fw
 
</pre>
 
</pre>
  

Revision as of 03:52, 8 August 2022

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