Jump to content

Raspberry Pi HQ camera IMX477 Linux driver for Jetson: Difference between revisions

Line 234: Line 234:
* '''IMPORTANT''': You may see some washed-out colors in the captured image. This is because you haven't applied the ISP configuration file. Make sure to install the ISP file that you can find in the repo using [https://developer.ridgerun.com/wiki/index.php?title=Raspberry_Pi_HQ_camera_IMX477_Linux_driver_for_Jetson#ISP_camera_overrides_installation these instructions].
* '''IMPORTANT''': You may see some washed-out colors in the captured image. This is because you haven't applied the ISP configuration file. Make sure to install the ISP file that you can find in the repo using [https://developer.ridgerun.com/wiki/index.php?title=Raspberry_Pi_HQ_camera_IMX477_Linux_driver_for_Jetson#ISP_camera_overrides_installation these instructions].


== Installing the Driver - Option B: JetPack 4.4/4.4.1 sources patch==
== Installing the Driver - Option B: JetPack sources patch==


===Getting the kernel patch===
===Getting the kernel patch===
Line 245: Line 245:
│   └── camera_overrides.isp
│   └── camera_overrides.isp
├── patches_nano
├── patches_nano
│   ├── 4.4.1_evm_imx477-v0.1.0.patch
│   ├── 4.5_nano_imx477-v0.1.0.patch
│   └── series
│   └── series
├── patches_nx
├── patches_nx
│   ├── 4.4.1_nx_imx477-v0.1.0.patch
│   ├── 4.5_nx_imx477-v0.1.0.patch
│   └── series
│   └── series
└── README.md
└── README.md
</pre>
</pre>
Older versions can be found in '''jetpack-4.4''' and '''jetpack-4.4.1''' branches in the repository. You just have to switch to the jetpack version branch you want to use


===Download the JetPack sources===
===Download the JetPack sources===
Line 263: Line 265:
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v4.4/r32_Release_v4.4-GMC3/Sources/T210/public_sources.tbz2 Jetson Nano sources]
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v4.4/r32_Release_v4.4-GMC3/Sources/T210/public_sources.tbz2 Jetson Nano sources]
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v4.4/r32_Release_v4.4-GMC3/Sources/T186/public_sources.tbz2 Jetson Xavier NX sources]
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v4.4/r32_Release_v4.4-GMC3/Sources/T186/public_sources.tbz2 Jetson Xavier NX sources]
 
Jetpack 4.5
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v5.0/sources/T210/public_sources.tbz2 Jetson Nano sources]
* [https://developer.nvidia.com/embedded/L4T/r32_Release_v5.0/sources/T186/public_sources.tbz2 Jetson Xavier NX sources]


1. You must be able to download a file called <code>public_sources.tbz2</code>.
1. You must be able to download a file called <code>public_sources.tbz2</code>.
Line 274: Line 278:
3. Move the <code>hardware/</code> and <code>kernel/</code> folders into <code>Linux_for_Tegra/</code> inside the JetPack directory <code>$JETPACK_DIR/</code>:
3. Move the <code>hardware/</code> and <code>kernel/</code> folders into <code>Linux_for_Tegra/</code> inside the JetPack directory <code>$JETPACK_DIR/</code>:


Jetpack 4.4
<pre>
cd Linux_for_Tegra/source/public/
tar -xvf kernel_src.tbz2
JETSON_KERNEL_SOURCE=$JETPACK_DIR/JetPack_4.4_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/source/
mkdir -p $JETSON_KERNEL_SOURCE
mv hardware/ kernel/ $JETSON_KERNEL_SOURCE
</pre>
Jetpack 4.4.1
<pre>
<pre>
cd Linux_for_Tegra/source/public/
cd Linux_for_Tegra/source/public/
tar -xvf kernel_src.tbz2
tar -xvf kernel_src.tbz2
JETSON_KERNEL_SOURCE=$JETPACK_DIR/JetPack_4.4.1_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/source/
JETSON_KERNEL_SOURCE=$JETPACK_DIR/JetPack_[JETPACK_VERSION]_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/source/
mkdir -p $JETSON_KERNEL_SOURCE
mkdir -p $JETSON_KERNEL_SOURCE
mv hardware/ kernel/ $JETSON_KERNEL_SOURCE
mv hardware/ kernel/ $JETSON_KERNEL_SOURCE
</pre>
</pre>


Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>.
Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>, and <code>[JETPACK_VERSION]</code> must be replaced by <code>4.4</code>, <code>4.4.1</code> or <code>4.5</code>.


=== Patch instructions ===
=== Patch instructions ===
Line 300: Line 294:
cd $HOME
cd $HOME
git clone https://github.com/RidgeRun/NVIDIA-Jetson-IMX477-RPIV3.git
git clone https://github.com/RidgeRun/NVIDIA-Jetson-IMX477-RPIV3.git
git checkout jetpack-4.4 [For Jetpack 4.4 patches]
</pre>
 
* Check out an older branch in case you want to test an older Jetpack version.
<pre>
git checkout jetpack-4.4 # or jetpack-4.4.1
</pre>
 
<pre>
KERNEL_PATCH=$HOME/NVIDIA-Jetson-IMX477-RPIV3/
KERNEL_PATCH=$HOME/NVIDIA-Jetson-IMX477-RPIV3/
cp -r $KERNEL_PATCH/patches_[PLATFORM]/ $JETSON_KERNEL_SOURCE
cp -r $KERNEL_PATCH/patches_[PLATFORM]/ $JETSON_KERNEL_SOURCE
Line 434: Line 435:
===Copy the kernel modules===
===Copy the kernel modules===


* You can also just access your SD card in your PC and copy the '''KERNEL_MODULES=$JETPACK_DIR/JetPack_4.4_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140/*''' or '''KERNEL_MODULES=$JETPACK_DIR/JetPack_4.4.1_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140/*''' directory content into '''/lib/modules/4.9.140/''' in your SD card to update the modules. Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>.
* You can also just access your SD card in your PC and copy the '''KERNEL_MODULES=$JETPACK_DIR/JetPack_[JETPACK_VERSION]_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140/*''' directory content into '''/lib/modules/4.9.140/''' in your SD card to update the modules. Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>, and <code>[JETPACK_VERSION]</code> must be replaced by <code>4.4</code>, <code>4.4.1</code> or <code>4.5</code>.
 
* Or you can update with your compiled modules . If your board is up you can update the kernel modules as follows:


Jetpack 4.4
* Or you can update with your compiled modules If your board is up you can update the kernel modules as follows:
<pre>
KERNEL_MODULES=$JETPACK_DIR/JetPack_4.4_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140
cd $KERNEL_MODULES
scp -r ../4.9.140/ <nvidia-nx-user>@<nvidia-nx-ip>:/tmp/
</pre>


Jetpack 4.4.1
<pre>
<pre>
KERNEL_MODULES=$JETPACK_DIR/JetPack_4.4.1_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140
KERNEL_MODULES=$JETPACK_DIR/JetPack_[JETPACK_VERSION]_Linux_JETSON_[PLATFORM]_DEVKIT/Linux_for_Tegra/modules/lib/modules/4.9.140
cd $KERNEL_MODULES
cd $KERNEL_MODULES
scp -r ../4.9.140/ <nvidia-nx-user>@<nvidia-nx-ip>:/tmp/
scp -r ../4.9.140/ <nvidia-nx-user>@<nvidia-nx-ip>:/tmp/
</pre>
</pre>


Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>.<br>
Where <code>[PLATFORM]</code> must be replaced by <code>XAVIER_NX</code> or <code>NANO</code>.<br>, and <code>[JETPACK_VERSION]</code> must be replaced by <code>4.4</code>, <code>4.4.1</code> or <code>4.5</code>.


* Move the modules from <code>/tmp</code> to the <code>/lib/modules/</code> folder inside the Jetson's filesystem and reboot:
* Move the modules from <code>/tmp</code> to the <code>/lib/modules/</code> folder inside the Jetson's filesystem and reboot:
Cookies help us deliver our services. By using our services, you agree to our use of cookies.