introduction
打算用jetson tx2做一个MPC的控制项目。
Jetson TX2 官网资源的构成
从FAQ开始入手:
了解TX2 的基础
然后入手 JETSON tx2 的wiki
https://elinux.org/Jetson_TX2
配置TX2的运行环境
下载jetpack 给tx2刷机
刷机教程参考:https://www.youtube.com/watch?v=s1QDsa6SzuQ
step1: https://developer.nvidia.com/embedded/jetpack 下载sdKmanager
step2:开始刷机,注意选择manual installation,在tx2处于安全模式下,安装jetpack component
step3:等待刷机结束
远程登录tx2
- 使用nomachine,根据nomachine的官网介绍,nomachine的免费版本是不支持ssh远程登录到tx2,只能用NX:
https://www.nomachine.com/AR11K00751。
因而只能在tx2上也安装一个nomachine,两台机器通过NX的协议进行通信。 - 先通过ssh测试一下两者是否链接好,并且可以测试一下文件的传递:
测试连接:ssh nvidia@192.168.xx.xx
测试文件传输:scp /Downloads/* nvidia@192.168.xx.xx:/home/nvidia/Downloads - 在tx2上安装nomachine
启动nomachine的server,在主机host的nomachine上,此时就可以看到server:nvidia的信息了,点击连接就可以了。
先将JETSON TX2 安装到新的SSD上
硬件部分
JETSON TX2的SSD插槽在侧边,ssd如果采用直插的方式,容易碰坏了。所以需要SSD延长线。
购买的SATA 光驱延长线。遇到的坑,买的ssd数据线不带电源线;光驱和ssd都使用的是SATA 3.0协议,所以是兼容的。
软件部分
1.使用GParted 将新插上的ssd的旧分区删除掉
2. 按照视频开始挂载SSD:
https://www.youtube.com/watch?v=KxZ-e6G7INg
step1: GPT挂载分区$ sudo parted /dev/sda mklabel gpt
step2: 打开系统软件disks,选择ssd,并且新建分区,JetsonSSD-256;
3.将emmc的文件拷贝到ssd上,并且修改boot配置
$ sudo cp -ax / ‘/media/nvidia/JetsonSSD-256’ && sync
cd /boot/extlinux
备份一下config文件
$ sudo scp extlinux.conf extlinux.conf.origin
修改config文件
$ sudo gedit extlinux.config
LABEL primary
MENU LABEL primary kernel SSD
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs} root=/dev/sda1 rw rootwait
LABEL eMMC
MENU LABEL eMMC kernel
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait
4.编译lInux 内核
有两种内核的编译方式,一种是host的交互编译方式:
按照jetsonhacks 大神的方式,采用直接在tx2编译内核
在他的脚本上进行修改:https://github.com/jetsonhacks/buildJetsonTX2Kernel
注意修改的地方1:在./makekernel.sh的脚本里,讲make xx 改成make -j4 xx
注意修改的地方2:将生成的image 最后移动到emmc的boot/Image目录下
并且在emmc的boot/extlinux 下修改extlinux.conf,指定编译好的Image名字如ImageSSD
给JETSON TX2 安装RT PREEMPT
内核编译的时候出了一堆问题,还在bug中。
给jetson tx2 安装vs code
参考链接:https://devtalk.nvidia.com/default/topic/1049448/jetson-nano/quick-build-guide-for-visual-studio-code-on-the-nano/1
遇到的坑是,一定要关闭UI,否则会报错:jetson tx2 vscode ERR! stack Error: gyp
failed with exit code: 1
# Yarn package repo
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# Install packages
sudo apt update
sudo apt install -y libx11-dev libxkbfile-dev libsecret-1-dev fakeroot npm curl nodejs nodejs-dev yarn
# Clone repo
git clone https://github.com/Microsoft/vscode.git
pushd vscode
# Reduce max_old_space_size
sed -i 's/4095/2048/g' package.json
# Kill the UI to free up memory ### WARNING THIS WILL DROP YOU TO A CONSOLE
sudo systemctl isolate multi-user
# Fetch deps, build, and create deb
yarn
yarn run gulp vscode-linux-arm64-min
yarn run gulp vscode-linux-arm64-build-deb
sudo dpkg -i ./.build/linux/deb/arm64/deb/code-oss_1.??.?-*_arm64.deb
# Reboot
code-oss