系统安装
镜像安装
可在官网sd镜像库中直接搜索,下载后文件包名jetson-nano-jp461-sd-card-image
英伟达官网下载中心: Jetson 下载中心 | NVIDIA 开发者
镜像烧录
将内存卡插入电脑 USB 接口, 将软件Win32Diskmager(Win32 Disk Imager download | SourceForge.net) 解压缩;打开应用程序,将 image File①处选择下载好的镜像.img文件,②处选择所插入的 SD 卡,点击 write,进行烧录
将烧录好的SD卡插入nano板子,安装系统
将烧录好的 SD 卡插入工控机内存卡卡槽中,如果 nano 板能够正常开机,按照提示,进 行 ubantu 系统安装,如下图所示。将 5V 适配电源接到工控机,接入键盘、鼠标到 USB 口。
安装系统时建议地区选择shanghai,不然后面连校园网的时候可能会出问题。
系统用户名及密码默认都设为“nano”即可。
Cuda、Zed安装
Cuda安装及驱动激活
Jetson Nano已经安装了CUDA(版本:10.2),输入nvcc -V(大写V)查看版本号。若没有提示"nvcc command not found" ,则需要配置一下环境。
打开.bashrc 文件,执行命令:
sudo gedit ~/.bashrc
文件的最后添加以下三行:
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2
或者也可以直接到本地电脑的Home文件夹中找到.bashrc文件,直接打开文件,在文件的最后位置添加上三行命令。(若进到Home文件夹没看有.bashrc文件,则点击一下Ctrl + H就可以显示出.bashrc)
重新执行.bashrc文件,直接生效;
source ~/.bashrc
输入nvcc -V命令进行测试,如果显示如下信息,证明修改正确。
如果依然没有显示出CUDA的版本,改为下面这样就ok了(命令行里不要带有cuda的版本)。
Zed安装
从官网ZED SDK 4.0 - Download | Stereolabs下载对应的ZED SDK
下载好之后,进入下载文件夹,输入chmod +x ZEDxxxxx.run
再执行sudo apt install zstd
再执行./ZEDxxxx.run,然后一直y,直到install samples,选择n,然后y一直到python api,再选择n,再一路y,等待下载完成
再git clone GitHub - stereolabs/zed-sdk: ⚡️The spatial perception framework for rapidly building smart robots and spaces和git clone GitHub - stereolabs/zed-python-api: Python API for the ZED SDK
然后cd /zed-python-api/src,sudo pip3 install -r requirements.txt,
python3 setup.py build
如果不行进入/usr/local/zed,sudo python3 get_python_api.py
再或者把numpy改成1.16.0
再把/usr/local/zed/pyzedxxx.whl放入Zed文件夹下,然后pip3 install pyzedxxx.whl
更换文件
将streaming_receiver.py和streaming_sender.py更换为阿里云盘分享
提取码: 09tk
设置开机自启动
建立rc-local.service文件
sudo vi /etc/systemd/system/rc-local.service
然后将下列代码写入
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
创建文件rc.local
sudo vi /etc/rc.local
然后将下列代码写入
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#后台启动python工程,结果重定向到log.txt
#python解释器 运行的python文件 结果打印的结果
/usr/bin/python3 start_person.py > log.txt 2>&1 &
exit 0
#把输出记录到home下的1.txt中,把报错记录home下的stderr.txt中。
#python test.py >/home/ouc/1.txt 2> /home/ouc/stderr.txt
加上权限
sudo chmod +x /etc/rc.local
重启查看日志是否自启动成功
解决python启动无法导入第三方模块问题
看日志发现导入模块失败,但是本地直接执行脚本没有任何问题,如
ImportError: No module named torch
使用sys.path查看python环境
sys.path 是一个 Python 中的环境变量,它是一个列表,包含了所有 Python 解释器会去查找模块和包的路径。当你尝试导入一个模块时,Python 解释器会在 sys.path 列表中的路径下查找对应的 .py 文件
在本地进入python交互环境,查看python搜索路径
(base) mobius@mobius:~/datasets/ET$ python
Python 3.9.12 (main, Apr 5 2022, 06:56:58)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/opt/ros/noetic/lib/python3/dist-packages', '/home/mobius/anaconda3/lib/python39.zip', '/home/mobius/anaconda3/lib/python3.9', '/home/mobius/anaconda3/lib/python3.9/lib-dynload', '/home/mobius/anaconda3/lib/python3.9/site-packages']
>>>
新建一个python脚本设置为开机自启动,在此脚本中获取python搜索路径
!test.py
import sys
print sys.path
#print(sys.path)
#print(sys.path)
重新启动环境查看启动重定向得日志 log.txt
对比两次的sys.path的输出内容,查看缺少的路径
解决
尝试过添加环境变量,在/etc/rc.local中添加和~/.bashrc,但都无法成功。
可以通过下面的实例添加python搜索路径
import sys
sys.path.append('/home/nvidia/.local/lib/python2.7/site-packages')
或者还有一种情况就是,/usr/local/lib/pythonx/dist-packages 下的numpy版本的问题,让系统无法找到正确的依赖并导入,可以尝试更改numpy文件的名字,让系统不使用这个目录下的低级版本numpy,而去使用其他python环境下的更高级的numpy
配置静态ip
创建eth0文件
`cd /etc/network/interfaces.d
sudo vi eth0`
在文件中加入如下内容:
```
auto eth0
iface eth0 inet static
address 192.168.137.102
netmask 255.255.255.0
gateway 192.168.137.1
```
改动interfaces文件
```
cd ..
sudo vi interfaces
```
增加:
```
source interfaces.d/eth0
```
重启即可成功