Difference between revisions of "Windows IoT Enterprise"

From ESS-WIKI
Jump to: navigation, search
Line 27: Line 27:
 
Step2 In container, change the user. (example)
 
Step2 In container, change the user. (example)
 
<pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP</pre>
 
<pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP</pre>
 +
  
 
== Getting Linux Source Code ==
 
== Getting Linux Source Code ==
  
NXP_BSP_W1.0.0
+
PLEASE DOWNLOAD SOURCE CODE IN THE DOCKER (both download code and build code are the same user.)<br/> NXP_BSP_W1.0.0
 
<pre>$ cd ~/BSP
 
<pre>$ cd ~/BSP
 
$ mkdir jetson_linux_risc
 
$ mkdir jetson_linux_risc

Revision as of 03:36, 27 July 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 (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