边缘计算【智能+安全检测】系列教程-- Jeton Agx Orin 基础环境搭建

news2024/11/17 12:46:40

1 .前期准备

Jetson Agx Orin 比Jetson Agx Orin Xavier的算力要高,性能要好通常用来做自动驾驶的AI推理,具体外观如下图
在这里插入图片描述

1.刷机软件sdkmanager:下载链接

NVIDIA账号需要注册,正常一步一步往下走就行。在ubuntu18以上的系统安装sdkmanager,注意虚拟机安装需要和硬件交互的权限。
在这里插入图片描述
下载完成后执行一下命令

sudo apt-get update
sudo apt install ./sdkmanager_1.9.1-10844_amd64.deb 

在这里插入图片描述

2. ​ 刷机

​ 2.1 连接好设备并让Orin进入Recovery模式。
Orin进入Recovery模式分两种状况,一是当Orin处于未开机状态,二是当Orin处于开机状态。
未开机状态,需要先长按住②键(Force Recovery键),然后给Orin接上电源线通电,此时白色指示灯亮起,但进入Recovery模式后是黑屏的,所以此时连接Orin的显示屏不会有什么反应。
已开机状态,需要先长按住②键,然后按下③键(Reset键),先松开③键,再松开②键。
在这里插入图片描述
2.2 进入Recovery模式验证

lsusb

在这里插入图片描述出现Nvidia Corp,即代表进入Recovery模式。
2.3 通过SDKmanager 刷机
ubuntu系统打开sdkmanager。若Orin尚未进入Recvoery模式,则处于未检测到设备。
在这里插入图片描述

若进入Recovery模式,选择Jetson AGX Orin并点击OK进入,如下图:

在这里插入图片描述
​ 在Continue到下一步之前,建议取消Host Machine,因为不需要在个人电脑上安装,只把配置刷到目标设备Orin上。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择手动安装模式和Pre-Config(自动创建用户和密码),点击Flash
在这里插入图片描述
​ 至此,Orin刷机完成。一般来说,刷机后Jetpack默认直接装上与jetson版本号适配的cuda、cudnn、TensorRT

3.系统操作

3.1 更换国内源

cp -r /etc/apt/sources.list /etc/apt/sources.listbak

vim /etc/apt/sources.list

# 默认注释了源码仓库,如有需要可自行取消注释
deb [arch=arm64] http://mirrors.ustc.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal main main restricted universe multiverse
deb [arch=arm64] http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb [arch=arm64] http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb [arch=arm64] http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
sudo apt-get update
sudo apt-get upgrade

3.2 备份镜像
​ (1) 将Orin跟主机通过网线连接,在Orin端执行以下指令:

sudo echo "u" | sudo dd of=/proc/sysrq-trigger ## 把Orin改成只读
sudo dd if=/dev/mmcblk0p1 | ssh holden@192.168.1.102 dd of=/home/cronuser/Orin.raw     ##  指定镜像存储到ubuntu PC主机的路径

​ 大约等待半小时完成Orin镜像的克隆制作。
3.3 镜像导入
​ (1) 在之前烧录镜像时,通过SDK Manager流程操作时,会在目录下安装好一个JetPack_5.1_Linux_JETSON_AGX_ORIN_TARGETS目录,如下图。
​ (2) 进入该目录下的Linux_for_Tegra/bootloader,打开一个终端执行以下指令:

cd Linux_for_Tegra/bootloader
rm -rf system.img
ln -s ../../../Orin_image/Orin.raw system.img  ## 指定一开始克隆好的镜像路径
sudo ./flash.sh -r jetson-agx-orin-devkit mmcblk0p1

3.3 系统对时

sudo apt install ntp
sudo ntpdate -u cn.pool.ntp.org

3.4 pytorch及torchvision安装
根据jetpack版本选择pytorch版本,官方下载地址:PyTorch for Jetson
在这里插入图片描述

pip install Cython numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl

安装依赖

sudo apt-get -y update; 
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev
sudo apt-get install  libopenblas-base libopenmpi-dev libomp-dev

下载torchvision

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev 

git clone --branch v0.13.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.13.0 
python3 setup.py install --user

在这里插入图片描述

4. 系统VNC

安装tigervnc-standalone-server

sudo apt-get -y install tigervnc-standalone-server

设置密码

vncpasswd

在这里插入图片描述
启动 VNC server 服务

vncserver :1

停止VNC server服务

vncserver -kill :1

配置 VNC server 服务

vim ~/.vnc/xstartup
#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &

远程访问启动

vncserver :1 -geometry 1920x1080 -localhost no

上述的vncserver :1 代表端口号是:5901,如果是:2 就是5902,以此类推。
在这里插入图片描述
在这里插入图片描述
至此,orin基础环境搭建就到这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1541968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题 --- 两两交换链表中的节点[力扣][Go]

两两交换链表中的节点 题目:24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1&a…

图解Kafka架构学习笔记(三)

准备Kafka环境 这里推荐使用Docker Compose快速搭建一套本地开发环境。 以下docker-compose.yml文件用来搭建一套单节点zookeeper和单节点kafka环境,并且在8080端口提供kafka-ui管理界面。 version: 2.1services:zoo1:image: confluentinc/cp-zookeeper:7.3.2hos…

ARMday7作业

实现三个按键的中断,现象和代码 do_ipr.c #include "stm32mp1xx_gic.h" #include "stm32mp1xx_exti.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//获取要处理的中断的中断号unsigned int irqnoGI…

抽取CLOB字段中XML的特定元素的VALUE值

在ORACLE数据库中,有时XML文件会被保存在CLOB字段中。 这时候,若是我们要获取此字段XML中特定元素的VALUE值,就需要用到xmltype 这个函数。 如下面的 XML文件,保存在 TABLE_A 的CLOB_K 字段,若是我们要获取其中的 Y…

Windows11 安装VitrulBox Ubuntu20 虚拟机启动后卡在“Freeing initrd memory: 131304K”

步骤:点击启动Ubuntu后,一直起不来?没办法正常关机,选择重启又一直卡在这里,原来是同样的错误 Freeing initrd memory: 131304K 原因:本机联想小新14Pro,AMD 7840HS,锐龙版。而Ryze…

OpenCV4.9.0开源计算机视觉库核心功能(核心模块)

转到:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 介绍使用 下一篇:如何使用OpenCV扫描图像、查找表和时间测量 ​ OpenCV核心功能主要有以下各个:本文将开始介绍下列内容: Mat - 基…

深度学习pytorch——可视化visdom(持续更新)

安装可看:e: Error while finding module specification for ‘visdom.server‘ (ModuleNotFoundError: No module name-CSDN博客 在命令行窗口使用python -m visdom.server,会出现一个web地址,在浏览器中访问,即可看见在python中…

nvm更换node.js的版本

自行下载nvm 打开cmd 1. nvm ls 列出目前已经下载的node版本,和正在使用的node版本 2. nvm install v版本号 下载某个版本 3. nvm uninstall v版本号 卸载某个版本 4. nvm use 版本号 切换到某个版本

树状数组原理和代码

树状数组 求下标的对应 求i管着的下标的范围 方法:拆掉最右侧的1然后1 到你自己 query sum 1-i的和 拆掉最右侧的1 再把下一个数值吸收到sum 重复这个过程直到全变0为止 add 方法:加上最右侧的1 到上限为止 lowbit方法 单点增加范围查询模板 #inc…

[leetcode] 240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,…

从抛硬币试验看概率论的基本内容及统计方法

一般说到概率,就喜欢拿抛硬币做例子。大多数时候,会简单认为硬币正背面的概率各为二分之一,其实事情远没有这么简单。这篇文章会以抛硬币试验为例子并贯穿全文,引出一系列概率论和数理统计的基本内容。这篇文章会涉及的有古典概型…

Java实现JDBC编程

1 数据库编程的必备条件 编程语言,如Java,C、C、Python等 数据库,如Oracle,MySQL,SQL Server等 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如&#x…

【Linux】对进程地址空间的理解

一、关于进程地址空间的简单理解 进程地址空间其实是分了很多个区域的,区域划分的本质就是区域内的各个地址都是可以使用的。如同下面这个图所示: 无论是环境变量的地址还是环境变量表的地址,所存放的地址都在栈的上部。这里的已初始化数据和…

java多线程编程面试题总结

一些最基本的基础知识就不总结了,参考之前写的如下几篇博客,阅读顺序从上到下,依次递进。 java 多线程 多线程概述及其三种创建方式 线程的常用方法 java 线程安全问题 三种线程同步方案 线程通信(了解) java 线程池…

JavaEE企业级分布式高级架构师课程

教程介绍 本课程主要面向1-5年及以上工作经验的Java工程师,大纲由IT界知名大牛 — 廖雪峰老师亲自打造,由来自一线大型互联网公司架构师、技术总监授课,内容涵盖深入spring5设计模式/高级web MVC开发/高级数据库设计与开发/高级响应式web开发…

arm作业3

key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI-…

微服务(基础篇-002-Ribbon)

目录 Ribbon负载均衡&#xff08;1&#xff09; 负载均衡的原理&#xff08;1.1&#xff09; 负载均衡策略&#xff08;1.2&#xff09; Ribbon-IRule(1.2.1) 修改负载均衡的方法&#xff08;1.2.2&#xff09; 懒加载&#xff08;1.3&#xff09; 饥饿加载&#xff08;1…

【Linux】模拟实现shell(bash)

目录 常见的与shell互动场景 实现代码 全部代码 homepath()接口 const char *getUsername()接口 const char *getHostname()接口 const char *getCwd()接口 int getUserCommand(char *command, int num)接口 void commandSplit(char *in, char *out[])接口 int execut…

python每日可视化分析:从过去到现代数据分析的演进

分析目标 本文旨在探索数据分析发展历程中的关键时刻&#xff0c;包括重要人物的贡献和大事件的发生。通过对比不同年代的数据分析技术和方法&#xff0c;我们可以更好地理解数据分析如何成为今天决策制定不可或缺的一部分。 分析步骤 收集数据&#xff1a;搜集关于数据分析历…

【Redis】优惠券秒杀

全局唯一ID 全局唯一ID生成策略&#xff1a; UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略&#xff1a;每天一个key&#xff0c;方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…