每次重開機後,主機與serial port的stty設定都會跑掉,所以想在開機時去設定(重新插拔USB接口設定不會跑掉)
https://raymii.org/s/tutorials/rc.local_support_on_Arch_Linux_and_systemd.html
1. 編輯 /etc/rc.local (如果沒有就自己建一個)
2. 把 /etc/rc.local 權限設成 755,注意:因為是bash,最前面要寫 #!/usr/bin/bash,例:
#!/usr/bin/bash touch /tmp/1 stty -F /dev/ttyUSB1 raw speed 9600 -crtscts cs8 -parenb -cstopb
3. 編輯 /usr/lib/systemd/system/rc-local.service:
[Unit] Description=/etc/rc.local compatibility [Service] Type=oneshot ExecStart=/etc/rc.local RemainAfterExit=yes [Install] WantedBy=multi-user.target
4. 執行 下面這個指令,他會產生一個symlink 到 /etc/systemd/system/multi-user.target.wants/ 下面
# systemctl enable rc-local.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rc-local.service to /usr/lib/systemd/system/rc-local.service.
5. 手動檢測:
# systemctl start rc-local.service
實測結果:
重開機後
touch /tmp/1 會正常執行(執行身份是root),但stty 把他印到/tmp/1 ( stty >> /tmp/1 )則是一片空白,這可能要看開機message... 這挺複雜的....
這位網友遇到同樣的問題: http://www.gobsd.org/viewtopic.php?f=4&t=3239
最後暫時用每次呼叫web api時都設定stty,這會讓使用者每次多等0.3s
之後可以嘗試用cronjob看看
參考資料:
http://stackoverflow.com/questions/18903512/set-up-serial-on-start-up-raspberry-pi # Raspberry Pi 在rc.local設定stty的答案被採納
沒有留言:
張貼留言