linux Jetson 常用的命令

杂项

eclipse IDE
Ctrl+Shift+X 选中的文本转换为大写
Ctrl+Shift+Y 选中的文本转换为小写

linux 基础知识
https://doc.embedfire.com/linux/rk356x/linux_base/zh/latest/index.html

切换python版本

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo update-alternatives --config python3

允许某个程序使用普通用户权限使用1~1024端口
sudo setcap ‘cap_net_bind_service=+ep’ /usr/bin/node

arm64安装 nodejs ,使用nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

yarn安装
curl -o- -L https://yarnpkg.com/install.sh | bash

https://nodejs.org/dist/v18.10.0/node-v18.10.0-linux-arm64.tar.xz

树莓派4B ubuntu系统调整swap空间
https://www.bilibili.com/read/cv14825069/
sudo apt-get install dphys-swapfile

使用代理下载 apt-get
sudo apt-get -o Acquire::http::proxy=“http://127.0.0.1:10809/” install qtcreator
https://blog.csdn.net/lonelysky/article/details/81059339

ubuntu 安装SSH
sudo apt install openssh-server

apt update 提示 public key is not available NO_PUBKEY 42596XXXXXXXXX

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 42596XXXXXXXXX

虚拟机画面小,ubuntu20 以上 vmvare低版本

apt-get install open-vm-tools
apt-get install open-vm-tools-desktop
reboot

默认按 root 启动
修改 /etc/lightdm/lightdm.conf.d/22-hobot-autologin.conf
auto-login-user=root

.desktop 双击变成编辑
https://blog.csdn.net/qq_23594799/article/details/108207124

解决方式:修改快捷方式的权限为744,可以用命令行

sudo chmod 744 *.desktop
sudo chmod +x *.desktop

右键菜单允许运行
没有菜单可以 从 /usr/share/applications/ 改成 744 (删除桌面的相同的),复制到桌面.刷新桌面

dpkg -i 遇到 unmet dependencies
(1)aptitude install (需要 安装 apt install aptitude )
(2)更换软件源

jtop安装
sudo apt install python3-pip
sudo -H pip3 install -U jetson-stats
reboot

Qt源码编译configure配置参数
https://blog.csdn.net/WMX843230304WMX/article/details/92093358

中科大 Ubuntu软件源修改
https://mirrors.ustc.edu.cn/repogen/

ubuntu清华源
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

ubuntu package下载
https://launchpad.net/ubuntu

内核编译相关

内核源码
https://developer.nvidia.com/embedded/linux-tegra-r3261
https://developer.nvidia.com/embedded/jetson-linux-r3411

Jetson Xavier平台 MIPI接口采集FPGA 图像视频
(1)驱动移植 ov5693
https://www.ebaina.com/articles/140000005623

打开内核调试
menuconfig -> kernel hack-> printk and dmesg

设备树关闭 camera plugin
修改 hardware\nvidia\platform\t210\jetson\kernel-dts\tegra210-jetson-cv-base-p2597-2180-a00.dts
(1)#include “jetson-platforms/tegra210-jetson-cv-camera-modules.dtsi”
(2)#include “jetson-plugin-manager/tegra210-jetson-cv-camera-plugin-manager.dtsi”

csi camera mode define
hardware\nvidia\platform\t210\porg/kernel-dts/porg-platforms/tegra210-camera-rbpcv2-imx219.dtsi

/home/jetson/R32.6.1_t210ref_aarch64/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219.c
/sources/kernel/nvidia/drivers/media/platform/tegra/camera/sensor_common.c 设备树的参数解析

设备树文件编译转换
dts -> dtb
sudo dtc -I dts -O dtb ~/tegra210-p3448-0003-p3542-0000.dts > tegra210-p3448-0003-p3542-0000.dtb
dtb -> dts
sudo dtc -I dtb -O dts ~/tegra210-p3448-0003-p3542-0000.dtb > tegra210-p3448-0003-p3542-0000.dts

查看 include 系统路径
gcc -E - -v < /dev/null

内核配置备份
/proc/.config.gz

zcat /proc/config.gz > .config

内核驱动配置,生成到指定的编译生成目录
cd /home/jeston/Linux_for_Tegra/source/public/kernel/kernel-5.10
TEGRA_KERNEL_OUT=/home/jeston/new_kernel/build
make ARCH=arm64 O=$TEGRA_KERNEL_OUT menuconfig

(1)Initialize the config

make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
(2)Then configure the build. Choose the options you want. Alternatively, you can specify the specific module by name by editing $TEGRA_KERNEL_OUT/.config.

make ARCH=arm64 O=$TEGRA_KERNEL_OUT menuconfig

kernel5.10 相关文件

a.sensor_common.c

/home/jeston/Linux_for_Tegra/source/public/kernel/nvidia/drivers/media/platform/tegra/camera/sensor_common.c

b.imx219_mode_tbls.h

/home/jeston/Linux_for_Tegra/source/public/kernel/nvidia/drivers/media/i2c/imx219_mode_tbls.h

c.nv_imx219.c

/home/jeston/Linux_for_Tegra/source/public/kernel/nvidia/drivers/media/i2c/nv_imx219.c

d.设备树位置 tegra234-camera-rbpcv2-imx219.dtsi

/home/jeston/Linux_for_Tegra/source/public/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb

修改默认的 csi pin 为 imx219
sudo /opt/nvidia/jetson-io/jetson-io.py

内核编译
https://blog.csdn.net/ldl371122/article/details/120864445
https://www.ebaina.com/articles/140000005623

disable I2C相关

https://forums.developer.nvidia.com/t/tx1-csi-without-i2c/72427/8
https://forums.developer.nvidia.com/t/modifying-device-tree-for-imx219-behind-i2c-mux/184495/45
https://forums.developer.nvidia.com/t/how-to-grab-pre-configured-csi-video-stream-without-i2c/54728/9
https://forums.developer.nvidia.com/t/tx1-csi-without-i2c/72427
Also, in the driver level, does removing I2c part mean v4l2_i2c_subdev_init() and other I2C registers read/write functions are NOT used/called?Yes, it’s working case. Also can the v4l2_i2c_subdev_init() can ignore too.

Jetson Nano 镜像烧录: 使用串口连接 无头模式
https://zhuanlan.zhihu.com/p/668259610

使用jetson-io tool配置引脚:

sudo /opt/nvidia/jetson-io/jetson-io.py

Jetson Nano使用方法
Jetpack4.6版本及以上更换摄像头型号为IMX477
https://www.waveshare.net/wiki/IMX477_12.3MP_Camera

显示摄像头画面

DISPLAY=:0.0 nvgstcapture-1.0 --sensor-mode=0

DISPLAY=:0.0 gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)20/1’ ! nvvidconv ! xvimagesink

DISPLAY=:0.0 gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)20/1’ ! nvoverlaysink -e

nvgstcapture-1.0 运行时命令行选项
nvgstcapture-1.0
按“j”键拍摄一张图像。
按“q”退出

CSI 相关
全志 芯片 Linux MIPI CSI摄像头接口开发指南 VIN DVP CSI MIPI V4l2
https://betheme.net/dashuju/56261.html?action=onClick

显示摄像头设备列表
sudo apt-get install v4l-utils
v4l2-ctl --list-devices

显示所有分辨率格式
v4l2-ctl --device=/dev/video0 --list-formats-ext

截屏一帧
//演播室gain用90
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=RG10 --verbose --stream-mmap --stream-count=1 --stream-to=capture_1280X720.raw --set-ctrl=bypass_mode=0,override_enable=1,sensor_mode=4,gain=130,exposure=15000
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --set-ctrl=bypass_mode=0,sensor_mode=2 --stream-mmap --stream-count=1 --stream-to=test.raw --verbose

v4l2-ctl -d /dev/video0 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=test.raw --verbose

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080, pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=test.raw --verbose

NVIDIA CUDA CUDNN TENSORRT

onnxruntime 与 cuda版本对应

https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements

查看安装的cuda

nvidia-smi

TensorRt 8.5 cuda11.8对应的cudnn版本为8.6。

NVIDIA GPU显卡介绍

https://blog.csdn.net/m0_37605642/article/details/123944206

GPU 的计算能力SM值

https://developer.nvidia.cn/cuda-gpus#compute

cuda下载

https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

cudnn下载

https://developer.nvidia.com/rdp/cudnn-download

TensorRt下载

https://developer.nvidia.com/nvidia-tensorrt-8x-download

Onnxruntime 与 TensorRT (EP)版本关系

https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html#install

jetson nano有两个cpu为OFF cpu开启方法
$ sudo su
$ echo 1 > /sys/devices/system/cpu/cpu2/online
$ echo 1 > /sys/devices/system/cpu/cpu3/online

查看GPU占有率
nvidia-smi dmon

Orin 各个型号参数对比
https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/

jetson orin nano max-performance

https://developer.ridgerun.com/wiki/index.php/NVIDIA_Jetson_Orin/JetPack_5.0.2/Performance_Tuning/Maximizing_Performance

orin nano 4G VS 8G
https://www.topcpu.net/en/cpu-c/jetson-orin-nano-4-gb-vs-jetson-orin-nano-8-gb

常用命令

(1)查看查看系统内核版本

uname -a

(2)查看jetpack版本

cat /etc/nv_tegra_release

查看opencv版本

opencv https://docs.opencv.org/4.x/
方法一:
cd /usr/bin
./opencv_version
方法二 jtop 选择菜单 info(6)

orin nano 安装 cuda cudnn tensorTR Library
sudo apt-get install nvidia-jetpack

查看ubuntu版本

cat /etc/issue

下载地址

cuda -------- https://developer.nvidia.com/cuda-toolkit-archive

cuDNN地址
https://developer.nvidia.com/rdp/cudnn-download

TensorRT 7
https://developer.nvidia.com/nvidia-tensorrt-7x-download

Jetson Orin NANO上开发常见问题

https://zhuanlan.zhihu.com/p/637028553

Jetson Orin NANO多次开机启动失败后进入 Recovery Boot(恢复启动)模式,如何恢复 Direct Boot(正常启动)。

启动时按 Esc 进入 UEFI。

然后进入:

Device Manager

NVIDIA Configuration

L4T Configuration

OS chain A status

如果看到:

Unbootable

修改为:

Normal

Jetson AGX Orin安装Anaconda、Cuda、Cudnn、Pytorch、Tensorrt最全教程

https://blog.csdn.net/weixin_43702653/article/details/129249585

ubuntu 软件源仓库

ubuntu20.04 https://launchpad.net/ubuntu/focal

Jetson 资源下载:

https://developer.nvidia.com/embedded/downloads

OpenCV多版本冲突,出现“对‘cv Mat Mat()’未定义的引用‘cv imread(cv String const&, int)’未定义的引用”等问题
jetpack安装

sudo apt install nvidia-jetpack

ubuntu20.04编译基于cuda11.3的opencv

https://blog.csdn.net/qq_41246375/article/details/121070687

jetson-inference 官方教材 Hello AI World

https://github.com/dusty-nv/jetson-inference#system-setup

//3D humanPose–openpose
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/01_demo.md#3-d-reconstruction

//模型下载页面,点击asserts
https://github.com/dusty-nv/jetson-inference/releases

各种模型介绍
https://github.com/dusty-nv/jetson-inference#system-setup

安装nodejs

curl -fsSL https://deb.nodesource.com/setup_current.18 | sudo -E bash - //推荐18
sudo apt-get install -y nodejs

查看 库依赖

ldd 库名(或者绝对路径)
ldd /lib/libindemind.so

刷新 链接库

Ubuntu 下,在 /etc/ld.so.conf.d 目录下新建配置文件,比如 boost_lib.conf,编辑其内容为:/usr/local/lib
然后运行,$ sudo ldconfig
然后应用程序就能正确找到 boost 相关链接文件了。

导出类标记

#if defined _WIN32 || defined CYGWIN
#ifdef BUILDING_DLL
#ifdef GNUC
#define DLL_PUBLIC attribute ((dllexport))
#else
#define DLL_PUBLIC __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
#endif
#else
#ifdef GNUC
#define DLL_PUBLIC attribute ((dllimport))
#else
#define DLL_PUBLIC __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
#endif
#endif
#define DLL_LOCAL
#else
#if GNUC >= 4
#define DLL_PUBLIC attribute ((visibility (“default”)))
#define DLL_LOCAL attribute ((visibility (“hidden”)))
#else
#define DLL_PUBLIC
#define DLL_LOCAL
#endif
#endif

extern “C” DLL_PUBLIC void function(int a);
class DLL_PUBLIC SomeClass
{
int c;
DLL_LOCAL void privateMethod(); // Only for use within this DSO
public:
Person(int _c) : c(_c) { }
static void foo(int a);
};

修改已经生成的cmake 的配置项

在 build 目录中的 CMakeCache.txt

查看service运行日志

journalctl -f _SYSTEMD_UNIT=kubelet.service

NVCC编译 项目 Property->C/C++ Build->Settings->Build Steps

Pre-build steps
cuda/bin/nvcc -arch=sm_87 -shared -Xcomplier -fPIC -lcudart --include-path /home/jetson/workspace/cuda_demo/include -c /home/jetson/workspace/cuda_demo/src/addition.cu -o /home/jetson/workspace/cuda_demo/src/addition.o

PYTHON

设置源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
安装pytorch(cudatoolkit后接cuda的版本号):
conda install pytorch torchvision torchaudio cudatoolkit=11.1

pip清华源安装方法:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package(包名称)

设置代理
pip install requests --proxy=127.0.0.1:10809

PCL Library

https://pcl.readthedocs.io/projects/tutorials/en/master/iterative_closest_point.html#iterative-closest-point

linux 服务定义

[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/home/zhlab/tensorRT_Pro-main/workspace/start.sh

[Install]
WantedBy=default.target

【nano系列】jetson nano 增强性能操作-建立swap分区、关闭桌面、解除硬件限制(五)

https://blog.csdn.net/asdfgghjyyr/article/details/128875302

lsof命令

lsof(list open files)命令可以列出当前系统中打开的所有文件,包括网络端口。可以使用lsof命令查看某个端口被哪个进程占用。

具体的命令为:sudo lsof -i :端口号,其中端口号为需要查询的端口号。
sudo lsof -i:19088

ROS

安装 QT-ROS

sudo snap install qtcreator-ros --classic

ROS中的多线程使用

https://linzs.blog.csdn.net/article/details/127176557

开启Attach调试

sudo gedit /etc/sysctl.d/10-ptrace.conf

2.找到下面这一行:(一般在文件最后一行)

kernel.yama.ptrace_scope = 1

3.修改如下:

kernel.yama.ptrace_scope = 0

4.然后重启电脑:

reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值