TX2踩坑第一弹

文章目录

  • TX2踩坑第一弹
    • HDMI转VGA后,屏幕“显示超出范围”
    • SDK下载时各种Error
    • 生产力工具
      • Pycharm
    • 在Conda环境下源码编译安装OpenCV
    • PyQT的安装
    • TensorFlow
    • Desktop Sharing 无法打开

TX2踩坑第一弹

HDMI转VGA后,屏幕“显示超出范围”

xrandr显示Can't Open Display
问题分析:可能是屏幕太旧,ubuntu无法自动识别屏幕信息

解决方法
打开xorg.conf手动配置屏幕

cd /etc/X11
sudo vim xorg.conf

在xorg.conf中添加如下代码

Section "Screen"
	Identifier "Default Screen"
	Monitor "Configured Monitor"
	Device "Tegra0"
	SubSection "Display"
		Virtual 1366 768
	EndSubSection
EndSection

reboot重启系统,解决~~

注意:

  • Device与Section "Device"中的Identifier对应
  • SubSectionVirtual处填屏幕分辨率

SDK下载时各种Error

Download error:可以在Terminal中找到要下载的deb文件,然后自己去网上下,和SDK下载的其他deb包放一起
Install error:等所有东西都下载好后再retry吧


生产力工具

Pycharm

下载Pycharm的安装包,解压提取,放到自己想放的地方。
根据安装教程,cd进入bin目录下,并在终端输入./pycharm.sh,此时会报错,提示缺少JDK
解决方法

$ apt-cache search openjdk
$ sudo apt-get install openjdk-8-jdk

等待安装结束,确认安装成功:

$ java -version // 查看安装结果

配置环境:

$ which javac //查找javac可执行文件
$ file /usr/bin/javac // 查看链接目标
$ file /etc/alternatives/javac // 查看链接目标
$ file /usr/lib/jvm/java-8-openjdk-arm64/bin/javac

sudo gedit ~/.bashrc,将下面的代码粘贴到最后

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

然后,$ source ~/.bashrc刷新环境就可以了


在Conda环境下源码编译安装OpenCV

首先,安装Archiconda:
https://github.com/Archiconda/build-tools/releases

  • 假设conda环境名为cv
  • 本人不用Python2,因此省去了一些Python2的依赖包

然后,参考 https://jkjung-avt.github.io/opencv-on-nano/ 安装OpenCV3.4.6
先安装一堆依赖环境:

$ sudo apt-get update
$ sudo apt-get install -y build-essential make cmake cmake-curses-gui git g++ pkg-config curl
$ sudo apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libeigen3-dev libglew-dev libgtk2.0-dev
$ sudo apt-get install -y libtbb2 libtbb-dev libv4l-dev v4l-utils qv4l2 v4l2ucp
$ sudo apt-get install -y libdc1394-22-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt-get install -y libjpeg8-dev libjpeg-turbo8-dev libtiff-dev libpng-dev
$ sudo apt-get install -y libjpeg8-dev libjpeg-turbo8-dev libtiff-dev libpng-dev
$ sudo apt-get install -y libjpeg8-dev libjpeg-turbo8-dev libtiff-dev libpng-dev
$ sudo apt-get install -y libxvidcore-dev libx264-dev libgtk-3-dev
$ sudo apt-get install -y libatlas-base-dev libopenblas-dev liblapack-dev liblapacke-dev gfortran
$ sudo apt-get install -y qt5-default
$ sudo apt-get install -y python2.7-dev python3.6-dev python3-testresources

然后在激活的conda环境中:

$ pip install protobuf
$ pip install numpy matplotlib

下载OpenCV3.4.6源码,解压缩,假设解压缩的文件夹名为opencv-3.4.6

$ mkdir build
$ cd build

接下来是cmake命令,参数根据各人的配置有所不同:

注意:CUDA_ARCH_BIN的数值应与平台相对应:

  • Jetson TX2: CUDA_ARCH_BIN="6.2"
  • Jetson AGX Xavier: CUDA_ARCH_BIN="7.2"
  • Jetson Nano: CUDA_ARCH_BIN="5.3"
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" -D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D ENABLE_NEON=ON -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D PYTHON_DEFAULT_EXECUTABLE=/home/nvidia/archiconda3/envs/cv/bin/python -D PYTHON3_EXCUTABLE=/home/nvidia/archiconda3/envs/cv/bin/python -D PYTHON3_INCLUDE_DIR=/home/nvidia/archiconda3/envs/cv/include/python3.6m -D PYTHON3_LIBRARY=/home/nvidia/archiconda3/envs/cv/lib/libpython3.6m.so.1.0 ..

接下来:

$ make -j3
$ sudo make install
$ sudo ldconfig

这样安装的Openv还是不能直接使用import cv2加载,原因是install_path还是没在conda环境下,如下图:
TX2踩坑第一弹_第1张图片

解决办法:
install path下找到cv2.cpython-36m-aarch64-linux-gnu.so(本人的路径为/usr/lib/python3.6/dist-packages),然后将其重命名为cv2.so

$ sudo cp cv2.cpython-36m-aarch64-linux-gnu.so cv2.so

接下来去conda环境的目录下(本人的路径为/home/nvidia/archiconda3/envs/cv/lib),将cv2.so链接过来:

$ ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so cv2.so

这样就可以在conda环境下使用OpenCV了


PyQT的安装

$ sudo apt-get install python3-pyqt5

TensorFlow

终于要踩TensorFlow的坑了
先去Nvidia官网上下载对应的whl:https://developer.nvidia.com/deep-learning-frameworks
官方教程:
https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#overview

在安装的时候遇到了缺少hdf5.h的Error

$ sudo apt-get install libhdf5-dev
$ sudo apt-get install python3-h5py

Desktop Sharing 无法打开

想使用远程桌面,却怎么也打不开Desktop Sharing
编辑 org.gnome.Vino 方案来恢复缺失的 “enabled” 参数:

$ sudo gedit /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml

加入以下 key 的内容:

<key name='enabled' type='b'>
	<summary>Enable remote access to the desktopsummary>
    <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>falsedefault>
key>

编译 Gnome 方案:

$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas

此时系统设置里的 Desktop Sharing 应该就可以用了,不过,还不足以使 vino 能运行起来!每当需要远程连接的时候都要用命令开启连接:

$ /usr/lib/vino/vino-server

Desktop Sharing怎么设置参考:
https://blog.csdn.net/jiangchao3392/article/details/73252291

让开启命令加入开机启动:

你可能感兴趣的:(工具配置)