diff --git a/docs/Contribution/Contributors/ReCamera_Model_Converstion_Mac_README.md b/docs/Contribution/Contributors/ReCamera_Model_Converstion_Mac_README.md index a28fce1db8db9..91b4d4de9cae8 100644 --- a/docs/Contribution/Contributors/ReCamera_Model_Converstion_Mac_README.md +++ b/docs/Contribution/Contributors/ReCamera_Model_Converstion_Mac_README.md @@ -1,3 +1,5 @@ +--- +--- # YOLO11n Model Conversion for reCamera: Complete Guide ## Table of Contents diff --git a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/DashCamNet-with-Jetson-Xavier-NX-Multicamera.md b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/DashCamNet-with-Jetson-Xavier-NX-Multicamera.md index 328a524ffa473..11e0b7547bbcd 100644 --- a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/DashCamNet-with-Jetson-Xavier-NX-Multicamera.md +++ b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/DashCamNet-with-Jetson-Xavier-NX-Multicamera.md @@ -1,497 +1,495 @@ ---- -description: DashCamNet with Jetson Xavier NX Multicamera -title: DashCamNet with Jetson Xavier NX Multicamera -keywords: - - Edge - - reComputer -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /DashCamNet-with-Jetson-Xavier-NX-Multicamera -last_update: - date: 01/04/2023 - author: w0x7ce - -no_comments: false # for Disqus - ---- - -# DashCamNet and PeopleNet with Jetson Xavier NX Multicamera - -## Introduction - -Nowadays, in the fields of autonomous driving, car recording and violation monitoring we often use artificial intelligence to help us identify vehicle information, vehicle license plates and surrounding obstacles. Thanks to the large number of pre-trained models provided by Nvidia NGC, we can do these complex tasks more easily. - -Creating an AI/machine learning model from scratch can cost you a lot of time and money. [Transfer learning](https://blogs.nvidia.com/blog/2019/02/07/what-is-transfer-learning/) is a popular technique that can be used to extract learned features from an existing neural network model to a new one. The NVIDIA TAO(*Train, Adapt, and Optimize*) Toolkit is a CLI and Jupyter notebook based solution of [NVIDIA TAO](https://developer.nvidia.com/tao), that abstracts away the AI/deep learning framework complexity, letting you fine-tune on high-quality NVIDIA pre-trained AI models with only a fraction of the data compared to training from scratch. - -The TAO Toolkit also supports 100+ permutations of NVIDIA-optimized model architectures and backbones such as EfficientNet, YOLOv3/v4, RetinaNet, FasterRCNN, UNET, and many more. - - - -Credit to NVIDIA's [repository](https://developer.nvidia.com/blog/creating-a-real-time-license-plate-detection-and-recognition-app/) and Tomasz's [project](https://github.com/NVIDIA-AI-IOT/jetson-multicamera-pipelines), we are going to detect cars and people with muliticamera deployed in Jetson Xavier NX. Both [Jetson SUB Mini PC](https://www.seeedstudio.com/Jetson-SUB-Mini-PC-Blue-p-5212.html) are good for this demo. - -*NVIDIA TAO Toolkit was previously named NVIDIA Transfer Learning Toolkit(Tlt).* - -

pir

- -## Materials Requirement - -### Hardware Setup - - -- [NVIDIA® Jetson Xavier™ NX Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Xavier-NX-Developer-Kit-p-4573.html) / [Jetson SUB Mini PC](https://www.seeedstudio.com/Jetson-SUB-Mini-PC-Blue-p-5212.html) - -

pir

- -- USB Webcam / Raspberry Pi Camera V2.1 / [IMX219-130 8MP cameras](https://www.seeedstudio.com/IMX219-130-Camera-130-FOV-Applicable-for-Jetson-Nano-p-4606.html) / [High quality 12.3MP IMX477 cameras](https://www.seeedstudio.com/High-Quality-Camera-For-Raspberry-Pi-Compute-Module-Jetson-Nano-p-4729.html) - -

pir

- -- Display with HDMI, DP or eDP interface -- PC with Linux distribution operating system - -### Software Setup - -- Jetpack 4.5 or 4.6 for Jetson Xavier NX -- Docker -- DeepStream -- TAO Toolkit -- Python3.6 with Pypi(python3-pip) and Virtual Environments -- NVIDIA Container Toolkit - -The methods of software installation will be provided in the following steps. - -## Pre-installation - -Before we start the project, we need to install Docker Engine on Ubuntu. There are several ways to install Docker Engine and you can choose either way depending on your needs. If you alreadly set it up, you can skip the step. - -- Most users [set up Docker’s repositories](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) and install from them for the ease of installation and upgrade tasks, which is the recommended approach. -- Some users download the DEB package and [install it manually](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) and manage upgrades completely manually. This is useful in situations such as installing Docker on air-gapped systems with no access to the internet. -- In testing and development environments, some users choose to use automated [convenience scripts](https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script) to install Docker. - -Here we are going to use the first one. Before we install the docker, it is required to ensure the version of it is latest. The names of old versions might be `docker`, `docker.io`, or `docker-engine`, you can check it using the following command: - -```shell -sudo apt-get purge docker docker-engine docker.io containerd runc -``` - -When you uninstall the docker, the contents of `/var/lib/docker/`, including images, containers, volumes, and networks, all of which are preserved. If you want to start with a clean installation, you can refer to the [uninstall Docker Engine](https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine) section at the bottom of this page. - -### Install Docker using the repository - -Before we install Docker Engine on a new host machine, it is required to set up the Docker repository. Afterward, we then can install and update Docker from the repository. - -- **Step 1**. Set up the repository with `apt` package - -Update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS with following commands: - - ```shell - sudo apt-get update - sudo apt-get install \ - ca-certificates \ - curl \ - gnupg \ - lsb-release - ``` - -Add Docker’s official GPG key: - - ```shell - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - ``` - -Use the following command to set up the **stable** repository. To add the **nightly** or **test** repository, add the word `nightly` or `test` (or both) after the word `stable` in the commands below. You can [Learn about **nightly** and **test** channels](https://docs.docker.com/engine/install/) here. - - ```shell - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - ``` - -- **Step 2**. Install the Docker Engine - -Update the `apt` package index, and install the **latest version** of Docker Engine and containerd with following commands: - - ```shell - sudo apt-get update - sudo apt-get install docker-ce docker-ce-cli containerd.io - ``` - -We can verify whether the Docker Engine is installed correctly by running the `hello-world` image. - - ```shell - sudo docker run hello-world - ``` - -- **Step 3**. Manage Docker as a non-root user with following processes. - -Create the `docker` group. - - ```shell - sudo groupadd docker - ``` - -Add the user into the `docker` group. - - ```shell - sudo usermod -aG docker $USER - ``` - -Log out and log back in to reevaluate the group membership. - -Verify that you can run `docker` commands without `sudo` by running `hello-world` - - ```shell - docker run hello-world - ``` - -- **Step 4**. Set up the NVIDIA Container Toolkit with following processes: - -Setup the `stable` repository and the GPG key: - - ```shell - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ - && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ - && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list - ``` - -Update the package listing and install the `nvidia-docker2` package (and dependencies): - - ```shell - sudo apt-get update - sudo apt-get install -y nvidia-docker2 - ``` - -Restart the Docker daemon to complete the installation after setting the default runtime: - - ```shell - sudo systemctl restart docker - ``` - -## Getting Started - -### Install NVIDIA GPU Cloud CLI ARM64 Linux - -**NVIDIA GPU Cloud (NGC) CLI** is a Python-based command-line interface for managing Docker containers in the NGC Container Registry. With NGC CLI, you can perform many of the same operations that are available from the NGC website, such as running jobs and viewing Docker repositories within your organization and team space. - -- **Step 1**. Move to the [Download CLI](https://ngc.nvidia.com/setup/installers/cli) page and download the zip file that contains the binary. The NGC CLI binary for ARM64 is supported on Ubuntu 18.04 and later distributions. - -

pir

- -- **Step 2**. Transfer the zip file to a directory where you have permissions and unzip it and finally execute the binary. - -You can also download, unzip, and install from the command line by moving to a directory where you have execute permissions and then running the following command: - -```shell -wget -O ngccli_arm64.zip https://ngc.nvidia.com/downloads/ngccli_arm64.zip && unzip -o ngccli_arm64.zip && chmod u+x ngc -``` - -Check the binary's md5 hash to ensure the file wasn't corrupted during download: - -```shell -md5sum -c ngc.md5 -``` - -- **Step 3**. Add your current directory to path: - -```shell -echo "export PATH=\"\$PATH:$(pwd)\"" >> ~/.bash_profile && source ~/.bash_profile -``` - -You must configure NGC CLI for your use in order to run the commands. - -- **Step 4**. Enter the following command, including your API key when prompted: - -```shell -ngc config set -``` - -#### NGC API key Generation - -It is required API key to configure NGC CLI, we can generate it through the NGC website. - -- **Step 1**. Move to the [website](https://catalog.ngc.nvidia.com/) and click "Sign In/Sign Up". - -

pir

- -- **Step 2**. Register an account as a NVIDIA developer. - -

pir

- -- **Step 3**. Choose an account to proceed. - -

pir

- -- **Step 4**. Click "Setup" on the upper right corner of the page. - -

pir

- -- **Step 5**. Select "Get API Key". - -

pir

- -- **Step 6**. Click "Generate API Key". - -

pir

- -- **Step 7**. The API Key will show at the bottom of the page. - -

pir

- -### Install the TAO Toolkit - -Python3 and python3-pip should be installed at the first: - -```shell -sudo apt install -y python3 python3-pip -``` - -TAO Toolkit is a Python pip package that is hosted on the NVIDIA PyIndex. The package uses the docker restAPI under the hood to interact with the NGC Docker registry to pull and instantiate the underlying docker containers. At the previous steps, we have alreadly set an NGC account and generated an API key associated with the it. If you want to see more about [Installation Prerequisites](https://docs.nvidia.com/tao/tao-toolkit/text/tao_toolkit_quick_start_guide.html#install-prereq) section, you can click it for details on creating an NGC account and obtaining an API key. - -#### **Virtual Environment - Virtualenv** - -A Virtual Environment is an isolated working copy of Python which allows you to work on a specific project without worry of affecting other projects. For example, you can work on a project which requires Django 1.3 while processing a project which requires Django 1.0. You can click [here](http://pypi.python.org/pypi/virtualenv) to create isolated Python enviroments. - -It is highly recommanded to configure a virtual environment first and then install the TAO Toolkit. - -- You can install virtualenv via pip: - -```shell -pip install virtualenv -``` - -- Create a virtual environment: - -```shell -virtualenv venv -``` - -It creates a copy of Python in whichever directory you ran the command in, placing it in a folder named `venv`. - -- Activate the virtual environment: - -```shell -source venv/bin/activate -``` - -- If you are done working in the virtual environment for the moment, you can deactivate it: - -```shell -deactivate -``` - -This puts you back to the system’s default Python interpreter with all its installed libraries. - -To delete a virtual environment, just delete its folder. - -**virtualenvwarpper** - -After a while, though, you might end up with a lot of virtual environments littered across your system, and its possible you’ll forget their names or where they were placed. Hence, we are using virtualenvwarpper. The [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/en/latest/index.html) provides a set of commands which makes working with virtual environments much more pleasant. It also places all your virtual environments in one place. - -You can install (make sure **virtualenv** is already installed) : - - ``` - pip install virtualenvwrapper - export WORKON_HOME=~/Envs - source /usr/local/bin/virtualenvwrapper.sh - ``` - -If you want to see more information about it, please refer to [Full virtualenvwrapper install instructions](http://virtualenvwrapper.readthedocs.org/en/latest/install.html).) - -*You may follow the instructions in this [link](https://python-guide-cn.readthedocs.io/en/latest/dev/virtualenvs.html) to set up a Python virtualenv using a virtualenvwrapper.* - -#### **Set Python version in the Virtual Environment** - -- **Step 1**. Once you have followed the instructions to install `virtualenv` and `virtualenvwrapper`, set the Python version in the `virtualenv`. This can be done in either of the following ways: - -- Defining the environment variable called VIRTUALENVWRAPPER_PYTHON. This variable should point to the path where the python3 binary is installed in your local machine. You can also add it to your `.bashrc` or `.bash_profile` for setting your Python `virtualenv` by default. - -```shell -export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 -``` - -- Setting the path to the python3 binary when creating your `virtualenv` using the `virtualenvwrapper` wrapper - -```shell -mkvirtualenv launcher -p /path/to/your/python3 -``` - -- **Step 2**. Once you have logged into the `virtualenv`, the command prompt should show the name of your virtual environment - -```shell - (launcher) py-3.6.9 desktop: -``` - -- **Step 3**. When you are done with you session, you may deactivate your `virtualenv` using the `deactivate` command: - -```shell -deactivate -``` - -- **Step 4**. You may re-instantiate this created `virtualenv` env using the `workon` command. - - ```shell - workon launcher - ``` - -#### **Install the TAO package** - -- **step 1**. We have alreadly set up the the environmrnt that we need. Now we can install the TAO Launcher Python package called `nvidia-tao` with following command. - - ```shell - pip3 install nvidia-pyindex - pip3 install nvidia-tao - ``` - -- **step 2**. Invoke the entrypoints using the `tao` command. - -``` -tao --help -``` - -The sample output of the above command is: - -``` -usage: tao [-h] - {list,stop,info,augment,bpnet,classification,detectnet_v2,dssd,emotionnet,faster_rcnn,fpenet,gazenet,gesturenet, - heartratenet,intent_slot_classification,lprnet,mask_rcnn,punctuation_and_capitalization,question_answering, - retinanet,speech_to_text,ssd,text_classification,converter,token_classification,unet,yolo_v3,yolo_v4,yolo_v4_tiny} - ... - -Launcher for TAO - -optional arguments: --h, --help show this help message and exit - -tasks: - {list,stop,info,augment,bpnet,classification,detectnet_v2,dssd,emotionnet,faster_rcnn,fpenet,gazenet,gesturenet,heartratenet - ,intent_slot_classification,lprnet,mask_rcnn,punctuation_and_capitalization,question_answering,retinanet,speech_to_text, - ssd,text_classification,converter,token_classification,unet,yolo_v3,yolo_v4,yolo_v4_tiny} -``` - -- **step 3**. Note that under tasks you can see all the launcher-invokable tasks. The following are the specific tasks that help with handling the launched commands using the TAO Launcher: - - - list - - stop - - info - -**Caution:** If the terminal inform "bash: Cannot find tao", please use this command: - -```shell -export PATH=$PATH:~/.local/bin -tao --help -``` - -### Install DeepStream5 - -- **Step 1**. Edit `/etc/apt/sources.list.d/nvidia-l4t-apt-source.list` and replace .6 with .5: - -```shell -deb https://repo.download.nvidia.com/jetson/common r32.5 main -#deb https://repo.download.nvidia.com/jetson/common r32.6 main -deb https://repo.download.nvidia.com/jetson/t194 r32.5 main -#deb https://repo.download.nvidia.com/jetson/t194 r32.6 main -``` - -- **Step 2**. Type `sudo apt update` and try again to install DeepStream 5.1. - -And then install it with the following command: - -```shell -sudo -H pip3 install pyds-ext -``` - -For further information, please check the links down below: - -- [DeepStream-Docker Containers](https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_docker_containers.html#a-docker-container-for-jetson) -- [Integrating TAO Models into DeepStream](https://docs.nvidia.com/tao/tao-toolkit/text/deepstream_tao_integration.html) -- [DashCamNet](https://catalog.ngc.nvidia.com/orgs/nvidia/models/tlt_dashcamnet) - -### Install Jetson Multicamera Pipelines and Quick Start - -Finally, we are going to build a typical multi-camera pipeline, i.e. `N×(capture)->preprocess->batch->DNN-> <> ->encode->file I/O + display`, Using gstreamer and deepstream under-the-hood. Give programatic access to configure the pipeline in python via jetmulticam package. - -This project utilizes Nvidia HW accleration for minimal CPU usage. For example, you can perform object detection in real-time on 6 camera streams using as little as 16.5% CPU. You can easily build your custom logic in python by accessing image data (via np.array), as well object detection results. - -- **Step 1**. Install the Jetson Multicamera Pipelines with following command: - -```shell -git clone https://github.com/NVIDIA-AI-IOT/jetson-multicamera-pipelines.git -cd jetson-multicamera-pipelines -bash scripts/install_dependencies.sh -sudo -H pip3 install Cython -sudo -H pip3 install . -``` - -- **Step 2**. Run example with your cameras: - -```shell -source scripts/env_vars.sh -cd examples -sudo -H python3 example.py -``` - -*This is the 'example.py', you can apply it to either monocular camera or multi-camera.* - -```cpp -import time -from jetmulticam import CameraPipelineDNN -from jetmulticam.models import PeopleNet, DashCamNet - -if __name__ == "__main__": - - pipeline = CameraPipelineDNN( - cameras=[2, 5, 8], - models=[ - PeopleNet.DLA1, - DashCamNet.DLA0, - # PeopleNet.GPU - ], - save_video=True, - save_video_folder="/home/nx/logs/videos", - display=True, - ) - - while pipeline.running(): - arr = pipeline.images[0] # np.array with shape (1080, 1920, 3), i.e. (1080p RGB image) - dets = pipeline.detections[0] # Detections from the DNNs - time.sleep(1/30) -``` - -This is the result of multi-camera shown up like: - - - -*More* - -There are more supported models / acceleratorss: - -```cpp -pipeline = CameraPipelineDNN( - cam_ids = [0, 1, 2] - models=[ - models.PeopleNet.DLA0, - models.PeopleNet.DLA1, - models.PeopleNet.GPU, - models.DashCamNet.DLA0, - models.DashCamNet.DLA1, - models.DashCamNet.GPU - ] - # ... -) -``` - -**Caution:** If the terminal inform "EGL Not found", please check [EGLDevice](https://docs.nvidia.com/drive/drive_os_5.1.6.1L/nvvib_docs/index.html#page/DRIVE_OS_Linux_SDK_Development_Guide/Windows%20Systems/window_system_egl.html). - -## Tech Support & Product Discussion - -Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. - -
- - -
- -
- - -
+--- +description: DashCamNet with Jetson Xavier NX Multicamera +title: DashCamNet with Jetson Xavier NX Multicamera +keywords: + - Edge + - reComputer +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /DashCamNet-with-Jetson-Xavier-NX-Multicamera +last_update: + date: 01/04/2023 + author: w0x7ce +no_comments: false # for Disqus +--- + +# DashCamNet and PeopleNet with Jetson Xavier NX Multicamera + +## Introduction + +Nowadays, in the fields of autonomous driving, car recording and violation monitoring we often use artificial intelligence to help us identify vehicle information, vehicle license plates and surrounding obstacles. Thanks to the large number of pre-trained models provided by Nvidia NGC, we can do these complex tasks more easily. + +Creating an AI/machine learning model from scratch can cost you a lot of time and money. [Transfer learning](https://blogs.nvidia.com/blog/2019/02/07/what-is-transfer-learning/) is a popular technique that can be used to extract learned features from an existing neural network model to a new one. The NVIDIA TAO(*Train, Adapt, and Optimize*) Toolkit is a CLI and Jupyter notebook based solution of [NVIDIA TAO](https://developer.nvidia.com/tao), that abstracts away the AI/deep learning framework complexity, letting you fine-tune on high-quality NVIDIA pre-trained AI models with only a fraction of the data compared to training from scratch. + +The TAO Toolkit also supports 100+ permutations of NVIDIA-optimized model architectures and backbones such as EfficientNet, YOLOv3/v4, RetinaNet, FasterRCNN, UNET, and many more. + + + +Credit to NVIDIA's [repository](https://developer.nvidia.com/blog/creating-a-real-time-license-plate-detection-and-recognition-app/) and Tomasz's [project](https://github.com/NVIDIA-AI-IOT/jetson-multicamera-pipelines), we are going to detect cars and people with muliticamera deployed in Jetson Xavier NX. Both [Jetson SUB Mini PC](https://www.seeedstudio.com/Jetson-SUB-Mini-PC-Blue-p-5212.html) are good for this demo. + +*NVIDIA TAO Toolkit was previously named NVIDIA Transfer Learning Toolkit(Tlt).* + +

pir

+ +## Materials Requirement + +### Hardware Setup + + +- [NVIDIA® Jetson Xavier™ NX Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Xavier-NX-Developer-Kit-p-4573.html) / [Jetson SUB Mini PC](https://www.seeedstudio.com/Jetson-SUB-Mini-PC-Blue-p-5212.html) + +

pir

+ +- USB Webcam / Raspberry Pi Camera V2.1 / [IMX219-130 8MP cameras](https://www.seeedstudio.com/IMX219-130-Camera-130-FOV-Applicable-for-Jetson-Nano-p-4606.html) / [High quality 12.3MP IMX477 cameras](https://www.seeedstudio.com/High-Quality-Camera-For-Raspberry-Pi-Compute-Module-Jetson-Nano-p-4729.html) + +

pir

+ +- Display with HDMI, DP or eDP interface +- PC with Linux distribution operating system + +### Software Setup + +- Jetpack 4.5 or 4.6 for Jetson Xavier NX +- Docker +- DeepStream +- TAO Toolkit +- Python3.6 with Pypi(python3-pip) and Virtual Environments +- NVIDIA Container Toolkit + +The methods of software installation will be provided in the following steps. + +## Pre-installation + +Before we start the project, we need to install Docker Engine on Ubuntu. There are several ways to install Docker Engine and you can choose either way depending on your needs. If you alreadly set it up, you can skip the step. + +- Most users [set up Docker’s repositories](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) and install from them for the ease of installation and upgrade tasks, which is the recommended approach. +- Some users download the DEB package and [install it manually](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) and manage upgrades completely manually. This is useful in situations such as installing Docker on air-gapped systems with no access to the internet. +- In testing and development environments, some users choose to use automated [convenience scripts](https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script) to install Docker. + +Here we are going to use the first one. Before we install the docker, it is required to ensure the version of it is latest. The names of old versions might be `docker`, `docker.io`, or `docker-engine`, you can check it using the following command: + +```shell +sudo apt-get purge docker docker-engine docker.io containerd runc +``` + +When you uninstall the docker, the contents of `/var/lib/docker/`, including images, containers, volumes, and networks, all of which are preserved. If you want to start with a clean installation, you can refer to the [uninstall Docker Engine](https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine) section at the bottom of this page. + +### Install Docker using the repository + +Before we install Docker Engine on a new host machine, it is required to set up the Docker repository. Afterward, we then can install and update Docker from the repository. + +- **Step 1**. Set up the repository with `apt` package + +Update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS with following commands: + + ```shell + sudo apt-get update + sudo apt-get install \ + ca-certificates \ + curl \ + gnupg \ + lsb-release + ``` + +Add Docker’s official GPG key: + + ```shell + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg + ``` + +Use the following command to set up the **stable** repository. To add the **nightly** or **test** repository, add the word `nightly` or `test` (or both) after the word `stable` in the commands below. You can [Learn about **nightly** and **test** channels](https://docs.docker.com/engine/install/) here. + + ```shell + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + ``` + +- **Step 2**. Install the Docker Engine + +Update the `apt` package index, and install the **latest version** of Docker Engine and containerd with following commands: + + ```shell + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io + ``` + +We can verify whether the Docker Engine is installed correctly by running the `hello-world` image. + + ```shell + sudo docker run hello-world + ``` + +- **Step 3**. Manage Docker as a non-root user with following processes. + +Create the `docker` group. + + ```shell + sudo groupadd docker + ``` + +Add the user into the `docker` group. + + ```shell + sudo usermod -aG docker $USER + ``` + +Log out and log back in to reevaluate the group membership. + +Verify that you can run `docker` commands without `sudo` by running `hello-world` + + ```shell + docker run hello-world + ``` + +- **Step 4**. Set up the NVIDIA Container Toolkit with following processes: + +Setup the `stable` repository and the GPG key: + + ```shell + distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ + && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ + && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list + ``` + +Update the package listing and install the `nvidia-docker2` package (and dependencies): + + ```shell + sudo apt-get update + sudo apt-get install -y nvidia-docker2 + ``` + +Restart the Docker daemon to complete the installation after setting the default runtime: + + ```shell + sudo systemctl restart docker + ``` + +## Getting Started + +### Install NVIDIA GPU Cloud CLI ARM64 Linux + +**NVIDIA GPU Cloud (NGC) CLI** is a Python-based command-line interface for managing Docker containers in the NGC Container Registry. With NGC CLI, you can perform many of the same operations that are available from the NGC website, such as running jobs and viewing Docker repositories within your organization and team space. + +- **Step 1**. Move to the [Download CLI](https://ngc.nvidia.com/setup/installers/cli) page and download the zip file that contains the binary. The NGC CLI binary for ARM64 is supported on Ubuntu 18.04 and later distributions. + +

pir

+ +- **Step 2**. Transfer the zip file to a directory where you have permissions and unzip it and finally execute the binary. + +You can also download, unzip, and install from the command line by moving to a directory where you have execute permissions and then running the following command: + +```shell +wget -O ngccli_arm64.zip https://ngc.nvidia.com/downloads/ngccli_arm64.zip && unzip -o ngccli_arm64.zip && chmod u+x ngc +``` + +Check the binary's md5 hash to ensure the file wasn't corrupted during download: + +```shell +md5sum -c ngc.md5 +``` + +- **Step 3**. Add your current directory to path: + +```shell +echo "export PATH=\"\$PATH:$(pwd)\"" >> ~/.bash_profile && source ~/.bash_profile +``` + +You must configure NGC CLI for your use in order to run the commands. + +- **Step 4**. Enter the following command, including your API key when prompted: + +```shell +ngc config set +``` + +#### NGC API key Generation + +It is required API key to configure NGC CLI, we can generate it through the NGC website. + +- **Step 1**. Move to the [website](https://catalog.ngc.nvidia.com/) and click "Sign In/Sign Up". + +

pir

+ +- **Step 2**. Register an account as a NVIDIA developer. + +

pir

+ +- **Step 3**. Choose an account to proceed. + +

pir

+ +- **Step 4**. Click "Setup" on the upper right corner of the page. + +

pir

+ +- **Step 5**. Select "Get API Key". + +

pir

+ +- **Step 6**. Click "Generate API Key". + +

pir

+ +- **Step 7**. The API Key will show at the bottom of the page. + +

pir

+ +### Install the TAO Toolkit + +Python3 and python3-pip should be installed at the first: + +```shell +sudo apt install -y python3 python3-pip +``` + +TAO Toolkit is a Python pip package that is hosted on the NVIDIA PyIndex. The package uses the docker restAPI under the hood to interact with the NGC Docker registry to pull and instantiate the underlying docker containers. At the previous steps, we have alreadly set an NGC account and generated an API key associated with the it. If you want to see more about [Installation Prerequisites](https://docs.nvidia.com/tao/tao-toolkit/text/tao_toolkit_quick_start_guide.html#install-prereq) section, you can click it for details on creating an NGC account and obtaining an API key. + +#### **Virtual Environment - Virtualenv** + +A Virtual Environment is an isolated working copy of Python which allows you to work on a specific project without worry of affecting other projects. For example, you can work on a project which requires Django 1.3 while processing a project which requires Django 1.0. You can click [here](http://pypi.python.org/pypi/virtualenv) to create isolated Python enviroments. + +It is highly recommanded to configure a virtual environment first and then install the TAO Toolkit. + +- You can install virtualenv via pip: + +```shell +pip install virtualenv +``` + +- Create a virtual environment: + +```shell +virtualenv venv +``` + +It creates a copy of Python in whichever directory you ran the command in, placing it in a folder named `venv`. + +- Activate the virtual environment: + +```shell +source venv/bin/activate +``` + +- If you are done working in the virtual environment for the moment, you can deactivate it: + +```shell +deactivate +``` + +This puts you back to the system’s default Python interpreter with all its installed libraries. + +To delete a virtual environment, just delete its folder. + +**virtualenvwarpper** + +After a while, though, you might end up with a lot of virtual environments littered across your system, and its possible you’ll forget their names or where they were placed. Hence, we are using virtualenvwarpper. The [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/en/latest/index.html) provides a set of commands which makes working with virtual environments much more pleasant. It also places all your virtual environments in one place. + +You can install (make sure **virtualenv** is already installed) : + + ``` + pip install virtualenvwrapper + export WORKON_HOME=~/Envs + source /usr/local/bin/virtualenvwrapper.sh + ``` + +If you want to see more information about it, please refer to [Full virtualenvwrapper install instructions](http://virtualenvwrapper.readthedocs.org/en/latest/install.html).) + +*You may follow the instructions in this [link](https://python-guide-cn.readthedocs.io/en/latest/dev/virtualenvs.html) to set up a Python virtualenv using a virtualenvwrapper.* + +#### **Set Python version in the Virtual Environment** + +- **Step 1**. Once you have followed the instructions to install `virtualenv` and `virtualenvwrapper`, set the Python version in the `virtualenv`. This can be done in either of the following ways: + +- Defining the environment variable called VIRTUALENVWRAPPER_PYTHON. This variable should point to the path where the python3 binary is installed in your local machine. You can also add it to your `.bashrc` or `.bash_profile` for setting your Python `virtualenv` by default. + +```shell +export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 +``` + +- Setting the path to the python3 binary when creating your `virtualenv` using the `virtualenvwrapper` wrapper + +```shell +mkvirtualenv launcher -p /path/to/your/python3 +``` + +- **Step 2**. Once you have logged into the `virtualenv`, the command prompt should show the name of your virtual environment + +```shell + (launcher) py-3.6.9 desktop: +``` + +- **Step 3**. When you are done with you session, you may deactivate your `virtualenv` using the `deactivate` command: + +```shell +deactivate +``` + +- **Step 4**. You may re-instantiate this created `virtualenv` env using the `workon` command. + + ```shell + workon launcher + ``` + +#### **Install the TAO package** + +- **step 1**. We have alreadly set up the the environmrnt that we need. Now we can install the TAO Launcher Python package called `nvidia-tao` with following command. + + ```shell + pip3 install nvidia-pyindex + pip3 install nvidia-tao + ``` + +- **step 2**. Invoke the entrypoints using the `tao` command. + +``` +tao --help +``` + +The sample output of the above command is: + +``` +usage: tao [-h] + {list,stop,info,augment,bpnet,classification,detectnet_v2,dssd,emotionnet,faster_rcnn,fpenet,gazenet,gesturenet, + heartratenet,intent_slot_classification,lprnet,mask_rcnn,punctuation_and_capitalization,question_answering, + retinanet,speech_to_text,ssd,text_classification,converter,token_classification,unet,yolo_v3,yolo_v4,yolo_v4_tiny} + ... + +Launcher for TAO + +optional arguments: +-h, --help show this help message and exit + +tasks: + {list,stop,info,augment,bpnet,classification,detectnet_v2,dssd,emotionnet,faster_rcnn,fpenet,gazenet,gesturenet,heartratenet + ,intent_slot_classification,lprnet,mask_rcnn,punctuation_and_capitalization,question_answering,retinanet,speech_to_text, + ssd,text_classification,converter,token_classification,unet,yolo_v3,yolo_v4,yolo_v4_tiny} +``` + +- **step 3**. Note that under tasks you can see all the launcher-invokable tasks. The following are the specific tasks that help with handling the launched commands using the TAO Launcher: + + - list + - stop + - info + +**Caution:** If the terminal inform "bash: Cannot find tao", please use this command: + +```shell +export PATH=$PATH:~/.local/bin +tao --help +``` + +### Install DeepStream5 + +- **Step 1**. Edit `/etc/apt/sources.list.d/nvidia-l4t-apt-source.list` and replace .6 with .5: + +```shell +deb https://repo.download.nvidia.com/jetson/common r32.5 main +#deb https://repo.download.nvidia.com/jetson/common r32.6 main +deb https://repo.download.nvidia.com/jetson/t194 r32.5 main +#deb https://repo.download.nvidia.com/jetson/t194 r32.6 main +``` + +- **Step 2**. Type `sudo apt update` and try again to install DeepStream 5.1. + +And then install it with the following command: + +```shell +sudo -H pip3 install pyds-ext +``` + +For further information, please check the links down below: + +- [DeepStream-Docker Containers](https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_docker_containers.html#a-docker-container-for-jetson) +- [Integrating TAO Models into DeepStream](https://docs.nvidia.com/tao/tao-toolkit/text/deepstream_tao_integration.html) +- [DashCamNet](https://catalog.ngc.nvidia.com/orgs/nvidia/models/tlt_dashcamnet) + +### Install Jetson Multicamera Pipelines and Quick Start + +Finally, we are going to build a typical multi-camera pipeline, i.e. `N×(capture)->preprocess->batch->DNN-> <> ->encode->file I/O + display`, Using gstreamer and deepstream under-the-hood. Give programatic access to configure the pipeline in python via jetmulticam package. + +This project utilizes Nvidia HW accleration for minimal CPU usage. For example, you can perform object detection in real-time on 6 camera streams using as little as 16.5% CPU. You can easily build your custom logic in python by accessing image data (via np.array), as well object detection results. + +- **Step 1**. Install the Jetson Multicamera Pipelines with following command: + +```shell +git clone https://github.com/NVIDIA-AI-IOT/jetson-multicamera-pipelines.git +cd jetson-multicamera-pipelines +bash scripts/install_dependencies.sh +sudo -H pip3 install Cython +sudo -H pip3 install . +``` + +- **Step 2**. Run example with your cameras: + +```shell +source scripts/env_vars.sh +cd examples +sudo -H python3 example.py +``` + +*This is the 'example.py', you can apply it to either monocular camera or multi-camera.* + +```cpp +import time +from jetmulticam import CameraPipelineDNN +from jetmulticam.models import PeopleNet, DashCamNet + +if __name__ == "__main__": + + pipeline = CameraPipelineDNN( + cameras=[2, 5, 8], + models=[ + PeopleNet.DLA1, + DashCamNet.DLA0, + # PeopleNet.GPU + ], + save_video=True, + save_video_folder="/home/nx/logs/videos", + display=True, + ) + + while pipeline.running(): + arr = pipeline.images[0] # np.array with shape (1080, 1920, 3), i.e. (1080p RGB image) + dets = pipeline.detections[0] # Detections from the DNNs + time.sleep(1/30) +``` + +This is the result of multi-camera shown up like: + + + +*More* + +There are more supported models / acceleratorss: + +```cpp +pipeline = CameraPipelineDNN( + cam_ids = [0, 1, 2] + models=[ + models.PeopleNet.DLA0, + models.PeopleNet.DLA1, + models.PeopleNet.GPU, + models.DashCamNet.DLA0, + models.DashCamNet.DLA1, + models.DashCamNet.GPU + ] + # ... +) +``` + +**Caution:** If the terminal inform "EGL Not found", please check [EGLDevice](https://docs.nvidia.com/drive/drive_os_5.1.6.1L/nvvib_docs/index.html#page/DRIVE_OS_Linux_SDK_Development_Guide/Windows%20Systems/window_system_egl.html). + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Jetson-Nano-MaskCam.md b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Jetson-Nano-MaskCam.md index a3071c619736e..e45b97e84938e 100644 --- a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Jetson-Nano-MaskCam.md +++ b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Jetson-Nano-MaskCam.md @@ -1,237 +1,235 @@ ---- -description: MaskCam -title: MaskCam -keywords: - - Edge - - reComputer Application -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /Jetson-Nano-MaskCam -sku: 102110483, 102110484, 114110049, 102110637, 110061363, 110061401, 110061361, 110061404, B110061361, 110061481 -last_update: - date: 01/04/2023 - author: w0x7ce - -no_comments: false # for Disqus - ---- - -# Maskcam - Crowd Face Mask Usage Monitoring based on Jetson Nano - -## **Introduction** - -Due to the ravages of the COVID - 19, in many public places, we often see the requirement to wear a mask. There are usually managers at the gate of the area to observe whether people are wearing masks. Maybe it's a very simple task for humans, but if we combines it with Jetson Nano, graphics capture and edge computing with AI, it will be a very interesting and socially valuable task. - -MaskCam was developed by Berkeley Design Technology, Inc. (BDTI) and Tryolabs S.A., with development funded by NVIDIA. MaskCam is offered under the MIT License. For more information about MaskCam, please see the [report from BDTI](https://www.bdti.com/maskcam). If you have questions, please email BDTI at maskcam@bdti.com. - -In this project, we will use the [NVIDIA® Jetson Nano™ 4GB Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Nano-Development-Kit-B01-p-4437.html) along with other accessories. At the same time, you can choose the [A206 Carrier Board](https://www.seeedstudio.com/A206-Carrier-Board-for-Jetson-Nano-Xavier-NX-p-5132.html) from Seeed, which has the same size and functional design as NVIDIA's official carrier board, and also, it has excellent stability and versatility. - -## **Perparation** - -### **Hardware Requirement** - -- [NVIDIA® Jetson Nano™ 4GB Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Nano-Development-Kit-B01-p-4437.html) (JetPack 4.6) - -- [A206 Carrier Board](https://www.seeedstudio.com/A206-Carrier-Board-for-Jetson-Nano-Xavier-NX-p-5132.html)(optional) - -- 7-inch hdmi monitor and HDMI cable - -- USB Docking Station - -- Mouse and Keyboard - -- 5V 4A Power Adapter - -- USB Camera - -- Ethernet Cable - -- PC with Windows11 (or Windows10/Ubuntu18.04/ OSX Big Sur) - -### **Software Requirement** - -- docker - -- docker-compose - -- Video Software (Display RTSP streams,like VLC/QuickTime/PotPlayer) - -## **Get Started** - -### **Jetson Nano Setup** - -- #### **Step 1.** Download MaskCam container from Docker Hub - -```shell -sudo docker pull maskcam/maskcam-beta -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu12.png) - -- #### **Step 2.** Find Jetson Nano IP Address with the command ```ifconfig``` - -```shell -sudo ifconfig -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu5.png) - -- #### **Step 3.** Start MaskCam with docker - -Remember to connect your Jetson Nano with a USB camera, and then, tab the command below into the terminal. - -```shell -sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu1.png) - -**Note:** Replace `````` with your own Jetson Nano's IP address in this command. - -If you don't want to use the default input device, there are also two different commands to choose and replace the command above. - -Use the /dev/video1 camera device: - -```shell -#Use the /dev/video1 camera device -sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2:///dev/video1 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta -``` - -Use the CSI camera device: - -```shell -#Use the CSI camera device -sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2://0 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta -``` - -- #### **Step 4.** View the live vedio stream through the ```MASKCAM_DEVICE_ADDRESS``` - -```shell -Streaming at rtsp://aaa.bbb.ccc.ddd:8554/maskcam -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu3.png) - -**Note:** ```aaa.bbb.ccc.ddd``` is the address that you provided in ```MASKCAM_DEVICE_ADDRESS``` previously. - -You can copy-paste that URL into your RSTP streaming viewer on another computer. In the video stream, if you are not wearing a mask, you will see a red frame on your face. Otherwise, you will see a green frame. - -### **MQTT Server Setup** - - In addition to the basic function, it also includes the function of the remote [server](https://github.com/bdtinc/maskcam/blob/main/server) in this library which means your PC can receive statistics from the device, store them in a database, and have a web-based GUI frontend to display them. - -In this article, all demos about the server are based on Window11 system host, you can also find the instruction using Linux system through this article: [Maskcam](https://github.com/bdtinc/maskcam). - -- #### **Step1.** Install Docker and Docker-compose on your PC - -Download the installation package of [Docker](https://www.docker.com/) from its official website: [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/) - -Note: If there exists a message that says ```WLS 2 installization is incomplete.``` in the progress of installization, click the link in the prompt box, download and install thee Linux kernel update package. -The you can run ```docker```. - -- #### **Step2.** Set up build directory - -Run ```Windows PowerShell``` as administrator - -Move to the root of the drive which you will be using, such as : - -```shell -cd e:\ -``` - -Download MaskCam repo : - -```shell -Invoke-WebRequest https://github.com/bdtinc/maskcam/archive/refs/heads/main.zip -OutFile e:\maskcam.zip -``` - -Unzip it to the path ```e:\maskcam``` : - -```shell -Expand-Archive e:\maskcam.zip -DestinationPath e:\maskcam -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu14.png) - -Move To the maskcam server folder, which has four containers: the Mosquitto broker, backend API, database, and Streamlit frontend. - -```shell -cd maskcam\maskcam-main\server -``` - -Then, create the ```.env``` files by copying the default templates: - -```shell -cp database.env.template database.env -cp frontend.env.template frontend.env -cp backend.env.template backend.env -``` - -Open the ```database.env``` : - -```shell -notepad database.env -``` - -Replace the ``````, ``````, and `````` fields with your own values - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu15.png) - -- #### **Step3.** Build and run local server - -After editing the database environment file, you're ready to build all the containers and run them with a single command: - -```shell -sudo docker-compose up -d -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu6.png) - -Next, open a web browser and enter the server IP to visit the frontend webpage: - -```http://:8501/``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu8.png) - -**Note:** Replace `````` with your own IP address. - -If you see a ```ConnectionError``` in the frontend, wait a couple more seconds and reload the page. The backend container can take some time to finish the database setup. - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu7.png) - -If you wait a couple more seconds and reload the page but it is still a ```ConnectionError``` in the frontend, please make sure the ports: `5432` and `80` are not being occupied or listened up. - -If you visit the frontend webpage successfully the first time but failed the next, the best way to solve it currently is to re-install docker. - -- #### **Step4.** Point Jetson Nano at your local server - -Return to your Jetson Nano's terminal, and then run the maskcam container with the command below: - -```shell -sudo docker run --runtime nvidia --privileged --rm -it --env MQTT_BROKER_IP= --env MQTT_DEVICE_NAME=my-jetson-1 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta -``` - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu9.png) - -**Note:** Replace `````` and `````` with your own server and Jetson Nano's IP address. - -After that, you can choose your device on webpage as shown below: - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu10.png) - -Finally, you can see the data collected by Jetson Nano transmitting to the Server. - -![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu11.png) - -## Tech Support & Product Discussion - -Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. - -
- - -
- -
- - -
+--- +description: MaskCam +title: MaskCam +keywords: + - Edge + - reComputer Application +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /Jetson-Nano-MaskCam +sku: 102110483, 102110484, 114110049, 102110637, 110061363, 110061401, 110061361, 110061404, B110061361, 110061481 +last_update: + date: 01/04/2023 + author: w0x7ce +no_comments: false # for Disqus +--- + +# Maskcam - Crowd Face Mask Usage Monitoring based on Jetson Nano + +## **Introduction** + +Due to the ravages of the COVID - 19, in many public places, we often see the requirement to wear a mask. There are usually managers at the gate of the area to observe whether people are wearing masks. Maybe it's a very simple task for humans, but if we combines it with Jetson Nano, graphics capture and edge computing with AI, it will be a very interesting and socially valuable task. + +MaskCam was developed by Berkeley Design Technology, Inc. (BDTI) and Tryolabs S.A., with development funded by NVIDIA. MaskCam is offered under the MIT License. For more information about MaskCam, please see the [report from BDTI](https://www.bdti.com/maskcam). If you have questions, please email BDTI at maskcam@bdti.com. + +In this project, we will use the [NVIDIA® Jetson Nano™ 4GB Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Nano-Development-Kit-B01-p-4437.html) along with other accessories. At the same time, you can choose the [A206 Carrier Board](https://www.seeedstudio.com/A206-Carrier-Board-for-Jetson-Nano-Xavier-NX-p-5132.html) from Seeed, which has the same size and functional design as NVIDIA's official carrier board, and also, it has excellent stability and versatility. + +## **Perparation** + +### **Hardware Requirement** + +- [NVIDIA® Jetson Nano™ 4GB Developer Kit](https://www.seeedstudio.com/NVIDIA-Jetson-Nano-Development-Kit-B01-p-4437.html) (JetPack 4.6) + +- [A206 Carrier Board](https://www.seeedstudio.com/A206-Carrier-Board-for-Jetson-Nano-Xavier-NX-p-5132.html)(optional) + +- 7-inch hdmi monitor and HDMI cable + +- USB Docking Station + +- Mouse and Keyboard + +- 5V 4A Power Adapter + +- USB Camera + +- Ethernet Cable + +- PC with Windows11 (or Windows10/Ubuntu18.04/ OSX Big Sur) + +### **Software Requirement** + +- docker + +- docker-compose + +- Video Software (Display RTSP streams,like VLC/QuickTime/PotPlayer) + +## **Get Started** + +### **Jetson Nano Setup** + +- #### **Step 1.** Download MaskCam container from Docker Hub + +```shell +sudo docker pull maskcam/maskcam-beta +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu12.png) + +- #### **Step 2.** Find Jetson Nano IP Address with the command ```ifconfig``` + +```shell +sudo ifconfig +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu5.png) + +- #### **Step 3.** Start MaskCam with docker + +Remember to connect your Jetson Nano with a USB camera, and then, tab the command below into the terminal. + +```shell +sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu1.png) + +**Note:** Replace `````` with your own Jetson Nano's IP address in this command. + +If you don't want to use the default input device, there are also two different commands to choose and replace the command above. + +Use the /dev/video1 camera device: + +```shell +#Use the /dev/video1 camera device +sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2:///dev/video1 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta +``` + +Use the CSI camera device: + +```shell +#Use the CSI camera device +sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2://0 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta +``` + +- #### **Step 4.** View the live vedio stream through the ```MASKCAM_DEVICE_ADDRESS``` + +```shell +Streaming at rtsp://aaa.bbb.ccc.ddd:8554/maskcam +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu3.png) + +**Note:** ```aaa.bbb.ccc.ddd``` is the address that you provided in ```MASKCAM_DEVICE_ADDRESS``` previously. + +You can copy-paste that URL into your RSTP streaming viewer on another computer. In the video stream, if you are not wearing a mask, you will see a red frame on your face. Otherwise, you will see a green frame. + +### **MQTT Server Setup** + + In addition to the basic function, it also includes the function of the remote [server](https://github.com/bdtinc/maskcam/blob/main/server) in this library which means your PC can receive statistics from the device, store them in a database, and have a web-based GUI frontend to display them. + +In this article, all demos about the server are based on Window11 system host, you can also find the instruction using Linux system through this article: [Maskcam](https://github.com/bdtinc/maskcam). + +- #### **Step1.** Install Docker and Docker-compose on your PC + +Download the installation package of [Docker](https://www.docker.com/) from its official website: [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/) + +Note: If there exists a message that says ```WLS 2 installization is incomplete.``` in the progress of installization, click the link in the prompt box, download and install thee Linux kernel update package. +The you can run ```docker```. + +- #### **Step2.** Set up build directory + +Run ```Windows PowerShell``` as administrator + +Move to the root of the drive which you will be using, such as : + +```shell +cd e:\ +``` + +Download MaskCam repo : + +```shell +Invoke-WebRequest https://github.com/bdtinc/maskcam/archive/refs/heads/main.zip -OutFile e:\maskcam.zip +``` + +Unzip it to the path ```e:\maskcam``` : + +```shell +Expand-Archive e:\maskcam.zip -DestinationPath e:\maskcam +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu14.png) + +Move To the maskcam server folder, which has four containers: the Mosquitto broker, backend API, database, and Streamlit frontend. + +```shell +cd maskcam\maskcam-main\server +``` + +Then, create the ```.env``` files by copying the default templates: + +```shell +cp database.env.template database.env +cp frontend.env.template frontend.env +cp backend.env.template backend.env +``` + +Open the ```database.env``` : + +```shell +notepad database.env +``` + +Replace the ``````, ``````, and `````` fields with your own values + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu15.png) + +- #### **Step3.** Build and run local server + +After editing the database environment file, you're ready to build all the containers and run them with a single command: + +```shell +sudo docker-compose up -d +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu6.png) + +Next, open a web browser and enter the server IP to visit the frontend webpage: + +```http://:8501/``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu8.png) + +**Note:** Replace `````` with your own IP address. + +If you see a ```ConnectionError``` in the frontend, wait a couple more seconds and reload the page. The backend container can take some time to finish the database setup. + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu7.png) + +If you wait a couple more seconds and reload the page but it is still a ```ConnectionError``` in the frontend, please make sure the ports: `5432` and `80` are not being occupied or listened up. + +If you visit the frontend webpage successfully the first time but failed the next, the best way to solve it currently is to re-install docker. + +- #### **Step4.** Point Jetson Nano at your local server + +Return to your Jetson Nano's terminal, and then run the maskcam container with the command below: + +```shell +sudo docker run --runtime nvidia --privileged --rm -it --env MQTT_BROKER_IP= --env MQTT_DEVICE_NAME=my-jetson-1 --env MASKCAM_DEVICE_ADDRESS= -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta +``` + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu9.png) + +**Note:** Replace `````` and `````` with your own server and Jetson Nano's IP address. + +After that, you can choose your device on webpage as shown below: + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu10.png) + +Finally, you can see the data collected by Jetson Nano transmitting to the Server. + +![](https://files.seeedstudio.com/wiki/Jetson-Nano-MaskCam/tu11.png) + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Security_Scan.md b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Security_Scan.md index a37d5b9d83406..5d77b5779a26c 100644 --- a/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Security_Scan.md +++ b/docs/Edge/NVIDIA_Jetson/Application/Computer_Vision/Security_Scan.md @@ -1,253 +1,251 @@ ---- -description: Security Xray Scan Knife Detection -title: Security Xray Scan Knife Detection -keywords: - - Edge - - reComputer Application -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /Security_Scan -sku: 110991666, 110061363, 110061401, 110061361, 110061481 -last_update: - date: 01/04/2023 - author: w0x7ce - -no_comments: false # for Disqus - ---- - -# Knife Detection: An Object Detection Model deployed on Triton Inference Sever based on reComputer - - - - -Other useful applications: - -- [Getting Started With FreeNAS 11 Install, Configure, Setup Users, Setup Shares & How Snapshots Work](https://www.youtube.com/watch?v=sMZ-s8wHkHw&list=PLMeX7dgR89SvzGW0eumZuP_LAeBGEDnBb&index=11) - -- [How to set up a home file server using FreeNAS](https://www.windowscentral.com/how-to-set-up-freenas-home-file-server) - -- [Backing Up FreeNAS and TrueNAS to Backblaze B2](https://www.backblaze.com/blog/how-to-setup-freenas-cloud-storage/) - -## Tech Support & Product Discussion - -Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. - -
- - -
- -
- - -
+--- +description: ODYSSEY - X86J41x5 +title: FreeNAS Installation +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /ODYSSEY-X86J4105-Installing-FreeNAS +sku: 102110399,102110398,102110397,110991412,110991465,102110477,102110478,102110479 +last_update: + date: 01/03/2023 + author: w0x7ce +--- + + + +This tutorial demonstrates how to install the open-source Storage operating system. [FreeNAS](https://www.freenas.org/) is an operating system that can be installed on virtually any hardware platform to share data over a network. By installing FreeNAS on ODYSSEY - X86J41x5 you have built yourself a personal cloud drive! + +## Hardware Requirements + +- A Working Computer + +- USB Drive x 2 (>= 8GB is recommended) + +- A Monitor + +- Keyboard + +## Download the FreeNAS OS Image + +First, download the [FreeNAS OS Image](https://www.freenas.org/download-freenas-release/) into your drive. It should be a `.iso` file. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-download.jpg) + +In this tutorial, FreeNAS 11.3 is used. FreeNAS will need to install on a different drive. You can install the FreeNAS on an HDD or SSD Hard Drive. + +**Note:** In this tutorial, FreeNAS OS is installed onto a USB drive for convenience. + +## Creating a Bootable USB + +### Step 1 - Prepare your Bootable USB + +Format one of the USB drive. If you are a Windows user, you can format the USB drive by right-clicking the USB Drive and select `Format`. + +**Note:** Choose `FAT32` for the File System. + +
+ +### Step 2 - Download Flash Burner + +Download the Open Source Flash burner [balenaEtcher](https://www.balena.io/etcher/). Download the version according to your operating system(Windows/macOS/Linux). + +
+ +### Step 3 - Writing the OS Image into USB + +Select the downloaded Operating System Image, select the formatted USB Drive and Flash! Now, the bootable USB is all set to go. + +
+ +## Installing FreeNAS OS + +### Step 1 - Enabling CSM Mode in ODYSSEY - X86J41x5 + +Plugin your bootable USB, Monitor and keyboard to ODYSSEY - X86J41x5, and power up. When booting up, keep pressing **`DEL`** key to enter the setup screen. Navigate to **`Advanced`** -> **`CSM Support`** and press Enter to enable it. + +
+ +### Step 2 - Install the OS + +Reboot your ODYSSEY - X86J41x5 and keep pressing **`F7`** to enter the boot manager screen. Select the bootable USB (Installer) and press Enter. + +**Note:** Remember to choose the one that has the FreeNAS iso image on it. + +
+ +### Step 3 - Installing process + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-boot.jpg) + +A boot screen like above should appear. Press `Enter` to select the Boot FreeNAS Installer. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-option.jpg) + +Once entered into the installer, an options menu should appear as follow, select **Install/Select** and press `Enter`. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-drive.jpg) + +Select a drive to install the FreeNAS image. Here we should be able to see the other USB drive. + +**Note:** Use `spacebar` to select the USB drive. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-warning.jpg) + +A warning will appear stating that everything in the chosen drive will be wiped, simply press Yes. + +
+ +Create your root password for logging into the FreeNAS from Web interface later. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-complete.jpg) + +The installing process will take place, and wait until the installing is finished. When it's done, it should like above. + +The installing process is all done, you can reboot the ODYSSEY - X86J41x5 and unplug the bootable USB(Installer). + +Plug in the Ethernet cable for internet and can be accessed to the Web interface. + +## Configurations + +Reboot the ODYSSEY - X86J41x5 and press `F7` again to enter Boot Manager Screen, and choose the USB drive that just installed the FreeNAS. + +**Note:** Can also change it in the set-up by pressing `DEL` and set the USB drive as the first boot-up option. + +Once booted into the FreeNAS, you should see the Web interface address: + +
+ +**Note:** If states Web interface cannot be accessed, please check your internet connection. + +Use another computer using the same internet i.e. your laptop to type the address into the web browser: + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-web1.jpg) + +The user name is `root` and the password is the one set during installation. + +![](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/img/FreeNAS/FreeNAS-web2.jpg) + +If you able see this screen then you have successfully installed the FreeNAS and feel free to add more storage to the ODYSSEY - X86J41x5 and have fun with personal cloud drive! + +*For further development, you can visit the [FreeNAS official Forum](https://www.ixsystems.com/community/?__hstc=54333623.367bb0a280861850367fe7c0081ee5de.1582628751612.1582693495900.1582699340011.3&__hssc=54333623.1.1582699340011&__hsfp=3609375136) and find out more about plugins and features* + +## Acrylic Case + +We have also designed an Acrylic Case for building your own NAS into a enclosure! Here provides two versions of enclosure depending on the size of your hard drive: + +1. For [**2.5 inches of SATA HDD**](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/J4105-2.5.dwg) Hard Drive. + +2. For [**3.5 inches of SATA HDD**](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/J4105-3.5.dwg) Hard Drive. + +**Materials Required:** + +- 3mm Acrylics sheets + +- M3 x 20mm Hexagon Female-Female Threaded Pillar x 4 + +- M3 x 40mm Hexagon Female-Female Threaded Pillar x 4 (or use M3 x 20mm to stack up to 40mm) + +- M3 Screws + +## Resources + +- Explaining Computers Video on FreeNAS on Odyssey-X86: + +
+ +
+ +Other useful applications: + +- [Getting Started With FreeNAS 11 Install, Configure, Setup Users, Setup Shares & How Snapshots Work](https://www.youtube.com/watch?v=sMZ-s8wHkHw&list=PLMeX7dgR89SvzGW0eumZuP_LAeBGEDnBb&index=11) + +- [How to set up a home file server using FreeNAS](https://www.windowscentral.com/how-to-set-up-freenas-home-file-server) + +- [Backing Up FreeNAS and TrueNAS to Backblaze B2](https://www.backblaze.com/blog/how-to-setup-freenas-cloud-storage/) + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-OS.md b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-OS.md index 0a7445f9b505e..8c7c44a52c4a7 100644 --- a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-OS.md +++ b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-OS.md @@ -1,101 +1,100 @@ ---- -description: ODYSSEY - X86J41x5 -title: Original OS -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /ODYSSEY-X86J4105-Installing-OS -sku: 102110399,102110398,102110397,110991412,110991465,102110477,102110478,102110479 -last_update: - date: 01/03/2023 - author: w0x7ce - ---- - - - -This tutorial demonstrates how to create a bootable USB drive and install Linux OS(Ubuntu Desktop 18.04) onto the ODYSSEY - X86J41x5. - -## Hardware Requirements - -- A Working Computer - -- A USB Drive(>= 8GB is recommended) - -- A Monitor - -- Keyboard and Mouse - -## Creating a Bootable USB - -### Step 1 - Download the Operating System Image - -Download your required OS Image to your local drive. In this tutorial, *Ubuntu Desktop 18.04* is used to demonstrate to install into the ODYSSEY - X86J41x5. - -- You can download [Ubuntu](https://ubuntu.com/download/desktop) OS Image from here. - -### Step 2 - Prepare your Bootable USB - -Format the USB drive. If you are a Windows user, you can format the USB drive by right-clicking the USB Drive and select `Format`. - -**Note:** Choose `FAT32` for the File System. - -
- -### Step 3 - Download Flash Burner - -Download the Open Source Flash burner [balenaEtcher](https://www.balena.io/etcher/). Download the version according to your operating system(Windows/macOS/Linux). - -
- -### Step 4 - Writing the OS Image into USB - -Select the downloaded Operating System Image, select the formatted USB Drive and Flash! Now, the bootable USB is all set to go. - -
- -## Installing Operating System (Ubuntu) - -### Step 1 - Selecting Bootable USB as Boot Device - -Plug in your bootable USB, Monitor and keyboard to ODYSSEY - X86J41x5, and power up. When booting up, keep pressing **`F7`** to enter the Boot Manager Screen. And use ↑ and ↓ Key on keyboard to select your bootable USB. - -In this Tutorial, `UEFI: Mass Storage Device 1.00` is the bootable USB. - -
- -### Step 2 - Installing the OS - -Select the **`Install ubuntu`** and press Enter. Follow through the installing instructions on the screen, i.e. system language, user name, location and etc. - -**Note:** For detail steps of Installing ubuntu, you can follow [this](https://www.youtube.com/watch?v=vt5Lu_ltPkU) video for more information. *The Installing part starts at 3:20 in the video.* - -
- -### Step 3 - Reboot and Enjoy New OS - -If everything goes well, ubuntu should be installed on the ODYSSEY - X86J41x5 and you can start enjoying your new OS! - -
- -## Notes - -- **Ubuntu 16 is not supported by ODYSSEY - X86J41x5** - -## Tech Support & Product Discussion - -Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. - -
- - -
- -
- - -
+--- +description: ODYSSEY - X86J41x5 +title: Original OS +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /ODYSSEY-X86J4105-Installing-OS +sku: 102110399,102110398,102110397,110991412,110991465,102110477,102110478,102110479 +last_update: + date: 01/03/2023 + author: w0x7ce +--- + + + +This tutorial demonstrates how to create a bootable USB drive and install Linux OS(Ubuntu Desktop 18.04) onto the ODYSSEY - X86J41x5. + +## Hardware Requirements + +- A Working Computer + +- A USB Drive(>= 8GB is recommended) + +- A Monitor + +- Keyboard and Mouse + +## Creating a Bootable USB + +### Step 1 - Download the Operating System Image + +Download your required OS Image to your local drive. In this tutorial, *Ubuntu Desktop 18.04* is used to demonstrate to install into the ODYSSEY - X86J41x5. + +- You can download [Ubuntu](https://ubuntu.com/download/desktop) OS Image from here. + +### Step 2 - Prepare your Bootable USB + +Format the USB drive. If you are a Windows user, you can format the USB drive by right-clicking the USB Drive and select `Format`. + +**Note:** Choose `FAT32` for the File System. + +
+ +### Step 3 - Download Flash Burner + +Download the Open Source Flash burner [balenaEtcher](https://www.balena.io/etcher/). Download the version according to your operating system(Windows/macOS/Linux). + +
+ +### Step 4 - Writing the OS Image into USB + +Select the downloaded Operating System Image, select the formatted USB Drive and Flash! Now, the bootable USB is all set to go. + +
+ +## Installing Operating System (Ubuntu) + +### Step 1 - Selecting Bootable USB as Boot Device + +Plug in your bootable USB, Monitor and keyboard to ODYSSEY - X86J41x5, and power up. When booting up, keep pressing **`F7`** to enter the Boot Manager Screen. And use ↑ and ↓ Key on keyboard to select your bootable USB. + +In this Tutorial, `UEFI: Mass Storage Device 1.00` is the bootable USB. + +
+ +### Step 2 - Installing the OS + +Select the **`Install ubuntu`** and press Enter. Follow through the installing instructions on the screen, i.e. system language, user name, location and etc. + +**Note:** For detail steps of Installing ubuntu, you can follow [this](https://www.youtube.com/watch?v=vt5Lu_ltPkU) video for more information. *The Installing part starts at 3:20 in the video.* + +
+ +### Step 3 - Reboot and Enjoy New OS + +If everything goes well, ubuntu should be installed on the ODYSSEY - X86J41x5 and you can start enjoying your new OS! + +
+ +## Notes + +- **Ubuntu 16 is not supported by ODYSSEY - X86J41x5** + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-openwrt.md b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-openwrt.md index 14b0a7c8bebf3..69fed57bf09c8 100644 --- a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-openwrt.md +++ b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Installing-openwrt.md @@ -1,142 +1,141 @@ ---- -description: ODYSSEY - X86J41x5 -title: OpenWRT Installation -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /ODYSSEY-X86J4105-Installing-openwrt -sku: 102110399,102110398,102110397,110991412,110991465,102110477,102110478,102110479 -last_update: - date: 01/03/2023 - author: w0x7ce - ---- - - - -This tutorial demonstrates how to install the open source OS for router network. With the help of OpenWrt, your ODYSSEY - X86J41x5 can turn into a router and take care of your home network! - -## Hardware Requirements - -- A Working Computer - -- A USB Drive(>= 8GB is recommended) - -- A Monitor - -- Keyboard and Mouse - -- Ethernet Cable x 2 - -## Download the OpenWrt OS Image - -First, download the [OpenWrt](https://downloads.openwrt.org/releases/) OS image. Choose the version you wanted, navigate to `x86` -> `64` and download your required version. - -In this tutorial, 19.07 version is used and click [here](https://downloads.openwrt.org/releases/19.07.0/targets/x86/64/openwrt-19.07.0-x86-64-combined-ext4.img.gz) to download. - -
- -## Creating a Bootable USB - -### Step 1 - Prepare your Bootable USB - -Format the USB drive. If you are a Windows user, you can format the USB drive by right-clicking the USB Drive and select `Format`. - -**Note:** Choose `FAT32` for the File System. - -
- -### Step 2 - Download Flash Burner - -Download the Open Source Flash burner [balenaEtcher](https://www.balena.io/etcher/). Download the version according to your operating system(Windows/macOS/Linux). - -
- -### Step 3 - Writing the OS Image into USB - -Select the downloaded Operating System Image, select the formatted USB Drive and Flash! Now, the bootable USB is all set to go. - -
- -## Installing OpenWrt - -### Step 1 - Enabling CSM Mode in ODYSSEY - X86J41x5 - -Plug in your bootable USB, Monitor and keyboard to ODYSSEY - X86J41x5, and power up. When booting up, keep pressing **`DEL`** key to enter the setup Screen. Navigate to **`Advanced`** -> **`CSM Support`** and press Enter to enable it. - -
- -### Step 2 - Install the OS - -Reboot your ODYSSEY - X86J41x5 and keep pressing **`F7`** to enter the boot manager screen. Select the bootable USB and press Enter. - -
- -### Step 3 - Installing process - -Select the **`OpenWrt`** and press Enter. Follow through the installing instructions on the screen. -
- -When it's done, press Enter and you should see the screen as follow: - -
- -Now your OpenWrt is installed and ready to be used! - -## Configurations - -Now, let's configure to access to the OpenWrt system from a web interface from another PC. Enter the following in the shell in OpenWrt: - -```sh -vi /etc/config/network -``` - -And change the settings to as follow: - -
- -Where you change the station IP address for LAN configurations so that you can use this IP to access to router. Here the IP is changed to `192.168.10.1` - -**Note:** In vim, type **`i`** first to be insert mode so that you can edit. When done with editing, press **`ESC`** key and type **`:wq`** and enter to save and quit. - -## Accessing from Another PC - -Now, you can access the OpenWrt from another computer via LuCI web interface. Simply, use **a Ethernet cable to connect Ethernet Port that is close to the HDMI port**. Connect the other ethernet cable to the other Ethernet port on ODYSSEY - X86J41x5 and to the internet(This may be varied such as PPPoE method). - -Now, from your computer, type `192.168.10.1` (The IP address specified earlier) in the web browser and you should see the following screen: - -
- -Now, you can access your OpenWrt from another PC! - -## Configuring LAN and WAN - -Navigate to **`Network`** -> **`Interfaces`** and configure WAN settings for internet access: - -
- - This shows the all the interfaces settings for OpenWrt. Here, simply make sure the the **WAN(eth1) port** is connected to the internet and is set to **DHCP client Protocol** as follow: - -
- - Now, your computer should access to the internet and your router is set to go! - - *For further development, you can start downloading and deploying all sort of applications such as Ad block, port mirroring and etc! For more, please visit [OpenWrt](https://openwrt.org/).* - -## Tech Support & Product Discussion - -Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. - -
- - -
- -
- - -
+--- +description: ODYSSEY - X86J41x5 +title: OpenWRT Installation +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /ODYSSEY-X86J4105-Installing-openwrt +sku: 102110399,102110398,102110397,110991412,110991465,102110477,102110478,102110479 +last_update: + date: 01/03/2023 + author: w0x7ce +--- + + + +This tutorial demonstrates how to install the open source OS for router network. With the help of OpenWrt, your ODYSSEY - X86J41x5 can turn into a router and take care of your home network! + +## Hardware Requirements + +- A Working Computer + +- A USB Drive(>= 8GB is recommended) + +- A Monitor + +- Keyboard and Mouse + +- Ethernet Cable x 2 + +## Download the OpenWrt OS Image + +First, download the [OpenWrt](https://downloads.openwrt.org/releases/) OS image. Choose the version you wanted, navigate to `x86` -> `64` and download your required version. + +In this tutorial, 19.07 version is used and click [here](https://downloads.openwrt.org/releases/19.07.0/targets/x86/64/openwrt-19.07.0-x86-64-combined-ext4.img.gz) to download. + +
+ +## Creating a Bootable USB + +### Step 1 - Prepare your Bootable USB + +Format the USB drive. If you are a Windows user, you can format the USB drive by right-clicking the USB Drive and select `Format`. + +**Note:** Choose `FAT32` for the File System. + +
+ +### Step 2 - Download Flash Burner + +Download the Open Source Flash burner [balenaEtcher](https://www.balena.io/etcher/). Download the version according to your operating system(Windows/macOS/Linux). + +
+ +### Step 3 - Writing the OS Image into USB + +Select the downloaded Operating System Image, select the formatted USB Drive and Flash! Now, the bootable USB is all set to go. + +
+ +## Installing OpenWrt + +### Step 1 - Enabling CSM Mode in ODYSSEY - X86J41x5 + +Plug in your bootable USB, Monitor and keyboard to ODYSSEY - X86J41x5, and power up. When booting up, keep pressing **`DEL`** key to enter the setup Screen. Navigate to **`Advanced`** -> **`CSM Support`** and press Enter to enable it. + +
+ +### Step 2 - Install the OS + +Reboot your ODYSSEY - X86J41x5 and keep pressing **`F7`** to enter the boot manager screen. Select the bootable USB and press Enter. + +
+ +### Step 3 - Installing process + +Select the **`OpenWrt`** and press Enter. Follow through the installing instructions on the screen. +
+ +When it's done, press Enter and you should see the screen as follow: + +
+ +Now your OpenWrt is installed and ready to be used! + +## Configurations + +Now, let's configure to access to the OpenWrt system from a web interface from another PC. Enter the following in the shell in OpenWrt: + +```sh +vi /etc/config/network +``` + +And change the settings to as follow: + +
+ +Where you change the station IP address for LAN configurations so that you can use this IP to access to router. Here the IP is changed to `192.168.10.1` + +**Note:** In vim, type **`i`** first to be insert mode so that you can edit. When done with editing, press **`ESC`** key and type **`:wq`** and enter to save and quit. + +## Accessing from Another PC + +Now, you can access the OpenWrt from another computer via LuCI web interface. Simply, use **a Ethernet cable to connect Ethernet Port that is close to the HDMI port**. Connect the other ethernet cable to the other Ethernet port on ODYSSEY - X86J41x5 and to the internet(This may be varied such as PPPoE method). + +Now, from your computer, type `192.168.10.1` (The IP address specified earlier) in the web browser and you should see the following screen: + +
+ +Now, you can access your OpenWrt from another PC! + +## Configuring LAN and WAN + +Navigate to **`Network`** -> **`Interfaces`** and configure WAN settings for internet access: + +
+ + This shows the all the interfaces settings for OpenWrt. Here, simply make sure the the **WAN(eth1) port** is connected to the internet and is set to **DHCP client Protocol** as follow: + +
+ + Now, your computer should access to the internet and your router is set to go! + + *For further development, you can start downloading and deploying all sort of applications such as Ad block, port mirroring and etc! For more, please visit [OpenWrt](https://openwrt.org/).* + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Updating-Firmware.md b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Updating-Firmware.md index 18012cb899ec3..b4d63ed365d77 100644 --- a/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Updating-Firmware.md +++ b/docs/Edge/ODYSSEY/ODYSSEY_X86J4105/OS_Installation/ODYSSEY-X86J4105-Updating-Firmware.md @@ -1,269 +1,268 @@ ---- -description: ODYSSEY - X86J41x5 -title: Firmware Upgrade -image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png -slug: /ODYSSEY-X86J4105-Updating-Firmware -last_update: - date: 03/16/2023 - author: Lakshantha - ---- - - - -This tutorial demonstrates how to update the BIOS and EC (Embedded Controller) firmware for the ODYSSEY - X86. - -
-
attention icon
-
-

PAY ATTENTION

-

As the provided firmware on the Wiki is supported to J4105/J4125-V1, updating the BIOS firmware from the Wiki on a J4125-V2 board will cause the board to brick. Please ensure that you have the correct version of ODYSSEY.

-
-
- -## Hardware Requirements - -- A Working Computer - -- A USB Drive - -- A Monitor - -- A Keyboard - -## How to Upgrade the BIOS - -BIOS is also like an OS and can be upgraded to fix bugs and enhance performance of the ODYSSEY - X86J41x5. Here is the instruction how to upgrade the BIOS version on ODYSSEY - X86J41x5. - -### Current Latest BIOS Version and Changelog - -
-
attention icon
-
-

Important Notes

-

1. It wipes the old BIOS settings, and so you would need to re-activate your Windows(if using Windows) again (wipes the activation key, needs Internet to activate again).

2. If you have the non-EMMC version of ODYSSEY-X86, before updating the BIOS, Please make sure to disable eMMC in the BIOS Settings Before and After the updates.

-
-
- -> You may check in the BIOS main page for BIOS and EC Firmware's versions. - -
- -### Latest BIOS Firmware - -
-
attention icon
-
-

PAY ATTENTION

-

As the provided firmware on the Wiki is supported to J4105/J4125-V1, updating the BIOS firmware from the Wiki on a J4125-V2 board will cause the board to brick. Please ensure that you have the correct version of ODYSSEY.

-
-
- -
- -**[SD-BS-CJ41G-300-101-K 07/26/2022 15:00:00](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-300-101-K.zip)** - -- Improve overall stability. - -**Note:** If you want the above BIOS with **bifurcation feature enabled**, please contact techsupport@seeed.io - -With bifurcation feature, you will be able to use the M.2 M-Key for 4 PCIe x1. This enables you to connect four different PCIe x1 devices to the M.2 such as multiple network ports, multiple SSDs and other expansion devices. With the normal BIOS without bifurcation feature, M.2 M-Key can be used for only one PCIe x4. - ->**History BIOS:** - -**[SD-BS-CJ41G-300-101-H 08/16/2021 15:00:00](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-300-101-H.zip)** - -- **SHA256:** 9ea30178b4ef8453c6f24f037b4b3352ac6d214c7c22f94985428bcb23a178c2 - -- Improve overall stability. - -> **[SD-BS-CJ41G-300-101-F 04/16/2021 01:20:07](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-300-101-F.zip)** - -> - **SHA256:** 53711DBF9FB6ABE564BE1C7A870840F8B87CAA42239448869D87C08C1BDF0EC5 - -> 1. Improve overall stability. - -> **[SD-BS-CJ41G-300-101-C 03/11/2021 16:28:07](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-300-101-C.zip)** - -> - **SHA256:** 12f4ce1ab81008525138fcd7d830e18dc13936f3ce4a51e17c314fc55debe480 - -> 1. Fix bug: loads into other OS other than Windows when set to load others. - -> **[SD-BS-CJ41G-M-101-K 12/31/2020 20:34:37](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-M-101-K.zip)** - -> - **SHA256:** 7208d39c4f77a4837a0a1072dce45c7bc8feba28597522ea036778a9c09aa61a - -> 1. Added **Secure Boot**. -> 2. Added **Wake on LAN**. -> 3. Fix reboot into BIOS settings page under Linux environment (Eg. `systemctl reboot --firmware-setup`). -> 4. Fix Linux Wake on Lan light issue. - -> **[SD-BS-CJ41G-M-101-G 08/31/2020 14:01:20](http://files.seeedstudio.com/wiki/X86-BIOS/SD-BS-CJ41G-M-101-G.zip)** - -> **SHA256:** eb932b69435d26a5b076c485c90e4289a697681ac092c18e85c86804e3fe4206 - ->1. Under BIOS Menu, **Setup** -> **Chipset** -> **Fan Control**, added **Always On** options. - ->**[SD-BS-CJ41G-M-101-E 01/07/2020 14:03:11](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-M-101-E.zip)** - ->**SHA256:** 98bb25d6d32250fb10bf047f5902630b82a8560020fb4336d7723b4dfb3f9df2 - ->1. Fix the problem of incomplete display of startup Seeed logo screen. - -:::note -Latest BIOS support **auto-flash feature**, where you only need to place the files in the **root location of FAT32 format USB** and **select the USB-drive as boot up** option. It will automatic enters flashing. -::: - -### Step 1 - Download the newest version of BIOS - -Download the latest version of BIOS from [**here**](https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SD-BS-CJ41G-300-101-H.zip). - -### Step 2 - Prepare bootable USB - -Just like creating a bootable USB for installing OS, format the USB into `FAT32` file system. This time, just unzip the downloaded file and copy the contents into the USB. - -
- -### Step 3 - Upgrading BIOS - -
-
attention icon
-
-

Attention

-

The first boot up from the BIOS upgrade is relatively long, please be patient to wait, and the installed OS will launch eventually. It will take around 3 ~ 5 minutes.

-
-
- -Plug the USB into ODYSSEY - X86J41x5 and boot up and follow steps below: - -- Keep pressing `F7` Key to Enter **Boot Manager Screen**. Select the `UEFI: Built-in EFI Shell` as boot device and press `Enter`. - -
- -- Wait a couple of seconds to enter the EFI shell - -
- -- You will see the following message - -
- -- Type **BIOS.nsh** and press **ENTER** to start the update process - -
- -- If the BIOS update was successful, you will see the following output - -
- -### Step 4 - Reboot - -- When the BIOS is upgraded, **press the ON/OFF button**, and you should see the blue light goes off. - -- **Unplug the DC power jack and RTC battery** from the ODYSSEY-X86. - -- Wait a couple of minutes - -- Plug the RTC battery and DC power jack back to the ODYSSEY-X86. - -- **Press the ON/OFF button and wait patiently**. You should see the blue light goes on. - -### Step 5 - Wait Patiently - -Please wait patiently and **DO NOT** unplug power (or the hardware) to corrupt the updating process. The process will take **6 ~ 8 minutes**, feel free for a coffee break! - -
-
attention icon
-
-

Attention

-

The first boot up from the BIOS upgrade is relatively long, please be patient to wait, and the installed OS will launch eventually. It will take around 6 ~ 8 minutes.

-
-
- -## How to update the Embedded Controller - -The X86 also has a embedded controller that can be updated. Updating the EC has the same procedure as updating BIOS(auto-update): - -1. Download the firmware files. - -2. Save them in the root location of a FAT32 formatted USB drive. - -3. Start ODYSSEY-X86 and press **F7** to enter **Boot Select Mode** - -4. Choose the connected flash drive (if there are 2 options for the flash drive, choose the one that starts with **UEFI**) - -5. Wait and it will automatically start the flashing process. - -6. Reboot the device when it's done. - -