最近買了幾塊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