ウォッチドッグタイマ
ウォッチドッグタイマはbcm2708_wdog。
$ modinfo bcm2708_wdog
filename: /lib/modules/4.0.7-v7-local+/kernel/drivers/watchdog/bcm2708_wdog.ko
license: GPL
alias: char-major-10-131
alias: char-major-10-130
description: Driver for BCM2708 watchdog
author: Luke Diamand
srcversion: 5EECED7AD08838EF004B7E9
depends:
intree: Y
vermagic: 4.0.7-v7-local+ SMP preempt mod_unload modversions ARMv7
parm: heartbeat:Watchdog heartbeat in seconds. (0 < heartbeat < 65536, default=10) (int)
parm: nowayout:Watchdog cannot be stopped once started (default=0) (int)
$ sudo modprobe bcm2708_wdog
$ cat /proc/misc
130 watchdog
(略)
$ ls -la /dev/watchdog
crw------- 1 root root 10, 130 7月 27 22:20 /dev/watchdog
$ dmesg
(略)
[294369.137112] bcm2708 watchdog, heartbeat=10 sec (nowayout=0)
(略)
IOCTL、もしくは/dev/watchdogへの出力で制御する。
デフォルトの設定だと、10秒後にリセットが発生する。定期的に"V"以外の文字を/dev/watchdogに書き込めばリセットは発生しない。
$ sudo sh -c "echo > /dev/watchdog"
詳細は、Documentation/watchdog/watchdog-api.txtを参照する。
一般的なハードウェアウォッチドッグタイマ同様に、保存されていないファイルやファイルシステムの破損の可能性、リセットした要因がログに残らないこと、などに注意。
乱数生成器
乱数生成器はbcm2708_rng。
$ modinfo bcm2708_rng
filename: /lib/modules/4.0.7-v7-local+/kernel/drivers/char/hw_random/bcm2708-rng.ko
license: GPL and additional rights
description: BCM2708 H/W Random Number Generator (RNG) driver
srcversion: 2BE4EC25E7ECCFF57DDA65E
depends:
intree: Y
vermagic: 4.0.7-v7-local+ SMP preempt mod_unload modversions ARMv7
$ sudo modprobe bcm2708_rng
$ cat /proc/misc
(略)
183 hw_random
(略)
$ ls -la /dev/hwrng
crw------- 1 root root 10, 183 1月 1 1970 /dev/hwrng
$ dmesg
(略)
[296373.816399] bcm2708_rng_init=bc3de000
(略)
$ sudo sh -c "cat /dev/hwrng | base64 | fold -w 10 | head -n 1"
Bk0bsSQRnk
$ sudo sh -c "cat /dev/hwrng | base64 | fold -w 10 | head -n 1"
ibemhzeD/m
エントロピーが集まるまで時間がかかるのか、若干生成まで遅いっぽい。