今天在驗証rtc alarm的功能,我們使用shell script來完成,驗證此功能的步驟大概如下
1. 使用 nowDate=`date +%s`來取得目前rtc時間,並且先存放在變數 nowDate
2. 把關機之後預計幾秒後使用 rtc alarm 把系統叫起,假設10s後叫起,我們會使用 wakeDate=`expr $nowDate + $defaultAlarm` ,把變數存放在變數wakeDate
3. 再來就是把wakeDate存放到你rtc alarm再Linux當中所開出來的介面,rtcPath=/sys/class/rtc/rtc0/wakealarm
echo "$wakeDate" > "$rtcPath"
上面的作法我發現,常常在寫入rtc alarm interface的時候,會出現 sh: write error: Device or resource busy 的錯誤訊息,而導致$wakeDate沒有正確的寫入
4. 後來發現,原來寫入之前必須先清空rtc alarm的內容,因此在設定之前必定先加入下面這行
echo 0 > "$rtcPath"
這樣便沒有問題了!!
沒有留言:
張貼留言