Jetson TX2使用记录

一、配置

  1. 使用WE载板时,使用A3设备树
  2. 通过配置wifi连接为所有用户均可用来设置ubuntu不登陆也自动连接WiFi

二、工具

1. 安装jtop

  1. 使用sudo apt-get install python-pip安装pip
  2. 使用sudo -H pip install -U jetson-stats安装jtop
  3. 执行jtop打开jtop工具

2. 安装文件同步工具

  1. 使用samba文件共享,使用sudo apt-get install samba samba-common安装;
  2. 使用sudo smbpasswd -a user_name添加用户名和密码;
  3. /etc/samba/smb.conf中新增:
[share]
   comment = share folder
   path = /home/smartsat/share
   valid users = smartsat
   public = yes
   writable = yes
   create mask = 0777
  1. 使用命令sudo service smbd restart重启Samba。

3. I2C

  apt-get install libi2c-dev i2c-tools

  1. 检测IIC总线数量:i2cdetect -l
  2. 查看IIC总线挂载设备:i2cdetect -r -y 1

4. ssh

  使用OEM安装的ubuntu,在没有以太网连接时配置,会导致ssh工具没有办法生成密钥,需要在登录系统后,重新配置密钥:

sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server

5. 模块温度

  1. 查看模块温度类型 cat /sys/devices/virtual/thermal/thermal_zone*/type
  2. 查看模块温度 cat /sys/devices/virtual/thermal/thermal_zone*/temp

三、自启动

1. 自启动优化

  根据实际使用情况进行禁用,蓝牙、VNC、电话调制相关服务。

2. 自启动设置

1) 设置WiFi开机自动连接

2) 设置开机自动登录(用以远程)

  1. 先进入Unity桌面,设置自动登录,然后调整桌面管理器:sudo dpkg-reconfigure lightdm为lightdm;
  2. 切换到LXDE桌面。

3) 应用软件自启动

  1. 更新/lib/systemd/system/rc-local.service:rc-local.service文件中写入以下内容:
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
#After=network.target
Before=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy = multi-user.target
Alias = rc-local.service
  1. 创建rc.local文件:Ubuntu 18.04中没有/etc/rc.local文件,所以需要自己新建一个,然后再rc.local中输入启动脚本内容即可,记得使用命令chmod 777 XXXX设置rc.local执行权限
  2. 启动服务:使用命令sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/ 建立软连接,然后使用命令sudo systemctl enable rc-local使能服务
  3. 重启测试

3. 桌面修改

  1. 将修改屏幕分辨率设置成1920x1080,以方便远程桌面,修改 /etc/profile 文件,在文件末尾添加以下内容xrandr -d :0 --fb 1920x1080

四、远程桌面

1、Vino

  Ubuntu 18.04自带Vino,直接使用VNC view进行远程连接即可,由于不适用显示器,TX2屏幕分辨率默认是600x800,这样VNC远程过去界面小得可怜,所以需要将分辨率强制修改一下,使用命令xrandr -d :0 --fb 1920x1080可以修改分辨率,然后再进行VNC远程。

  1. 启动Vino服务器:/usr/lib/vino/vino-server
  2. 若是ssh下进入系统启动vino,则添加 --display=:0 参数:/usr/lib/vino/vino-server --display=:0
  3. 配置:
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino view-only false
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n "password"|base64)
  1. 查看Vino的设置:
gsettings list-recursively org.gnome.Vino
gsettings list-recursively org.gnome.Vino | grep encrypt

2、VncServer

  1. 使用apt-get install tightvncserver安装svn server;
  2. 执行vncserver生成配置文件;
  3. 使用tightvncserver -kill :1先停止服务器;
  4. 编辑~/.vnc/xstartup文件,在尾部添加:
lxterminal &
/usr/bin/lxsession -s LXDE &
  1. 使用vncserver -geometry AAAxBBB启动服务器;
  2. 使用VNC view连接,格式为:IP:590X,X即为服务器编号。

五、FFMPEG

  1. yuv视频播放:ffplay -f rawvideo -video_size 宽x高 -pixel_format yuv420p out_crop_vfilter.yuv
    pixel_format支持的格式有 :conversions=“yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow monob yuv440p yuvj440p”
  2. 格式转换:ffmpeg -s 360x270 -pix_fmt yuv420p -i 2_test_360x270_50.yuv -pix_fmt rgb24 aaaa.rgb

六、编码

  1. chroma_format_idc 的值应该在 0到 3的范围内(包括 0和 3)。当 chroma_format_idc不存在时,应推断其值为 1(4:2:0的色度格式),3是444色度格式

七、内核编译

导出环境变量:

export TEGRA_KERNEL_OUT=/home/baymax/Desktop/kernel_out
export CROSS_COMPILE="编译工具"
export LOCALVERSION=-tegra

进入kernel文件夹下,生成配置文件:

make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig

修改配置文件:

make ARCH=arm64 O=$TEGRA_KERNEL_OUT menuconfig

编译内核:

make ARCH=arm64 O=$TEGRA_KERNEL_OUT -jX

编译模块,生成kernel_supplements.tbz2

sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=<top>/Linux_for_Tegra/rootfs/
cd $INSTALL_MOD_PATH
sudo tar --owner root --group root -cjf kernel_supplements.tbz2 lib/modules

编译完成替换相关文件:

替换镜像文件:$TEGRA_KERNEL_OUT/arch/arm64/boot/Image > <release_packagep>/Linux_for_Tegra/kernel/Image
替换设备树文件:$TEGRA_KERNEL_OUT/arch/arm64/boot/dts/ > <release_packagep>/Linux_for_Tegra/kernel/dtb/
替换模块文件:模块文件 > Linux_for_Tegra/kernel/kernel_supplements.tbz2

烧录镜像,TX2进入REC Mode,路径Linux_for_Tegra/

sudo ./flash.sh jetson-tx2 mmcblk0p1

仅刷新设备树指令:sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1
仅刷新Uboot指令:sudo ./flash.sh -r -k kernel jetson-tx2 mmcblk0p1

八、Pinmux更改

  1. 将excel表生成的文件拷贝到Linux_for_Tegra/kernel/pinmux/t186/路径下
  2. 使用命令生成配置文件
python pinmux-dts2cfg.py --pinmux addr_info.txt gpio_addr_info.txt por_val.txt --
    tegra18x-jetson-tx2-default-template-pinmux.dtsi \
    tegra18x-jetson-tx2-default-template-gpio-default.dtsi 1.0 \
    > ../../../bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
  1. 目前修改pinmux后都需要重新flash

九、其它

  1. liunx内核手册:https://www.kernel.org/doc/html/v4.9/index.html
  2. 十六进制打印文件内容: xxd -c 行字节数 -g 组字节数 sensor_tele.bin
  3. 查询字节序:lscpu | grep -i byte
  4. menuconfig:sudo apt-get install libncurses5-dev
  5. 内核配置介绍:https://blog.csdn.net/JackSparrow_sjl/article/details/106331553
  6. 查询.ko信息:modinfo XXX.ko
  7. 串口引脚信息:
serial@3100000 |ttyS0   |UARTA|G12、H12|UART0_    | 已配置
serial@3110000 |ttyTHS1 |UARTB|B15、B16|UART2_    | 已配置
serial@c280000 |ttyTHS2 |UARTC|D10、D9 |UART1_*   | 已配置
serial@3130000 |ttyTHS3 |UARTD|H9、H10 |UART3_*   | 已配置
serial@3140000 |ttyTHS4 |UARTE|  、B17 |FAN_TACH  | 未配置
serial@3150000 |ttyTHS5 |UARTF|B26、F20|LCD_VDD_EN| 未配置
serial@c290000 |ttyTHS6 |UARTG|D5、D8  |UART7     |未配置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值