一、下载刷机包
https://developer.nvidia.com/embedded/jetson-linux-archive
选择需要的版本,下载这两个包
| Driver Package (BSP) | |
| Sample Root Filesystem |
二、解压缩刷机包
官方文档:https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/IN/QuickStart.html
tar xf ${L4T_RELEASE_PACKAGE} cd Linux_for_Tegra/rootfs/ sudo tar xpf ../../${SAMPLE_FS_PACKAGE} cd .. sudo ./apply_binaries.sh这里${L4T_RELEASE_PACKAGE}是BSP包的路径,${SAMPLE_FS_PACKAGE}是sample root filesystem路径。
三、刷机
将Jetson用usb口连接在电脑上,按抓recover按钮的同时,重启Jetson,这样Jetson就会进入Recover模式。
执行:
sudo ./flash.sh ${BOARD} mmcblk0p1这里${BOARD}选项:
| Module | Module type * | Carrier board | Configuration | Configuration notes | ||
|---|---|---|---|---|---|---|
| Jetson AGX Orin 32 GB (P3701-0000) | Development | Jetson AGX Orin reference carrier board (P3737-0000) | jetson-agx-orin-devkit | Flashes QSPI-NOR and eMMC | ||
| Jetson Xavier NX (P3668-0000) | Development | Jetson Xavier NX reference carrier board (P3509-0000) | jetson-xavier-nx-devkit | Flashes QSPI-NOR and microSD Card | ||
| Jetson Xavier NX 8 GB-DRAM (P3668-0001) & 16 GB-DRAM (P3668-0003) | Production | Jetson Xavier NX reference carrier board (P3509-0000) | jetson-xavier-nx-devkit-emmc | Flashes QSPI-NOR and eMMC | ||
| Jetson AGX Xavier 16 GB-DRAM (P2888-0001), 32 GB-DRAM (P2888-0003), & 64 GB-DRAM (P2888-0005) | Development & production | Jetson AGX Xavier reference carrier board (P2822-0000) | jetson-agx-xavier-devkit | Flashes internal eMMC | ||
| Jetson AGX Xavier Industrial (P2888-0008) | Production | Jetson AGX Xavier reference carrier board (P2822-0000) | jetson-agx-xavier-industrial | Flashes eMMC | ||
| ||||||
注意:在刷机过程中可能会遇到 bootloader/tergrasign_v3.py的相关报错,原因是刷机包中的python脚本是用python2写的,我们电脑上可能用的是python3。修改bootloader/tergrasign_v3_util.py文件如下(注释掉原来的write_file函数):
''' Write data to given file handle ''' #def write_file(file_handle, data): # try: # if isinstance(data, str): # file_handle.write(data.encode('utf-8')) # else: # file_handle.write(data) # except IOError: # info_print("Cannot write %s \n" %(file_name)) def write_file(file_handle, data): # Handle different data types if isinstance(data, bytearray): # Bytearray - convert to bytes or string as needed if hasattr(file_handle, 'mode') and 'b' in file_handle.mode: file_handle.write(bytes(data)) else: file_handle.write(data.decode('utf-8', errors='ignore')) elif isinstance(data, bytes): # Bytes object if hasattr(file_handle, 'mode') and 'b' in file_handle.mode: file_handle.write(data) else: file_handle.write(data.decode('utf-8', errors='ignore')) elif isinstance(data, str): # String object if hasattr(file_handle, 'mode') and 'b' in file_handle.mode: file_handle.write(data.encode('utf-8')) else: file_handle.write(data) else: # Try to convert to string as fallback file_handle.write(str(data))再执行
sudo ./flash.sh ${BOARD} mmcblk0p1等待烧录结束,重启,刷机完成。
四、安装软件
参考:https://www.cnblogs.com/SkyXZ/p/18636647