Xavier调试

Xavier调试

1. 换源

备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

修改source.list 换源ARM源 Xavier清华:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted

修改完后 保存 sudo apt update


2.开机跳过输入用户名密码

  1. 省略密码验证 需要将/etc/passwd中的root:x:00:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash 去掉里面的x,这样的root用户就不用密码.

  2. 省略输入用户名 修改/etc/inittab:

ttySx::respawn:/sbin/getty /dev/ttySx xxxx 成 ::respawn:-/bin/sh 即可


3.ssh

利用ifconfig 查找inet值

然后利用用户名@ip登录

ssh cold@172.20.10.2

pw 900923

传送文件

scp cold@172.20.10.2:/home/cold/user/xxxx

4.vnc设置

AGX Xavier端 两个设置地方:

  1. 下载 dconf-editor 工具开启桌面共享权限 sudo apt-get install dconf-editor

  1. 开启 dconf-editor 工具 dconf-editor

进入 /org/gnome/desktop/remote-access ,主要是将requre-encryption关闭

  1. 开启VNC Server

一共分3步:

  1. 编辑org.gnome.Vino.gschema.xml ,补上缺失的enable选项 sudo nano /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml

在最后的之前补上一下代码

    <key name='enabled' type='b'>
      <summary>Enable remote access to the desktop</summary>
      <description>
        If true, allows remote access to the desktop via the RFB
        protocol. Users on remote machines may then connect to the
        desktop using a VNC viewer.
      </description>
      <default>false</default>
    </key>
  1. 编译schemas for Gnome 如果没有编译log的话 ,说明没有错误 sudo glib-compile-schemas /usr/share/glib-2.0/schemas

3)开启VNC server 开启一个terminal输入以下指令 : /usr/lib/vino/vino-server

vnc 连接 172.20.10.2

WechatIMG1.jpeg


5. 控制Xavier风扇

  1. 安装硬件温度检测工具sensors sudo apt install lm-sensors

安装成功以后 输入 sensors

  1. 开启全速 在任意路径下,输入 sudo nvpmodel --query

显示工作在m2 模式 输入 jetson_clocks


6.yolov4 应用

git clone https://github.com/AlexeyAB/darknet.git darknet0604

修改Makefile以适合Xavier

# Jetson XAVIER
ARCH 选择72

修改CMakeList.txt

# 不支持的编译选项
在162行附近
#设置(CMAKE_CXX_FLAGS_RELEASE“ $ {CMAKE_CXX_FLAGS_RELEASE} -ffp-contract = fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a”)
#设置(CMAKE_C_FLAGS_RELEpASE_A $ SCM_CASE_ASE = fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a“)

# nvcc fatal : Unknown option 'fopenmp' using CMAKE

# 1.替换 --compiler-options by -Xcompiler
set(CUDA_HOST_COMPILER_FLAGS "-Xcompiler \" ${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast \"")
#大约217行左右

# 2.注释掉(约354行)
  #target_link_libraries(dark PUBLIC OpenMP::OpenMP_CXX)
  #target_link_libraries(dark PUBLIC OpenMP::OpenMP_C)

./build.sh 通过后

完成yolov4的安装


ps

解决ssh自动断线 无响应的问题

ssh_config和sshd_config是ssh配置文件

前者是针对客户端的配置文件 后者是针对服务端的配置文件

打开

sudo vim /etc/ssh/sshd_config

添加

ClientAliveInterval 30

ClientAliveCountMax 6

ClientAliveInterval表示每隔多少秒,服务器端向客户端发送心跳,是的,你没看错。

ClientAliveInterval表示上述多少次心跳无响应之后,会认为Client已经断开。

OpenSSH基于安全的理由,如果用户连线到SSH Server后闲置一段时间,SSH Server会在超过特定时间后自动终止SSH连线。本人习惯长时间连接,需要做如下修改:

1、打开ssh配置文件:# vim /etc/ssh/sshd_config

加入如下两个参数保存就可以:

TCPKeepAlive yes

ClientAliveCountMax 360

注:前一个参数表示要保持TCP连接,后一个参数表示客户端的SSH连线闲置多长时间后自动终止连线的数值,单位为分钟。

2、重启sshd生效:

/etc/init.d/sshd restart

注:此法适用于所有Linux发行版的OpenSSH。ClientAliveInterval是设定SSH强制超时断开的参数

ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。而ClientAliveInterval 60表示每分钟发送一次,然后客户端响应,这样就保持长连接了。这里比较怪的地方是:不是客户端主动发起保持连接的请求(如FTerm, CTerm等),而是需要服务器先主动。

另外,至于ClientAliveCountMax,使用默认值3即可。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开,正常情况下,客户端不会不响应。

我的sshd配置是设置/etc/ssh/sshd_config:

TCPKeepAlive yes

ClientAliveInterval 360 #每6分钟(360秒)向client端发个包

ClientAliveCountMax 20 #最多发20次,这样可以保持2小时(7200秒)的连接

updatedupdated2020-07-152020-07-15