因为实验室要将TX2做成相关的产品,要将TX2修改成上电自启动并且运行相关程序,踩了一些坑,相关的记录发表在CSDN上,也有一段时间没写博客了(忙于找工作和各种面试),终于马上要卖身成功,补上最近的博文空白。
TX2上电自启
TX2开机之后的风扇是需要手动输入指令来启动的,要将设备做成全自动的,也就是上电自动启动的界面,在网上查了好多,也做了很多不同的测试,可能是系统版本对应的问题,总是出现不太对应的地方,在这记录一下自己的全部过程。
首先就是上电自动启动,TX2在这方面做的还是很不错的,留了开机启动的相关更改方式,就是留下了一个0402封装的一个电阻没有焊接,只需要将0402这个电阻焊接上一个0Ω的电阻(0402封装),就可以在上电的时候给一个启动脉冲,相当于按了开机按键。
具体的位置就是下图所示的位置:
就是J27附近最边上的R313电阻,我是直接用焊锡和一个小铁丝焊接了一下,用万用表打了一下,通了就好了。
至此,就完成了TX2的上电自启动过程。
开机自动执行脚本
接下来就是上电之后的风扇转动,因为风扇转动属于需要root权限的,所以在/etc/init.d/下进行相关操作。
首先编写一个相关的脚本,就是可以让TX2风扇运转的脚本,如下:
vim /home/zander/Code/sh/my.sh
新建脚本之后,需要在脚本中写出下面的内容:
#!/bin/bash
### BEGIN INIT INFO
# Provides: myuse
# Required-Start: $remote_fs $syslog $local_fs
# Required-Stop: $remote_fs $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start startup_usr daemon at boot time
# Description: startup_usr is a daemon use to proxy to access the U3V devices.
### END INIT INFO
sudo /usr/bin/jetson_clocks # 风扇运转脚本
exit 0
将脚本文件复制到 /ect/init.d/ 文件夹下面,操作应在root下进行,相关的操作如下:
sudo su # root权限转换
cp /home/zander/Code/sh/my.sh /etc/init.d/ # 文件copy到 /etc/init.d/
sudo chmod 777 /etc/init.d/my.sh # 修改文件权限
sudo update-rc.d my.sh defaults 99 # 脚本添加到启动脚本 , 99代表的优先级,越高执行的越晚
完成之后,reboot重新启动就可以看到效果了。
开机执行python程序
开始的时候,我把这一部分也放到了my.sh中了,但是开机启动脚本是在用户登录之前,所以可想而知,并没有成功,后来想起来可以对命令行进行相关的操作,也就是 ~/.bashrc 文件进行相关操作。
首先,打开 bashrc 文件:
sudo gedit ~/.bashrc
在文件的最后一行添加想要执行的终端命令,可以是任何终端,如果不需要root权限,直接添加就可以。
如果需要root权限的话 使用echo 输入密码:
例如: python /home/zander/Code/Detection/Camera.py
root 要求的时候: echo “password” | sudo -S chmod 777 ttyUSB0
这样保存完成时候,发现开机并没有自启,缺少一个启动终端的命令,接下来在终端输入:gnome-session-properties
打开ubuntu16.04 的开机选项管理,点击 Add选项,command中写上:gnome-terminal 其他两个随意写,上面一个是name,也就是自己可以给它取个名字,最后一行是相关的注释,然后点击 exit 就可以了,这样相当于开机之后开启一个终端,这个终端就可以执行 bashrc 中的程序。
最后只需要一个指令可以啦!
source ~/.bashrc
可以尽情的拔电,上电进行测试啦~