Jetson NanoへFAN取り付け

DigiKeyで注文したFANが手元に到着!
注文から4日程で手元に届くという、結構地球は狭いというIt's a small worldを実感。   そして、さっそくナノちゃんに装着。


でも起動してもFANが動かん、、

ちょっと公式ドキュメントを覗くと、温度に合わせたFAN制御をやっているそうな。
でもどういう制御でどういう閾値で動いているのかさっぱりわかなない。。。


sysfsを探検すると、FAN制御らしきものを発見。
"cur_pwm"が現在のpwm値らしきなので、確認すると"0"。
まぁ動いてないから0か。

nano@nano:/sys/devices/pwm-fan/driver/pwm-fan$ cat cur_pwm
0


”pwm_rpm_table”という設定テーブルらしきものを覗くと、何かしら設定がされている。
このIndexと閾値を紐付けて制御しているはず。

nano@nano:/sys/devices/pwm-fan$ cat pwm_rpm_table
(Index, RPM, PWM, RRU, RRD)
(0, 0, 0, 40, 40)
(1, 1000, 80, 2, 2)
(2, 2000, 120, 1, 1)
(3, 3000, 160, 1, 1)
(4, 4000, 255, 1, 1)
(5, 5000, 255, 1, 1)
(6, 6000, 255, 1, 1)
(7, 7000, 255, 1, 1)
(8, 10000, 255, 1, 1)
(9, 11000, 255, 1, 1)


そして、無理やりFANを動かせることは↓で可能

root@nano:/sys/devices/pwm-fan# echo 255 > target_pwm


ただ、ソフトウェア的にFAN回転数をSoC温度に連動して制御しているのは誰かはちょっと不明。

このNVIDIA Forumでは、
FAN制御のプログラムを提供している。

  • サーマル値を読み込む
  • サーマル値と紐付けたPWM値を書き込む

基本は↑2つをループする処理をサービスとして登録するもの。
なんかもっとうまくFAN制御できないものか。。


やっぱり、公式ドキュメントにあるように、Kernalの設定をいじるしかないのかな。。
とりあえず、細かい制御は今のとこ必要ないので、ほっておこう。