/dev/fb0 ノードを生成するサービスは何ですか?

/dev/fb0 ノードを生成するサービスは何ですか?

console-setup.service画面解像度検出を使用しfbset -s、それに応じてコンソールフォントのサイズを変更するように更新したいと思います。の場合、fbset私がいる必要が/dev/fb0ありますが、どのサービスに依存関係を作成する必要があるのか​​わかりません。/dev/fb0起動時にどのように生成しますか?

答え1

/dev/fb0カーネルは、対応するディスプレイコントローラハードウェアを検出して初期化すると、最初のフレームバッファディスプレイドライバを生成します。

ドライバがカーネルに組み込まれている場合は、ユーザー空間プロセスの実行を開始したときに実際にドライバが存在する可能性があります。

以下のudevルールを追加すると:

SUBSYSTEM=="graphics", KERNEL=="fb0", TAG+="systemd"

*.deviceこれの単位を取得し、依存関係に使用できます。

udev ルールに追加すると、ENV{SYSTEMD_WANTS}+="your.service"udev はデバイスが起動するとすぐにサービスを開始するように systemd に指示し、計画に合ったfbset場合は別のサービスとして実行できます。

少なくともDebian 12ではconsole-setup.service実行中ですが、After=console-screen.service kbd.service local-fs.target定義されてconsole-screen.serviceいないようです。したがって、独自のconsole-screen.service実行可能フォント操作fbsetとコンソールフォント操作を定義し、udevにそれをトリガーさせることができます。

SUBSYSTEM=="graphics", KERNEL=="fb0", ENV{SYSTEMD_WANTS}+="console-screen.service"

一度デバイスを使用することができます。

その後、タスクの順序は/dev/fb0表示 - >カスタムconsole-screen.service実行 - >console-setup.service実行です。

次に、コンソールフォントを維持するように標準を設定し、console-setup.serviceカスタマイズしますconsole-screen.service

関連情報