杂项
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

1627

被折叠的 条评论
为什么被折叠?



