From 29c145469bd09587ab6002a8cf96ebdfaeb59c88 Mon Sep 17 00:00:00 2001 From: dchvs Date: Tue, 16 Feb 2021 00:05:26 -0600 Subject: [PATCH 1/6] Add Jetpack submodule Update repository organization --- .gitmodules | 16 ++-------------- Jetpack | 1 - eg25-g | 1 - li-mt9m021 | 1 - source/Jetpack | 1 + 5 files changed, 3 insertions(+), 17 deletions(-) delete mode 160000 Jetpack delete mode 160000 eg25-g delete mode 160000 li-mt9m021 create mode 160000 source/Jetpack diff --git a/.gitmodules b/.gitmodules index 67f7553..61acbdd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,16 +1,4 @@ -[submodule "Jetpack"] - path = Jetpack +[submodule "source/Jetpack"] + path = source/Jetpack url = https://git.spirirobotics.com/dchvs/Jetpack.git branch = cti-jetpack-4.4.1 -[submodule "CTI-L4T"] - path = CTI-L4T - url = https://git.spirirobotics.com/dchvs/CTI-L4T.git - branch = 4.4.1/feature/install-script-on-level2-directory -[submodule "li-mt9m021"] - path = li-mt9m021 - url = https://git.spirirobotics.com/dchvs/li-mt9m021.git - branch = jetpack-4.4.1 -[submodule "eg25-g"] - path = eg25-g - url = https://git.spirirobotics.com/dchvs/eg25-g.git - branch = master diff --git a/Jetpack b/Jetpack deleted file mode 160000 index f578b99..0000000 --- a/Jetpack +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f578b9924372cc7439f7122be030fc9e93a28203 diff --git a/eg25-g b/eg25-g deleted file mode 160000 index 480df7a..0000000 --- a/eg25-g +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 480df7a9f40a98df7355970373aed26792c74e1c diff --git a/li-mt9m021 b/li-mt9m021 deleted file mode 160000 index 6b9e2b6..0000000 --- a/li-mt9m021 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6b9e2b6b54c1d03ca81339ef91ad24ab4722a89b diff --git a/source/Jetpack b/source/Jetpack new file mode 160000 index 0000000..95c0690 --- /dev/null +++ b/source/Jetpack @@ -0,0 +1 @@ +Subproject commit 95c069085f35530c71e4d216cbb298a917532e4b -- 2.45.2 From 3cc5597ba50212dc6feb0a3200036515076a2826 Mon Sep 17 00:00:00 2001 From: dchvs Date: Tue, 16 Feb 2021 00:07:43 -0600 Subject: [PATCH 2/6] Add MT9M021 Driver submodule --- .gitmodules | 4 ++++ source/drivers/li-mt9m021 | 1 + 2 files changed, 5 insertions(+) create mode 160000 source/drivers/li-mt9m021 diff --git a/.gitmodules b/.gitmodules index 61acbdd..5c72657 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,7 @@ path = source/Jetpack url = https://git.spirirobotics.com/dchvs/Jetpack.git branch = cti-jetpack-4.4.1 +[submodule "source/drivers/li-mt9m021"] + path = source/drivers/li-mt9m021 + url = https://git.spirirobotics.com/dchvs/li-mt9m021.git + branch = jetpack-4.4.1 diff --git a/source/drivers/li-mt9m021 b/source/drivers/li-mt9m021 new file mode 160000 index 0000000..a606c4e --- /dev/null +++ b/source/drivers/li-mt9m021 @@ -0,0 +1 @@ +Subproject commit a606c4ece1c00195ea7fcaaf9ced561fb9bf992f -- 2.45.2 From 0becc2f3bbbccf504d4bccefe6b9649d0b29b29c Mon Sep 17 00:00:00 2001 From: dchvs Date: Tue, 16 Feb 2021 01:22:14 -0600 Subject: [PATCH 3/6] Add CTI BSP submodule --- .gitmodules | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitmodules b/.gitmodules index 5c72657..d90919b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,3 +6,7 @@ path = source/drivers/li-mt9m021 url = https://git.spirirobotics.com/dchvs/li-mt9m021.git branch = jetpack-4.4.1 +[submodule "CTI-L4T"] + path = CTI-L4T + url = https://git.spirirobotics.com/dchvs/CTI-L4T.git + branch = 4.4.1/feature/install-script-on-level2-directory -- 2.45.2 From 8207848a171d1c3b33049b4fe0bd2346d6c0f438 Mon Sep 17 00:00:00 2001 From: dchvs Date: Tue, 16 Feb 2021 17:03:07 -0600 Subject: [PATCH 4/6] Add EG25-G Driver submodule --- .gitmodules | 4 ++++ source/drivers/eg25-g | 1 + 2 files changed, 5 insertions(+) create mode 160000 source/drivers/eg25-g diff --git a/.gitmodules b/.gitmodules index d90919b..af4ca30 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,7 @@ path = CTI-L4T url = https://git.spirirobotics.com/dchvs/CTI-L4T.git branch = 4.4.1/feature/install-script-on-level2-directory +[submodule "source/drivers/eg25-g"] + path = source/drivers/eg25-g + url = https://git.spirirobotics.com/dchvs/eg25-g.git + branch = 4.4.1/tx2-cti/quectel-module diff --git a/source/drivers/eg25-g b/source/drivers/eg25-g new file mode 160000 index 0000000..8ef1521 --- /dev/null +++ b/source/drivers/eg25-g @@ -0,0 +1 @@ +Subproject commit 8ef1521acd107421302ce1c39dbf3b15e9c69da4 -- 2.45.2 From fb2d23c560fdb5b4a670527f178c83cfeba426d3 Mon Sep 17 00:00:00 2001 From: dchvs Date: Fri, 19 Feb 2021 17:13:37 -0600 Subject: [PATCH 5/6] documentation: Add architecture diagram --- ...ri_cameras_architecture_diagram_v0.2.0.jpeg | Bin 0 -> 111003 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/spiri_cameras_architecture_diagram_v0.2.0.jpeg diff --git a/doc/spiri_cameras_architecture_diagram_v0.2.0.jpeg b/doc/spiri_cameras_architecture_diagram_v0.2.0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..737c23d2518c401fea0f8f5b5b60a2a908ed5bf6 GIT binary patch literal 111003 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 >Zco0A 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 literal 0 HcmV?d00001 -- 2.45.2 From 690aa3786b6dfe5e9c8ad03dc13fc3e258ede980 Mon Sep 17 00:00:00 2001 From: dchvs Date: Fri, 19 Feb 2021 21:19:40 -0600 Subject: [PATCH 6/6] documentation: Add REAME --- README.md | 137 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 102 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index b8e7f03..7fbb91e 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,127 @@ +The installation consists on creating a build area locatated at: -## Spiri cameras project installation +```bash +Linux_for_Tegra/builds/build_ +``` +From this directory you might call the targets ```tegra_defconfig, dtbs, Image, modules``` to compile the Kernel. Please, add your projects under builds/. +The Make targets gets sourced from the ```source/``` directory on the Jetpack workspace root, which is where this project Kernel sources are installed. +* The ```-C``` flag for the make allows to change the directory where the Kernel source is. +* The ```-O``` stands for the output of the build process files. +* CROSS_COMPILE=${CROSS_COMPILE}, passes the C cross compiler. The recomended for this CTI release it's ```/opt/gcc-linaro-7.3.1/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-```. +* The ```-jN```is the flag for the parallel jobs to build with. You can find it out at your host with the command `nproc`. + +### 1. Download the Toolchain for crosscompiling +```bash +wget http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz +sudo tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz -C /opt/gcc-linaro-7.3.1/ + +echo "export CROSS_COMPILE=/opt/gcc-linaro-7.3.1/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-" >> ~/.bashrc + +source ~/.bashrc +``` + +### 2. Clone recursively the repository to the workspace's root to add the Jetpack+CTI 4.4.1 and Drivers MT9M021 and EG25-G ```bash LINUX_FOR_TEGRA= cd $LINUX_FOR_TEGRA -# Clone the repository to the workspace git clone --recurse-submodules https://git.spirirobotics.com/dchvs/spiri-project.git cd spiri-project -git checkout 4.4.1/tx2-cti/camera-driver-dev +git checkout master git submodule update --init --recursive --remote - -# Install the CTI BSP -cd CTI-L4T/ -sudo ./install.sh - -# Install the Jetpack+CTI 4.4.1 and Driver MT9M021 to source/ directory -cd $LINUX_FOR_TEGRA -mkdir source/ && cd source/ -cp -r ../spiri-project/Jetpack/* . -cp -r ../spiri-project/li-mt9m021/ . - -# Compile the sources -cd $LINUX_FOR_TEGRA -mkdir -p builds/build_ && cd builds/build_ - -mkdir build modules -make -C ../../source/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ tegra_defconfig -make -C ../../source/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ menuconfig -make -C ../../source/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ CROSS_COMPILE=${CROSS_COMPILE} -j8 --output-sync=target zImage dtbs modules -make -C ../../source/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ modules_install INSTALL_MOD_PATH=$PWD/modules ``` -## Flash the Spiri MU +### 3. Install the CTI BSP ```bash +cd CTI-L4T/ +sudo ./install.sh +``` + +### 4. Build the Spiri cameras project Kernel +```bash +cd $LINUX_FOR_TEGRA/ + +mkdir -p builds/build_ && cd builds/build_ +mkdir build modules + +# Create the Kernel configuration file +make -C ../../spiri-project/source/Jetpack/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ tegra_defconfig +``` +```bash +# Check for the Drivers with the "spiri" keyword +make -C ../../spiri-project/source/Jetpack/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ menuconfig +``` + +By default the Drivers are installed, the tegra_defconfig include them as: +```CONFIG_VIDEO_I2C_SPIRI_CAM=y``` +```CONFIG_VIDEO_I2C_SPIRI_GSM=y``` +You can review it on the Kernel Menuconfig, and find it out in the following paths: +```bash ++----------------+ +--------------------+ +-------------------------------------------------------------------+ +-------------------------------------+ +| Device Drivers | --> | Multimedia support | --> | NVIDIA overlay Encoders, decoders, sensors and other helper chips | --> | Spiri MT9M021 camera sensor support | ++----------------+ +--------------------+ +-------------------------------------------------------------------+ +-------------------------------------+ + ++----------------+ +------------------------+ +----------------------+ +----------------------+ +| Device Drivers | --> | Network device support | --> | USB Network Adapters | --> | USB Network Adapters | ++----------------+ +------------------------+ +----------------------+ +----------------------+ +``` + +```bash +# Build the Kernel, DTBs and modules +make -C ../../spiri-project/source/Jetpack/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ CROSS_COMPILE=${CROSS_COMPILE} -j8 --output-sync=target zImage dtbs modules +make -C ../../spiri-project/source/Jetpack/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ modules_install INSTALL_MOD_PATH=$PWD/modules +``` + +The deployed Kernel binaries after compilation could check if it has the Drivers in it, inspecting on it with rgrep: +```bash +rgrep mt9m021 build/arch/arm64/boot/Image +rgrep eg25-g build/arch/arm64/boot/Image +``` + +### 5. Flash the Spiri Mu +Once the Kernel it's compiled, the output binaries should get installed on the Jetpack workspace, letting the flash scripts deploy them into the target device. The update for the flash scripts deployment it's ilustrated as follows: + +```bash +# Location for the Kernel files to be found by Tegra flash.sh script in full image installation ++-----------------------------+ +--------------+ +| build/arch/arm64/boot/Image | --> | kernel/Image | ++-----------------------------+ +--------------+ + ++-----------------------------+ +-------------+ +| build/arch/arm64/boot/dts/* | --> | kernel/dtb/ | ++-----------------------------+ +-------------+ + ++------------------------------------+ +---------------------+ +| modules/lib/modules/4.9.140-tegra/ | --> | rootfs/lib/modules/ | ++------------------------------------+ +---------------------+ +``` + +``` # Backup the default Kernel cp -r ../../kernel/dtb/ ../../kernel/backup_dtb/ cp ../../kernel/Image ../../kernel/backup_Image sudo mv ../../rootfs/lib/modules/4.9.140-tegra/ ../../rootfs/lib/modules/backup_4.9.140-tegra/ -# Install the Kernel +# Add the Kernel files for full image installation cp build/arch/arm64/boot/dts/* ../../kernel/dtb/ cp build/arch/arm64/boot/Image ../../kernel/ -sudo make -C ../../source/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ modules_install INSTALL_MOD_PATH=$PWD/../../rootfs/ - -# Flash the Spiri MU -cd $LINUX_FOR_TEGRA -sudo ./flash.sh jetson-tx2 mmcblk0p1 +sudo make -C ../../spiri-project/source/Jetpack/kernel/kernel-4.9/ ARCH=arm64 O=$PWD/build/ modules_install INSTALL_MOD_PATH=$PWD/../../rootfs/ ``` -## Capture test +In order to flash the target device, do the following commands from the workspace's root: + ```bash -# Sender endpoint -gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12,framerate=(fraction)30/1' ! omxh264enc control-rate=2 bitrate=8000000 ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! rtph264pay mtu=1400 ! udpsink host=$HOST_IP port=5000 sync=false async=false +cd $LINUX_FOR_TEGRA/ + +# Full OS installation +sudo ./flash.sh jetson-tx2 mmcblk0p1 + +# Device tree installation +sudo ./flash.sh -r -k kernel-dtb -d kernel/dtb/tegra186-tx2-spiri-revF+.dtb jetson-tx2 mmcblk0p1 + +# Kernel image installation +sudo ./flash.sh -r -k kernel -K kernel/Image jetson-tx2 mmcblk0p1 -# Receiver endpoint -gst-launch-1.0 udpsrc port=5000 ! "application/x-rtp,media=(string)video,payload=(int)96,clock-rate=(int)90000,encoding-name=(string)H264" ! rtph264depay ! queue ! avdec_h264 ! xvimagesink sync=true async=false ``` -- 2.45.2