2018年5月16日 星期三

[Linux] Linux中設定rtc alarm時發生 "Device or resource busy" 的解決方法

今天在驗証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"


這樣便沒有問題了!!

沒有留言:

張貼留言