Lab樹莓派中的看門狗

所謂看門狗就是檢測功能性軟件是否還在運轉的軟件或硬件模塊。當它檢測到軟件沒有在工作時,就會重啓機器,使得軟件在重啓之後能夠繼續工作。它的檢測方式很簡單,就讓功能性軟件定時的發信號給它(所謂的餵狗),一旦一定時間內沒有接收到信號,那麼就認爲軟件已經停止運行了,系統就需要重啓了。在樹莓派的硬件中就有看門狗的功能。下面我們就來玩玩這條狗。

教程目的:

用腳本的方式來餵狗,並試驗當腳本停止餵狗後,樹莓派會重啓。(網上大量流傳着下載watchdog這個軟件來進行餵狗工作,本教程是自己寫shell來餵狗的。當然,也是很簡單的。)

教程器材及軟件:

  1. 樹莓派的板子。
  2. SD卡(已經有鏡像刷入)。
  3. 電源線及USB充電器。
  4. U盤或USB硬盤
  5. putty和psftp。
  6. 有DHCP的網線。

步驟:

  1. 先打開內核模塊中的看門狗功能:
    sudo modprobe bcm2708_wdog
    (如果,你要在樹莓派啓動的時候,就啓動看門狗功能。那麼你需要在/etc/modules文件中加入,一行:bcm2708_wdog)
  2. 開啓這個之後,你就可以在/dev目錄下看到一個叫watchdog的文件。
  3. 執行完上面的命令,狗還不需要喂。但是一旦,你打開了這個文件(所謂,打開一種是c語言裏的fopen,另一種就是等價的在shell中使用讀寫該文件的命令),就需要開始餵狗。餵狗的方式就是輸入任何字符後數字除了V以外。此時,哪怕你關閉了文件,狗還是需要喂的。知道你輸入V,纔可以停止餵狗。有了這樣子的原理,寫一個餵狗的腳本就容易了。
  4. #!/bin/bash
    while((1))
    do
    sleep 3
    echo "Feed the dog"
    echo "Feed the dog!" > /dev/watchdog
    done
  5. 然後,運行這個腳本一段時間,一直餵狗,然後中斷他。(Ctrl+C)
  6. 過了一會,樹莓派就重啓了。

參考:

這篇文章寫得非常清楚,內容也更有深度。我懷疑其它文章都是從這個地方來的。(英文)http://binerry.de/post/28263824530/raspberry-pi-watchdog-timer
中文文章一搜一大把,就不貼了。

備註:

此爲浙江大學計算機學院嵌入式系統課程擴展實驗實驗報告。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章