CONFIG.TXTの条件付きフィルタ
1枚のPiと1枚のモニターで1枚のSDカード(またはカードイメージ)を使用しconfig.txt
ている場合は、その特定の組み合わせに必要な設定を行い、そのように保ちます。
ただし、1つのPiが異なるモニター間で交換されている場合、またはSDカード(またはカードイメージ)が複数のPisの間で交換されている場合は、単一の設定ではもはや十分ではありません。条件付きフィルタを使用すると、特定の場合にのみ使用される設定ファイルの特定のセクションを定義することができ、config.txt
別のハードウェアで読み込んだときに異なる構成を作成することができます。
[all]
フィルタ
これが最も基本的なフィルタです。以前に設定したフィルタをすべてリセットし、その下にリストされている設定をすべてのハードウェアに適用することができます。
[all]
[all]
フィルタを誤って組み合わせることを避けるために、フィルタ設定のグループの最後にフィルタを追加することをお勧めします(下記参照)。
[pi1]
そして[pi2]
(など)フィルター
[pi1]
フィルターの下の設定は、元の計算モジュールを含むPi 1(A、A +、B、B +)ハードウェアにのみ適用されます。[pi2]
フィルタの下の設定はPi 2ハードウェアにのみ適用されます。この[pi3]
フィルタは、Pi 3およびCompute Module 3のハードウェアに適用でき、[pi0]
Pi ZeroおよびPi Zero W もカバーします。
[pi1]
[pi2]
[pi3]
[pi3+]
[pi0]
[pi0w]
これらはPi1とPi2が異なるカーネルを必要とするためkernel
、異なる、initramfs
とcmdline
設定を定義するのに特に便利です。また、Pi 1とPi 2のデフォルト速度が異なるため、異なるオーバークロック設定を定義することもできます。たとえばinitramfs
、それぞれ別々の画像を定義するには:
[pi1]
initramfs initrd.img-3.18.7+ followkernel
[pi2]
initramfs initrd.img-3.18.7-v7+ followkernel
[all]
[all]
最後の設定はPi 2ハードウェアに限定されないように、最後にフィルターを使用してください。
ラズベリー・パイ・ゼロWは[pi0w] AND [pi0]の内容を見ることに注意することが重要です。同様に、ラズベリーPi3Bプラスは[pi3 +] AND [pi3]を見る。設定をPi ZeroまたはPi 3Bのみに適用する場合は、[pi0w]または[pi3 +]セクションの設定を元に戻す必要があります(順序は重要です)。
[none]
フィルタ
[none]
フィルタは、任意のハードウェアに適用されるの追従設定を防止します。あなたがしなければならないことは何もありませんが[none]
、すべての行をコメントアウトしなくても、未使用の設定のグループをconfig.txtに保存すると便利な方法です。
[none]
[EDID=*]
フィルタ
Piで1つのSDカードを使用中に複数のモニタを切り替える場合、空の設定ではそれぞれの解像度を自動的に選択するには不十分な場合は、モニタのEDID名に基づいて特定の設定を選択できます。
特定のモニタのEDID名を表示するには、次のコマンドを実行します。
tvservice -n
これは次のように表示されます:
device_name=VSC-TD2220
このモニタにのみ適用される設定を指定できます。
[EDID=VSC-TD2220]
hdmi_group=2
hdmi_mode=82
[all]
これにより、他のモニターに影響を与えることなく、指定されたモニターに対して1920×1080 DVTモードが強制されます。
これらの設定はブート時にのみ適用されるため、ブート時にモニタを接続し、Piが正しい名前を見つけるためにEDID情報を読み取ることができる必要があります。起動後に別のモニターをPiにホットプラグすると、異なる設定が選択されません。
シリアル番号フィルタ
場合によっては、SDカードを別のものに交換しても、特定のPiにのみ設定を適用する必要があります。例にはライセンスキーとオーバークロックの設定が含まれます(ただし、ライセンスキーはすでにSDカードの交換を別の方法でサポートしています)。上記のEDID識別が不可能であっても、Pis間でモニターを入れ替えない限り、これを使用して異なる表示設定を選択することもできます。たとえば、モニターが使用可能なEDID名を提供しない場合、またはコンポジット出力を使用している場合(EDIDが読み取れない場合)
Piのシリアル番号を表示するには、次のコマンドを実行します。
cat /proc/cpuinfo
シリアルは16桁の16進数値で下に表示されます。たとえば、次のように表示されているとします。
Serial : 0000000012345678
この特定のPiにのみ適用される設定を定義することができます:
[0x12345678]
# settings here are applied only to the Pi with this serial
[all]
# settings here are applied to all hardware
GPIOフィルタ
また、GPIOの状態に応じてフィルタリングすることもできます。例えば
[gpio4=1]
# Settings here are applied if GPIO 4 is high
[gpio2=0]
# Settings here are applied if GPIO 2 is low
[all]
# settings here are applied to all hardware
条件付きフィルタの組み合わせ
同じタイプのフィルターはお互いに置き換わるため、両方を真にすることはできないため、[pi2]
オーバーライドします[pi1]
。
異なるタイプのフィルタは、たとえば次のように順番に並べることによって組み合わせることができます。
# settings here are applied to all hardware
[EDID=VSC-TD2220]
# settings here are applied only if monitor VSC-TD2220 is connected
[pi2]
# settings here are applied only if monitor VSC-TD2220 is connected *and* on a Pi 2
[all]
# settings here are applied to all hardware
[all]
フィルタを使用して、以前のすべてのフィルタをリセットし、意図せずに異なるフィルタタイプを組み合わせないようにします。