Debian stretchの起動時に気になるメッセージ
Debianのテスト版stretchは快調に動いていますが、気になるメッセージがあります。intel_soc_dts_thermal:request_threaded_irq ret -22起動してすぐにこのメッセージが2回現れます。そこで、調べてみました。Debianのlinuxのソースコードを入手して該当のところを見ます。
$ apt-get source linuxこれでソースファイルがダウンロードされ、解凍ならびにパッチ適用まで行ってくれます。問題のメッセージはintel_soc_dts_thermalという関数で起きています。ソースの中を探すと、linux-4.9.18/drivers/thermal/intel_soc_dts_thermal.cの中にその関数があり、メッセージ「request_threaded_irq ret -22」が出力されたと思われる箇所がありました。
if (soc_dts_thres_irq) { err = request_threaded_irq(soc_dts_thres_irq, NULL, soc_irq_thread_fn, IRQF_TRIGGER_RISING | IRQF_ONESHOT, "soc_dts", soc_dts); if (err) { pr_err("request_threaded_irq ret %d\n", err); goto error_irq; } }エラーコード-22はrequeet_threaded_irqの戻り値なので、その関数を調べます。linux-4.9.18/kernel/irq/manage.cの中にその関数があります。
int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id) { ・・・・途中省略・・・・ return -EINVAL; ・・・・途中省略・・・・ }このEINVALはlinux-4.9.18/include/uapi/asm-generic/errno-base.hの中に定義されています。
#define EINVAL 22 /* Invalid argument */Invalid argument(無効な引数)ですから、intel_soc_dts_thermalの中で関数request_threaded_irqを呼び出した時に設定した引数に問題があったということになります。なお、dtsはdigital thermal sensorのことで、インテルのプロセッサの温度監視機能のことです。主に、温度上昇とファンの回転を結びつける機能のようです。socはsystem-on-a chipのこと(?)だと思います。
未解決
ハードウェアに関係することのようなので、手元に資料もなく、どうしようもない問題です。しばらくDebianで使っていますが、特に熱くなることもなく、大丈夫そうなので、そのまま様子を見ることにしました。x200maにはちょっと前にはUBUNTUを入れていましたが、そのときはファンが回りっぱなしでうるさいな、と思っていたんですが、この問題と関係あるのでしょか?Debianではそんなことはありません。どなたか、この問題に詳しい方がいたら、コメントをお願いします。