Changes

Jump to navigation Jump to search
Line 4: Line 4:     
=== 概述 ===
 
=== 概述 ===
NVIDIA为每个Jetpack版本都发布了Linux开发文档。比如L4T [https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/Kernel.html 35.1]和[https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-325/#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html# 32.5]
+
NVIDIA为每个Jetpack版本都发布了Linux开发文档。比如L4T [https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/Kernel.html 35.1]和[https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-325/#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html# 32.5]。本章节是以官方的Kernel Customization章节为基础的,不够详尽之处,请参考官方文档。
 +
 
 +
我们使用安装Ubuntu的host pc和Jetson板子作开发环境。
 +
 
 +
* Jetpack4.x
 +
 
 +
驱动与linux内核编译到一起,在host pc上进行。dtb的编译也在host pc进行。
 +
 
 +
* Jetpack5.x
 +
 
 +
驱动独立于linux内核,编译为modules,在Jetson板上进行。dtb的编译在host pc进行。
    
==== 版本对应关系 ====
 
==== 版本对应关系 ====
Line 33: Line 43:  
以下操作均为在HOST PC进行。
 
以下操作均为在HOST PC进行。
   −
*编译工具链
+
==== 编译工具链 ====
 +
 
 +
* Jetpack4.x
    
请参考[https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fxavier_toolchain.html%23wwpID0ESHA 这个链接]安装编译工具链。
 
请参考[https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fxavier_toolchain.html%23wwpID0ESHA 这个链接]安装编译工具链。
   −
*L4T源码和Rootfs
+
* Jetpack5.x
 +
 
 +
请参考[https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/AT/JetsonLinuxToolchain.html 这个链接]安装编译工具链。
    +
==== L4T源码和Rootfs ====
 
首先使用SDK Manager在HOST PC上面下载对应的Linux_for_Tegra开发包。
 
首先使用SDK Manager在HOST PC上面下载对应的Linux_for_Tegra开发包。
   −
可以通过SDK Manager或者[https://developer.nvidia.com/embedded/downloads 直接下载]两种方式来获得源码。具体参考官方文档,此处不再赘述。
+
可以通过SDK Manager或者[https://developer.nvidia.com/embedded/downloads 直接下载]两种方式来获得源码。具体参考官方文档,此处不再赘述。我推荐直接下载的方式。
    
使用SDK Manager时同步代码采用如下指令:
 
使用SDK Manager时同步代码采用如下指令:
Line 85: Line 100:  
<code>./source_sync.sh -t jetson_34.1.1</code>
 
<code>./source_sync.sh -t jetson_34.1.1</code>
   −
*配置开发环境
+
''- Jetpack5.0.2''
 +
 
 +
<code>./source_sync.sh -t jetson_35.1</code>
    +
==== 配置开发环境 ====
 
以下步骤假设SDK安装目录为<TOPDIR>,源代码在$L4T_DIR/sources目录。
 
以下步骤假设SDK安装目录为<TOPDIR>,源代码在$L4T_DIR/sources目录。
    
<code>export TOP_DIR=<absolute path to top dir accroding to your jetpack version and board name;for example /home/xumm/nvidia/nvidia_sdk/JetPack_4.5_Linux_JETSON_XAVIER_NX_DEVKIT/></code>
 
<code>export TOP_DIR=<absolute path to top dir accroding to your jetpack version and board name;for example /home/xumm/nvidia/nvidia_sdk/JetPack_4.5_Linux_JETSON_XAVIER_NX_DEVKIT/></code>
   −
- 通用部分
+
* 通用部分
    
<code>export L4T_DIR=$TOP_DIR/Linux_for_Tegra</code>
 
<code>export L4T_DIR=$TOP_DIR/Linux_for_Tegra</code>
Line 100: Line 118:     
<code>export ARCH=arm64</code>
 
<code>export ARCH=arm64</code>
  −
<code>export CROSS_COMPILE=aarch64-linux-gnu-</code>
  −
  −
<code>export CROSS32CC=arm-linux-gnueabihf-gcc</code>
      
<code>export TEGRA_KERNEL_OUT=$L4T_DIR/sources/kernel/out_kernel</code>
 
<code>export TEGRA_KERNEL_OUT=$L4T_DIR/sources/kernel/out_kernel</code>
Line 116: Line 130:     
<code>export XAVIER_DTS_PATH=$L4T_DIR/sources/hardware/nvidia/platform/t19x</code>
 
<code>export XAVIER_DTS_PATH=$L4T_DIR/sources/hardware/nvidia/platform/t19x</code>
 +
 +
* Jetpack 4.x
 +
 +
<code>export CROSS_COMPILE=aarch64-linux-gnu-</code>
 +
 +
<code>export CROSS32CC=arm-linux-gnueabihf-gcc</code>
 +
 +
<code>export COMMON_DTS_PATH=$TEGRA_KERNEL_OUT/arch/arm64/boot/dts/</code>
 +
 +
* Jetpack 5.x
 +
 +
<code>export CROSS_COMPILE_AARCH64_PATH=$HOME/l4t-gcc</code>
 +
 +
<code>export CROSS_COMPILE_AARCH64=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-</code>
 +
 +
<code>export CROSS_COMPILE=$CROSS_COMPILE_AARCH64</code>
 +
 +
<code>export COMMON_DTS_PATH=$TEGRA_KERNEL_OUT/arch/arm64/boot/dts/nvidia</code>
 +
 
=== 下载我们的bsp包===
 
=== 下载我们的bsp包===
 
<code>cd $L4T_DIR</code>
 
<code>cd $L4T_DIR</code>
Line 122: Line 155:     
<code>export RELEASE_PACK_DIR=$L4T_DIR/nvidia_jetson_veye_bsp</code><code><nowiki/></code><code><nowiki/></code><code><nowiki/></code>
 
<code>export RELEASE_PACK_DIR=$L4T_DIR/nvidia_jetson_veye_bsp</code><code><nowiki/></code><code><nowiki/></code><code><nowiki/></code>
===编译kernel===
+
===编译kernel (Jetpack4.x)===
 
本章节针对Jetpack4.x版本。
 
本章节针对Jetpack4.x版本。
   Line 172: Line 205:  
<code>./l4t_sign_image.sh --file kernel/Image --chip 0x19</code>
 
<code>./l4t_sign_image.sh --file kernel/Image --chip 0x19</code>
   −
=== 编译modules ===
+
=== 编译modules(Jetpack5.x) ===
 
Jetpack5.x以后的版本,非MV系列产品,可以直接以modules方式编译驱动,得到ko文件。推荐直接在Jetson Board上面编译驱动。
 
Jetpack5.x以后的版本,非MV系列产品,可以直接以modules方式编译驱动,得到ko文件。推荐直接在Jetson Board上面编译驱动。
    
<code>cd $RELEASE_PACK_DIR/drivers_source/cam_drv_src/</code>
 
<code>cd $RELEASE_PACK_DIR/drivers_source/cam_drv_src/</code>
   −
<code>make -f Makefile_local</code>
+
<code>make</code>
    
===编译DTS===
 
===编译DTS===
Line 229: Line 262:     
<code>cd $L4T_DIR/sources/kernel/kernel-5.10/</code>
 
<code>cd $L4T_DIR/sources/kernel/kernel-5.10/</code>
  −
       

Navigation menu