本人使用的嵌入式开发套件是JetsonTX2!
失败经验
在布署过程中,先是尝试了创建shell脚本文件的方式,之后尝试了创建.service服务的技巧。上述两种方式,本人是在猕猴桃派上都成功实现过的,但在JetsonTX2开发板上都无一而终。
后来想明白,开机启动脚本是在用户登入之前,所以可想而知linux自动运行,不能成功。但我们可以对命令行进行相关的操作,也就是~/.bashrc文件进行相关操作。
编撰~/.bashrc
首先打开~/.bashrc文件并进行编撰
sudo vi ~/.bashrc
在文件的最后一行添加想要执行的终端命令,可以是任何终端,假若不须要root权限,直接添加就可以。
假如须要root权限的话可使用echo输入密码:```shell诸如:python/home/nvidia/my_work/yolov3/detect.pyroot要求的时侯:echo“password”|sudo-Schmod777ttyUSB0
也可以直接编辑`sudoers`文件,赋予普通用户执行sudo命令时不再需要输入密码,参考链接[使普通用户使用sudo命令不再需要输入密码](https://blog.csdn.net/qq_51491920/article/details/126286618)
这样保存完成时候,发现开机并没有自启,缺少一个启动终端的命令,接下来在终端输入:`gnome-session-properties`
会打开ubuntu机选项管理,点击`Add`选项,`command`中写上:`gnome-terminal` 其他两个随意写。上面一个是
name,也就是自己可以给它取个名字,最后一行是相关的注释,然后点击 exit 就可以了,这样相当于开机之后开启一个终端,这个终端就可以执行 bashrc 中的程序。
最后只需要将`~/.bashrc`脚本刷新一下
```shell
source ~/.bashrc
就可以恣意的上下电,实现开机自启了。
报错
开机自己执行python文件的时侯,会提示没有相关的包,一些自己创建的.py文件,与执行脚本在同一目录下的。python包的相关技巧可以看这篇文章彻底搞清python怎么找包?包安装到哪了?怎样修改环境变量?
前面这个文章链接中也提供了解决方式,我使用了其中的一种。编辑~/.bashrc文件,在运行python脚本之前,cd到脚本所在目录。
sudo vi ~/.bashrc
cd /home/nvidia/my_work/yolov3
这般,就可以解决包导出的问题了。
其他手动运行命令行
你可以添加一条命令行,每次打开bash时就会手动运行,例如
echo "Hi~"
cd ~/Desktop
alias
alias的意思是别称、化名,用alias可以给常用的命令行起一个简略的别称,就不用每次都敲很长的命令了。将你要的alias写进.bashrc文件并保存。
alias la='ls -a'
alias ll='ls -l'
alias gst='git status -sb'
alias ga='git add'
alias ga.='git add .'
alias gc='git commit'
alias gc.='git commit .'
设置path
若果将自己写的脚本置于~/local目录,进到local目录
pwd
复制local的绝对路径在~/.bashrc里写入
export PATH="local的绝对路径:$PATH"
保存,并执行
source ~/.bashrc
添加环境变量后linux自动运行,直接输入脚本的名子能够执行该脚本了。
PATH的作用
每次在Bash上面输入一个命令时(例如ls、cp、demo),Bash就会去PATH列表上面寻觅对应的文件,假若找到了就执行。使用typedemo可以看见找寻过程使用whichdemo可以看见找寻结果
环境变量
在~/.bashrc里添加前面这一行linux命令lslinux vi,安装node-sass的时侯就不会由于被墙而报错。
export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"