
Tek bir SD kart (veya kart imajı) bir Pi ve bir monitör ile kullanıldığında, belirli bir kombinasyon için config.txt ayarını yapmak ve sadece böyle bir şey değiştiğinde değiştirmek için bu şekilde tutmak kolaydır.
Bununla birlikte, bir Pi farklı monitörler arasında değiştirilirse veya SD kart (veya kart imajı) birden fazla Pis arasında değiştiriliyorsa, tek bir ayar kümesi artık yeterli olmayabilir. Koşullu filtreler, yalnızca belirli durumlarda kullanılacak olan yapılandırma dosyasının belirli bölümlerini tanımlamanıza izin verir ve tek bir config.txt dosyasının farklı donanımlar tarafından okunduğunda farklı yapılandırmalar oluşturmasını sağlar.
[all] filtresi
Bu en temel filtredir. Önceden ayarlanmış tüm filtreleri sıfırlar ve aşağıda listelenen ayarların tüm donanımlara uygulanmasını sağlar.
[all]
Filtreleri istemeden birleştirmeden kaçınmak için filtrelenmiş ayar gruplarının sonuna bir [all] filtre eklemek genellikle iyi bir fikirdir (aşağıya bakınız).
[Pi1] ve [pi2] (vb.) Model filtreler
Koşullu model filtreleri aşağıdaki tabloya göre uygulanır.
Filter | Applicable model(s) |
[pi1] | Model A, Model B, Compute Module |
[pi2] | Model 2B (BCM2836- or BCM2837-based) |
[pi3] | Model 3B, Model 3B+, Model 3A+, Compute Module 3 |
[pi3+] | Model 3A+, Model 3B+ |
[pi0] | Zero, Zero W, Zero WH |
[pi0w] | Zero W, Zero WH |
Pi 1 ve Pi 2 farklı çekirdeklere ihtiyaç duyduğundan bunlar özellikle farklı çekirdek, initramfs ve cmdline ayarlarını tanımlamak için kullanışlıdır. Pi 1 ve Pi 2 farklı varsayılan hızlara sahip olduklarından, farklı overclock ayarları da tanımlanabilirler. Örneğin, her biri için ayrı initramfs görüntüsü tanımlamak için:
[pi1]
initramfs initrd.img-3.18.7+ followkernel
[pi2]
initramfs initrd.img-3.18.7-v7+ followkernel
[all]
Sonunda [all] filtresini kullanmayı unutmayın; böylece sonraki ayarlar yalnızca Pi 2 donanımıyla sınırlı kalmaz.
[none] filtresi
[None] filtresi, izleyen ayarların herhangi bir donanıma uygulanmasını önler. [None] olmadan yapamayacağınız hiçbir şey olmamakla birlikte, kullanılmayan ayar gruplarını her satırda yorum yapmak zorunda kalmadan config.txt dosyasında tutmanın yararlı bir yolu olabilir.
[none]
[EDID=*] filtresi
Pi’nizde tek bir SD kart kullanırken birden fazla monitör arasında geçiş yaparken ve boş bir yapılandırmanın her biri için istenen çözünürlüğü otomatik olarak seçmek için yeterli olmadığı durumlarda, bu, monitörlerin EDID adlarına dayalı olarak belirli ayarların seçilmesine izin verir.
Belirli bir monitörün EDID adını görüntülemek için aşağıdaki komutu çalıştırın:
tvservice -n
Bu şöyle bir şey basar:
device_name=VSC-TD2220
Ardından, yalnızca bu monitöre uygulanacak ayarları belirleyebilirsiniz:
[EDID=VSC-TD2220]
hdmi_group=2
hdmi_mode=82
[all]
Bu, diğer monitörleri etkilemeden belirtilen monitör için 1920×1080 DVT modunu zorlar.
Bu ayarların yalnızca önyükleme sırasında geçerli olduğunu, bu nedenle monitörün önyükleme sırasında bağlı olması ve Pi’nin doğru adı bulmak için EDID bilgilerini okuyabilmesi gerektiğini unutmayın. Önyükleme işleminden sonra Pi’ye farklı bir monitörün Çalışması farklı ayarları seçmez.
Seri numarası filtresi
Bazen ayarlar, SD kartı başka bir kartla değiştirseniz bile, sadece belirli bir Pi’ye uygulanmalıdır. Örnekler arasında lisans anahtarları ve hız aşırtma ayarları bulunmaktadır (lisans anahtarları zaten farklı bir şekilde SD kartı değiştirmeyi desteklese de). Pis’iniz arasında monitör takas etmemeniz koşuluyla, yukarıdaki EDID tanımlaması mümkün olmasa bile, farklı ekran ayarlarını seçmek için de kullanabilirsiniz. Örneğin, monitörünüz kullanılabilir bir EDID adı sağlamazsa veya bileşik çıktı kullanıyorsanız (bunun için EDID okunamıyor).
Pi’nizin seri numarasını görmek için aşağıdaki komutu çalıştırın:
cat /proc/cpuinfo
Komut çıktısı
Serial : 0000000012345678
Sonra sadece bu özel Pi’ye uygulanacak ayarları tanımlayabilirsiniz:
[0x12345678]
# settings here are applied only to the Pi with this serial
[all]
# settings here are applied to all hardware
GPIO filtresi
Bir GPIO’nun durumuna bağlı olarak da filtre edebilirsiniz. Örneğin
[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
Koşullu filtrelerin birleştirilmesi
Aynı tip filtreler birbirlerinin yerine geçerler, böylece [pi2] [pi1] ‘i geçersiz kılar, çünkü ikisinin de aynı anda doğru olması mümkün değildir.
Farklı tipteki filtreler, birbiri ardına sıralanarak kolayca birleştirilebilir, örneğin:
# 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
Önceki tüm filtreleri sıfırlamak ve farklı filtre türlerini istemeden birleştirmekten kaçınmak için [all] filtresini kullanın.