From f9ea07a288881af85154948c997c186cba6416d3 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 12:06:31 -0300 Subject: [PATCH 01/11] Portenta X8: Flashing: Fix required files list List the required files as they are shown in the factory and manifest release pages. Add a note on which files should be extracted before continuing the tutorial. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/image-flashing/content.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md index 48720db1b1..3c1c82d6b8 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md @@ -44,10 +44,9 @@ Required files following this structure: ``` Root folder -├── imx-boot ├── imx-boot-portenta-x8 -├── lmp-partner-arduino-image-portenta-x8.wic.gz **(Unzipped)** -├── mfgtool-files-portenta-x8.tar **(Unzipped)** +├── lmp-partner-arduino-image-portenta-x8.wic.gz **(Compressed)** +├── mfgtool-files-portenta-x8.tar.gz **(Compressed)** ├── sit-portenta-x8.bin └── u-boot-portenta-x8.itb ``` @@ -76,7 +75,7 @@ On the "Runs" section open those collapsed labels, and download the files listed ![Foundries.io target runs section](assets/foundries-factories-target-runs.png) -After downloading them, make sure you put them in a folder following the structure shown. +After downloading them, make sure you put them in a folder following the structure shown and extract the compressed files. ### Set the Portenta X8 to Flashing Mode From 7fd53ff03321bb6558c3430d05c5bfa7c3099b6d Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 12:09:34 -0300 Subject: [PATCH 02/11] Portenta X8: Flashing: Fix wording Use 'booting' instead of 'flashing' as at the moment we are past the flashing stage. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/image-flashing/content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md index 3c1c82d6b8..079a7f14fd 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md @@ -101,7 +101,7 @@ Switch back the DIP switches to OFF position. Unplug and then plug in the Portenta X8 to your computer. -***After flashing you will need to wait 10 secs, until the Portenta X8 blue LED starts blinking, this means the boot was successful*** +***After booting you will need to wait 10 secs, until the Portenta X8 blue LED starts blinking, this means the boot was successful*** ## Troubleshooting From 0af4830478efa70f0a6fa992337e972e9377e9b0 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 12:19:09 -0300 Subject: [PATCH 03/11] Portenta X8: OOTB: Add note on time to boot the board The mentioned page won't be available at the time we boot the board, so mention that it can take up to 15 seconds to show up after boot. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/out-of-the-box/content.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md index 186ca16e29..5467a9e8d8 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md @@ -30,7 +30,7 @@ software: ## Connecting to the Board -Once the Portenta X8 is plugged in via USB, you can open your browser and go to http://192.168.7.1 if you use Windows and Linux or http://192.168.8.1 on MacOS. This web page is hosted on the Portenta X8, from this dashboard you will be able to: +Once the Portenta X8 is plugged in via USB, you can open your browser and go to http://192.168.7.1 if you use Windows and Linux or http://192.168.8.1 on MacOS. It can take up to 15 seconds for the board to boot up and make the page available. This web page is hosted on the Portenta X8, from this dashboard you will be able to: ![Board set up page](assets/x8-oob-main.png) @@ -184,4 +184,4 @@ Make sure the name is not already being used in your Factory. Run: `journalctl -f` to see what's going on on the device -![Real time tasks on CLI](assets/command-journalctl.png) \ No newline at end of file +![Real time tasks on CLI](assets/command-journalctl.png) From 989b8e20d78cd84b1df57837539947432d50201d Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 12:20:35 -0300 Subject: [PATCH 04/11] Portenta X8: OOTB: Fix wording 'portenta-X8 board manager' should be 'Portenta X8 Board Manager' as shown in the Arduino Cloud page. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/out-of-the-box/content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md index 5467a9e8d8..ce3235f51d 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md @@ -64,7 +64,7 @@ Once it is connected, you should see the Wi-Fi status bullet in the bottom left ### Register the Factory on Foundries.io ***The integration with Foundries.io requires the Arduino Pro Cloud Subscription, contact us at [Arduino Pro Inquiries](https://www.arduino.cc/pro/contact-us), or learn more on the [Arduino Pro Page](https://www.arduino.cc/pro/hardware/product/portenta-x8#pro-cloud)*** -Go to [https://create.arduino.cc](https://create.arduino.cc) and click on portenta-X8 board manager, you will get prompted to set a new `Factory` name if you didn't have one before. You will not be able to be change the name later, so use one that you can remember and write easily. +Go to [https://create.arduino.cc](https://create.arduino.cc) and click on Portenta X8 Board Manager, you will get prompted to set a new `Factory` name if you didn't have one before. You will not be able to be change the name later, so use one that you can remember and write easily. ![Arduino Cloud integration](assets/cloud-main.png) From f0cbad5176be64a12bad4f35a76688b840c58c58 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 12:25:23 -0300 Subject: [PATCH 05/11] Portenta X8: OOTB: Add information on re-registering a device To achieve the steps shown and de-register a board, first we need to stop aktualizr-lite and fioconfig services. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/out-of-the-box/content.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md index ce3235f51d..17197e68a5 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md @@ -176,8 +176,11 @@ Make sure the name is not already being used in your Factory. `lmp-device-register -n ` -**Not recommended:** In case you cannot register the new device, you can erase the current device info by removing `/var/sota/sql.db` +**Not recommended:** In case you cannot register the new device, you can erase the current device info by stopping the OTA services and removing `/var/sota/sql.db`. After these commands, you can register the device again. +`sudo systemctl stop aktualizr-lite` +`sudo systemctl stop fioconfig.path` +`sudo systemctl stop fioconfig.service` `sudo rm /var/sota/sql.db` ### Inspecting Real Time Tasks From 3b126382358ba5fcd6b05b27de0f0dbe50f42ce0 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:02:37 -0300 Subject: [PATCH 06/11] Portenta X8: FoundriesFactory: Remove misleading information We don't perform automatic factory registration for the Arduino factories so remove this information. Signed-off-by: Vanessa Maegima --- .../tutorials/x8-fundamentals/portenta-x8-fundamentals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md index 2e000654f8..1b35ec31e0 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md @@ -39,7 +39,7 @@ A ready-made Linux distribution that packages everything seems most attractive f Foundries.io™ basically created their generic-but-not-too-generic distribution based on Yocto with minimal software installed, by default implementing top level cybersecurity features like OP-TEE and OSTREE that makes their solution ideal for professional applications. A custom OTA system update mechanism which is based on a client running on target and a robust cloud server. And they married Docker-compose as a way to deploy a software solution to a target. This is like having an app store for a particular device with the difference that we're not installing an app but a container which may contain a whole distribution or a minimal distribution running only our app or our set of apps. -In addition to that they developed the cloud side as well. In a nutshell you can use what's called FoundriesFactory, a cloud DevSecOps subscription service to build, test, deploy, and maintain secure, updatable IoT and Edge products. It provides a unique id and automatic builds of the base system and containers for this system in one place. When you flash a device (i.e. Portenta X8 board) with their image and connect it to the Internet it automatically registers itself, generating a random RSA key to your Factory. Let's now take a look at the Foundries.io Factory page. +In addition to that they developed the cloud side as well. In a nutshell you can use what's called FoundriesFactory, a cloud DevSecOps subscription service to build, test, deploy, and maintain secure, updatable IoT and Edge products. It provides a unique id and automatic builds of the base system and containers for this system in one place. Let's now take a look at the Foundries.io Factory page. ### Foundries.io Factory From 59d740493bcb1b449d1c706f910c98d1b1257575 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:12:04 -0300 Subject: [PATCH 07/11] Portenta X8: FoundriesFactory: Improve Sources definition Sync Sources description with Foundries.io documentation in https://docs.foundries.io/latest/reference-manual/factory/factory-sources.html Include detailed information on how to trigger builds and create new targets. Signed-off-by: Vanessa Maegima --- .../x8-fundamentals/portenta-x8-fundamentals.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md index 1b35ec31e0..ccdc347f13 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md @@ -51,12 +51,12 @@ Your Factory page allows you to add members, so that you can easily keep track o On the "source" page of your Factory, you can find the four repositories that are used to customize the images. These are: -- **ci-scripts.git**: CI scripts to build images for all the machines that need to be built. -- **lmp-manifest.git**: Index of the repositories to be downloaded by repository to create the source work tree. -- **meta-subscriber-overrides.git**: Yocto layer containing Arduino specific customizations (machine definition, device drivers, etc). -- **containers.git**: Container recipes +- **ci-scripts.git**: Scripts that define the platform and container build jobs to the FoundriesFactory continuous integration system. +- **lmp-manifest.git**: The repo manifest for the platform build. It defines which layer versions are included in the platform image. This includes **meta-partner-arduino**, the layer containing Arduino specific customizations (machine definition, device drivers, etc). +- **meta-subscriber-overrides.git**: OE layer that defines what is included into your factory image. You can add board specific customizations and overrides, add and remove packages provided in the default Linux microPlatform base. +- **containers.git**: This is where containers and docker-compose apps are defined. It allows you to define what containers to build, and how to orchestrate them on the platform. -While the "targets" page contains the images built by the Continuous integration system each time something is committed in the repositories. Committing to a repository will trigger building a target which can then be inspected in the "targets" page. Each target will compile for multiple platforms (as specified in the ci-scripts.git) and will generate all the required files to program the target. +While the "targets" page contains the images built by the Continuous integration system each time something is committed in the repositories. Committing to **lmp-manifest.git** or **meta-subscriber-overrides.git** repositories will create a platform target, while committing to **containers.git** will create a container target. These targets will generate the artifacts for the platforms as specified in the **ci-scripts.git**, including all the required files to program the target in case of platform builds. You can inspect your FoundriesFactory targets in the "targets" page. ## Containers From b91b127f39962b7563114f51f38146c659673706 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:30:43 -0300 Subject: [PATCH 08/11] Portenta X8: FoundriesFactory: Update link Installing fioctl links to an old release, so update this to avoid getting an old version of fioctl. Signed-off-by: Vanessa Maegima --- .../tutorials/x8-fundamentals/portenta-x8-fundamentals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md index ccdc347f13..2455e9c642 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md @@ -64,7 +64,7 @@ Containers allow for easy deployment of Linux based processes, uploaded through Foundries.io provides a service that builds images using the Yocto Project and specifically built around the Linux microPlatform (LmP) distribution they maintain. LmP contains an extensive set of software components needed for IoT applications. -Using [fioctl](https://docs.foundries.io/82/getting-started/install-fioctl/index.html) allows you to manage your boards through CLI. This will make it possible for you to easily upload containers to a board that is linked to your Factory. When the board is online and connected to the Factory you can easily push new apps to the board. Using fioctl command lines you only need to state the Factory, board and app. +Using [fioctl](https://docs.foundries.io/latest/getting-started/install-fioctl/index.html) allows you to manage your boards through CLI. This will make it possible for you to easily upload containers to a board that is linked to your Factory. When the board is online and connected to the Factory you can easily push new apps to the board. Using fioctl command lines you only need to state the Factory, board and app. ### Benefits of Containers From 9b77d8880a5f8e46b3dabcf8673e81ebcea92078 Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:36:26 -0300 Subject: [PATCH 09/11] Portenta X8: FoundriesFactory: Fix wrong clone command Previous command using repo didn't work to clone the repository so use git instead. Signed-off-by: Vanessa Maegima --- .../tutorials/custom-container/content.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md index 80018b5ef1..a0dcf71ae4 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md @@ -138,15 +138,13 @@ In order to pull or push repositories you have to generate an API key. This can ![Token section in user settings](assets/token-page.png) -Use the following command in a Linux shell, like ADB which the previously mentioned tutorial showed how to set up. To get the repository on your board, replace the "YOUR_FACTORY" with the name of your factory. The "-m" tag selects the manifest file within the repository. If no manifest name is selected, the default is "default.xml". And the "-b" tag specifies a revision. Running this command will get the container repository, where we will put our folder. +Use the following command in a Linux shell, like ADB which the previously mentioned tutorial showed how to set up. To get the repository on your board, replace "YOUR_FACTORY" with the name of your factory. The "-b" parameter specifies a branch to checkout after cloning the repository. Running this command will get the container repository, where we will put our folder. -```python -repo init -u https://source.foundries.io/factories/YOUR_FACTORY/containers.git -m arduino.xml -b devel +``` +git clone https://source.foundries.io/factories/YOUR_FACTORY/containers.git -b devel ``` -We can also run ```repo sync``` to get the latest version of the repository. Put the "x8-custom-test" folder in the repository. If you push the commit to "container.git" a new target will automatically build on your Foundries.io Factory page. - -***NOTE: The "repo sync" will at some point pause. This is because it is waiting for a username and password but the prompt will be hidden. Enter the username and password to move on.*** +Put the "x8-custom-test" folder in the repository. If you push the commit to "containers.git" a new target will automatically build on your Foundries.io Factory page. ### Building and Running the Container @@ -196,4 +194,4 @@ To get a better understanding of how to manage containers with Docker, take a lo Here are some errors that might occur in the process of this tutorial: - Make sure you have followed our other tutorials that shows how to set up the [Portenta X8 out of the box](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box) -- If you are having issues with the adb shell, don't forget to try and use `sudo` and `su` \ No newline at end of file +- If you are having issues with the adb shell, don't forget to try and use `sudo` and `su` From ca23f4dfc07f3a3543497b117aedb9954a42f9be Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:41:36 -0300 Subject: [PATCH 10/11] Portenta X8: FoundriesFactory: Add information about build and update times Building and updating takes time, so make this clear in the documentation. Signed-off-by: Vanessa Maegima --- .../boards/portenta-x8/tutorials/custom-container/content.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md index a0dcf71ae4..4fbf0d848b 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md @@ -144,11 +144,11 @@ Use the following command in a Linux shell, like ADB which the previously mentio git clone https://source.foundries.io/factories/YOUR_FACTORY/containers.git -b devel ``` -Put the "x8-custom-test" folder in the repository. If you push the commit to "containers.git" a new target will automatically build on your Foundries.io Factory page. +Put the "x8-custom-test" folder in the repository. If you push the commit to "containers.git" a new target will automatically build on your FoundriesFactory, you can inspect it in the "Targets" page. ### Building and Running the Container -After uploading the folder to the repository. Navigate into the "x8-custom-test" folder, that should be located on your board now. This allows us to build our container with a simple command. Using ```docker build``` with a ```--tag``` will let us give the container a tag so we can easily keep track of what version of the build this is. +After the build is finished, it can take up to 10 minutes for your device to OTA update to this new version. You can inspect it via the "Devices" tab of your FoundriesFactory. After your device takes the update, navigate into the "x8-custom-test" folder, that should be located on your board now. This allows us to build our container with a simple command. Using ```docker build``` with a ```--tag``` will let us give the container a tag so we can easily keep track of what version of the build this is. ```python docker build --tag "x8-custom-test:latest" . From 3d8bdb4e7cc9bfddf9da1e9f7fc85ae51d41db3a Mon Sep 17 00:00:00 2001 From: Vanessa Maegima Date: Mon, 8 Aug 2022 14:48:54 -0300 Subject: [PATCH 11/11] Portenta X8: Standardize FoundriesFactory and Foundries.io Signed-off-by: Vanessa Maegima --- .../tutorials/custom-container/content.md | 10 +++--- .../tutorials/display-output-webgl/content.md | 4 +-- .../tutorials/image-flashing/content.md | 2 +- .../tutorials/out-of-the-box/content.md | 32 +++++++++---------- .../portenta-x8-fundamentals.md | 2 +- .../tutorials/x8-getting-started/content.md | 2 +- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md index 4fbf0d848b..2cd2da651d 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md @@ -55,7 +55,7 @@ TEST_CMD="python3 --help" ``` ### Docker-compose.yml -This file defines the app name through the factory, permissions and settings for the involved containers. The argument in the image tag will make it so our image file builds locally. +This file defines the app name through the Factory, permissions and settings for the involved containers. The argument in the image tag will make it so our image file builds locally. ```python version: '3.6' @@ -122,9 +122,9 @@ if __name__ == '__main__': ## Uploading the Container Folder -First, you have to have set up your board to a factory, as shown in the [Portenta X8 Out of the Box tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box). +First, you have to have set up your board to a Factory, as shown in the [Portenta X8 Out of the Box tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box). -Once this is done, we will push our folder to a repository within the factory. Lets place our folder "x8-custom-test" inside the "containers.git" repository. You can find this repository inside your factory page, if you click on "Source". And then on "container.git", the url of this page will be used in the next command. +Once this is done, we will push our folder to a repository within the Factory. Lets place our folder "x8-custom-test" inside the "containers.git" repository. You can find this repository inside your Factory page, if you click on "Source". And then on "container.git", the url of this page will be used in the next command. ![Source on Foundries.io Factory page](assets/custom-factory-page.png) @@ -138,7 +138,7 @@ In order to pull or push repositories you have to generate an API key. This can ![Token section in user settings](assets/token-page.png) -Use the following command in a Linux shell, like ADB which the previously mentioned tutorial showed how to set up. To get the repository on your board, replace "YOUR_FACTORY" with the name of your factory. The "-b" parameter specifies a branch to checkout after cloning the repository. Running this command will get the container repository, where we will put our folder. +Use the following command in a Linux shell, like ADB which the previously mentioned tutorial showed how to set up. To get the repository on your board, replace "YOUR_FACTORY" with the name of your Factory. The "-b" parameter specifies a branch to checkout after cloning the repository. Running this command will get the container repository, where we will put our folder. ``` git clone https://source.foundries.io/factories/YOUR_FACTORY/containers.git -b devel @@ -182,7 +182,7 @@ docker-compose stop ## Conclusion -This tutorial went through what goes into a container, how the folder should be built and what files it should contain. It then explained what each files purpose is and what they should contain for this example. Then we went through how this relates back to the factory, and how Foundries.io makes the whole process easier for us. We then showed how to build the container and run it on the Portenta X8. Lastly, we showed a useful testing feature with docker-compose. Which lets us test our container with a faster process. +This tutorial went through what goes into a container, how the folder should be built and what files it should contain. It then explained what each files purpose is and what they should contain for this example. Then we went through how this relates back to the Factory, and how Foundries.io makes the whole process easier for us. We then showed how to build the container and run it on the Portenta X8. Lastly, we showed a useful testing feature with docker-compose. Which lets us test our container with a faster process. ### Next Steps diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/display-output-webgl/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/display-output-webgl/content.md index accda6d42c..4456dfa2a4 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/display-output-webgl/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/display-output-webgl/content.md @@ -40,7 +40,7 @@ The Arduino Portenta X8's processor **NXP® i.MX 8M Mini Processor** can be used There are two ways to get the container, either through `foundriesFactories` or downloading the container from [portenta-containers repository](https://github.com/arduino/portenta-containers) -**With Foundries:** +**With Foundries.io:** If you use [Foundries.io](https://www.foundries.io) you can switch the current `target` of your device to `x-kiosk-imx8-webgl` by switching the app from a terminal on your computer: @@ -176,7 +176,7 @@ To save the changes press the **ESC** key and type `:wq` this will write and qui ## Conclusion -In this tutorial we went through how to connect the board and display something on a screen. Using a container from foundriesFactories or by downloading it and uploading it to your Portenta X8. Lastly, we showed how to edit the video output by editing the container. +In this tutorial we went through how to connect the board and display something on a screen. Using a container from FoundriesFactories or by downloading it and uploading it to your Portenta X8. Lastly, we showed how to edit the video output by editing the container. ### Next Steps diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md index 079a7f14fd..578dca2199 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/image-flashing/content.md @@ -57,7 +57,7 @@ To get those files: Go to the `lmp-manifest` [GitHub repository](https://github.com/arduino/lmp-manifest) and open the [releases](https://github.com/arduino/lmp-manifest/releases) section, there you will find a compressed `.tar.gz` with all the required files. -#### Through Foundries +#### Through Foundries.io Open your FoundriesFactory®. diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md index 17197e68a5..69f6d1e44f 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md @@ -35,7 +35,7 @@ Once the Portenta X8 is plugged in via USB, you can open your browser and go to ![Board set up page](assets/x8-oob-main.png) * [Configure Wi-Fi](#connecting-to-your-wi-fi) -* [Add your device to a factory (OTA)](#add-a-new-device-to-your-factory) +* [Add your device to a FoundriesFactory (OTA)](#add-a-new-device-to-your-factory) * Board details * Shell (alpine python) @@ -59,36 +59,36 @@ Once it is connected, you should see the Wi-Fi status bullet in the bottom left ***You can change your network by clicking on the button again and repeat the above steps*** -## Connect to a Factory +## Connect to a FoundriesFactory -### Register the Factory on Foundries.io +### Register the FoundriesFactory on Foundries.io ***The integration with Foundries.io requires the Arduino Pro Cloud Subscription, contact us at [Arduino Pro Inquiries](https://www.arduino.cc/pro/contact-us), or learn more on the [Arduino Pro Page](https://www.arduino.cc/pro/hardware/product/portenta-x8#pro-cloud)*** Go to [https://create.arduino.cc](https://create.arduino.cc) and click on Portenta X8 Board Manager, you will get prompted to set a new `Factory` name if you didn't have one before. You will not be able to be change the name later, so use one that you can remember and write easily. ![Arduino Cloud integration](assets/cloud-main.png) -It will redirect you to the Foundries.io factory registration page. +It will redirect you to the FoundriesFactory registration page. ![Foundries Factory creation](assets/foundries-create-factory.png) -Then you can go to [https://app.foundries.io/factories](https://app.foundries.io/factories) and it will show the factory you just created. +Then you can go to [https://app.foundries.io/factories](https://app.foundries.io/factories) and it will show the Factory you just created. ![Foundries Factories](assets/foundries-factories.png) -After you have created your Foundries.io factory you need to go back to the Portenta-X8 web dashboard to add a new device into your new factory. +After you have created your FoundriesFactory you need to go back to the Portenta-X8 web dashboard to add a new device into your new Factory. ### Add A New Device To Your Factory Click the "Register Factory name" button. -![Register factory button](assets/x8-oob-main-factory.png) +![Register Factory button](assets/x8-oob-main-factory.png) ![Factory connection](assets/x8-oob-factory-name.png) The next panel gives you a code that you need to copy. -![Device factory token](assets/x8-oob-factory-register.png) +![Device Factory token](assets/x8-oob-factory-register.png) Click on the "Complete registration" button on the Portenta X8 dashboard @@ -100,29 +100,29 @@ Confirm the addition of the new device by pressing "Connect" ![Foundries device confirmation](assets/foundries-activation-prompt.png) -Finally you will see a confirmation which means that your device now is attached to the new factory. +Finally you will see a confirmation which means that your device now is attached to the new Factory. -![Dashboard with a factory attached](assets/foundries-activation-success.png) +![Dashboard with a Factory attached](assets/foundries-activation-success.png) -Once it is completed, the factory button on the Portenta X8 dashboard will turn green. +Once it is completed, the Factory button on the Portenta X8 dashboard will turn green. ![Successful connection](assets/x8-oob-factory-success.png) -#### Check Your Factory +#### Check Your FoundriesFactory Have a look to your factories by going to [Foundries.io factories page](https://app.foundries.io/factories) ![Foundries.io factories page](assets/foundries-factories.png) -Select the factory that you want to check and it will open its dashboard. +Select the Factory that you want to check and it will open its dashboard. ![Foundries.io Factory dashboard](assets/foundries-factory-dashboard.png) #### Check Your Device -You can check if your device is fully connected to your factory by going to the "devices" tab. +You can check if your device is fully connected to your Factory by going to the "devices" tab. -![Foundries.io factory devices page](assets/foundries-factory-devices.png) +![Foundries.io Factory devices page](assets/foundries-factory-devices.png) Then choose the device you want to check by clicking on its box and it will open its page. @@ -170,7 +170,7 @@ To check your manager connection status, use this command: `nmcli de` -### Register Device to the Factory +### Register Device to the FoundriesFactory Make sure the name is not already being used in your Factory. diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md index 2455e9c642..fb9ad81c26 100644 --- a/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md +++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/x8-fundamentals/portenta-x8-fundamentals.md @@ -53,7 +53,7 @@ On the "source" page of your Factory, you can find the four repositories that ar - **ci-scripts.git**: Scripts that define the platform and container build jobs to the FoundriesFactory continuous integration system. - **lmp-manifest.git**: The repo manifest for the platform build. It defines which layer versions are included in the platform image. This includes **meta-partner-arduino**, the layer containing Arduino specific customizations (machine definition, device drivers, etc). -- **meta-subscriber-overrides.git**: OE layer that defines what is included into your factory image. You can add board specific customizations and overrides, add and remove packages provided in the default Linux microPlatform base. +- **meta-subscriber-overrides.git**: OE layer that defines what is included into your Factory image. You can add board specific customizations and overrides, add and remove packages provided in the default Linux microPlatform base. - **containers.git**: This is where containers and docker-compose apps are defined. It allows you to define what containers to build, and how to orchestrate them on the platform. While the "targets" page contains the images built by the Continuous integration system each time something is committed in the repositories. Committing to **lmp-manifest.git** or **meta-subscriber-overrides.git** repositories will create a platform target, while committing to **containers.git** will create a container target. These targets will generate the artifacts for the platforms as specified in the **ci-scripts.git**, including all the required files to program the target in case of platform builds. You can inspect your FoundriesFactory targets in the "targets" page. diff --git a/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md b/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md index 509b3c3da2..bc17f309e4 100644 --- a/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md +++ b/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md @@ -116,7 +116,7 @@ The Portenta Max Carrier and the Portenta X8 are connected with High Density con If you wish to use the Portenta X8 and Max Carrier with the Arduino IDE, please follow our [Uploading sketches to Arduino Portenta X8 tutorial](./tutorials/uploading-sketches-m4). Also, make sure that you have the latest version of the Portenta Core installed. Go to **Tools > Boards > board manager...** and search for **Arduino Mbed OS Portenta boards**. When this is installed and your Portenta X8 board is connected to the computer, the board should be assigned a port in the Arduino IDE. -If you want to use the Portenta X8 and Max Carrier with a Foundries.io Factory, python scripts and Linux containers, Please take a look at our [Portenta X8 Getting started tutorial](./tutorials/portenta-x8/out-of-the-box). You may also find our tutorial on how to [manage dockers on the Portenta X8](https://docs.arduino.cc/tutorials/portenta-x8/docker-container) useful. +If you want to use the Portenta X8 and Max Carrier with a FoundriesFactory, python scripts and Linux containers, Please take a look at our [Portenta X8 Getting started tutorial](./tutorials/portenta-x8/out-of-the-box). You may also find our tutorial on how to [manage dockers on the Portenta X8](https://docs.arduino.cc/tutorials/portenta-x8/docker-container) useful. ## Quick Reference Tables for the Portenta Max Carrier