最近买了几块Orange Pi lite2,是学校一个小项目,要求局域网内通信,在别人推荐下,第一次使用这个板子,全志H6芯片,板载WiFi、蓝牙,感觉还不错,顺便记录下遇到的坑,分享给大家。
香橙派Orange Pi Lite 2是一款开源的单板电脑,新一代的arm开发板,它可以运行Android7.0、Ubuntu、Debian等操作系统,兼容树莓派。香橙派Orange Pi Lite 2使用全志H6系统级芯片,同时拥有1GB LPDDR3 (与GPU共享)内存。
板载WIFI+蓝牙,AP6255, IEEE 802.11 AC/b/g/n/, BT4.1。(2.4G与5G都支持)
测试环境:OrangePi_Lite2_Ubuntu16.04_Desktop_Mate_Beta.tar 2018.03的版本
4月份镜像更新OrangePi_Lite2_Ubuntu16.04_Desktop_Xfce_Beta.tar.gz 应该差不多
1.设置程序自启动
我的程序是一个一直执行的程序,不是执行完就结束那种,我想要实现一上电,可以1.自动连接WiFi 2.自动执行程序,所以rc.local测试不能使用,程序会被打断,在板子启动时rc.local执行这一行返回错误。开始我比较天真以为需要先开机自动登陆ubuntu,再自动执行程序,Ubuntu图形界面里确实有设置开机启动程序的功能,由于没有屏幕,加上自动登录没弄好就放弃了。
后来在网友指点下,知道了以service方式启动等不需要登陆用户就可以实现,故有了下面的systemd启动方法
由于Ubuntu16.04引入systemd任务管理系统,所以原来的rc.local方法不能成功实现我们想要开机自启动,因为rc.local不能执行持续性的程序,会return error,然后被跳过。systemd设置service方法如下,我当时好像脚本就是一个.py文件。参考链接也放上了,感谢网友。
vi /etc/systemd/system/尼想要的服务名.service
加入如下内容:
[Unit]
Description=尼的脚本路径 Compatibility
ConditionPathExists=尼的脚本路径
[Service]
Type=forking
ExecStart=尼的脚本路径 start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
脚本要有可执行属性, 路径要绝对路径
然后取保脚本正确执行后最后的代码是:
exit 0
激活服务:
sudo systemctl enable 尼想要的服务名
启动服务器和检查状态:
sudo systemctl start 尼想要的服务名.service
sudo systemctl status 尼想要的服务名.service
参考:https://www.v2ex.com/t/370230
后续再补充。。。