Raspberry Board Konfigürasyonu

Raspberry Pi cihazınız açılırken boot yükleyici uygulama tarafından SD kart üzerindeki birinci FAT bölümünde config.txt adlı dosya aranır ve bu dosyada yer alan tanımlara göre cihazın çalışma biçimine dair bir takım özellikler ayarlanır.

Bu süreci PC mimarisindeki BIOS yazılımları ile benzeştirebiliriz. BIOS'lardan farklı olarak konfigürasyon için ekran üzerinde bir arayüz sunulamadığı için, tüm ayarlar config.txt adındaki dosya üzerinde yapılır.

Değişikliklerin aktif olması için sistemin yeniden başlatılması gereklidir. config.txt dosyası GPU tarafından çalıştırılan boot yükleyici içerisinden işlenmektedir. Dolayısıyla CPU ve Linux tarafı henüz başlamadan önce sistemle ilgili önemli ayarlamaların yapılabilmesi sağlanmaktadır.

Örnek olarak GPU ve CPU arasında belleğin hangi oranlarda paylaştırılacağı bu dosyadan ayarlanabilir. Bunun için gpu_mem konfigürasyon anahtar sözcüğü kullanılır. Eğer 1 GB'lık bir Raspberry Board'unuz var ve GPU tarafına 128 MB ayırmak istiyorsanız config.txt içerisine aşağıdaki satırı eklemelisiniz:

gpu_mem=128

Yukarıdaki satır boot yükleyici tarafından işlendiğinde 1 GB belleğin 128 MB'ı GPU kullanımına ayrılır, kalan 872 MB ise CPU (ve Linux) tarafından kullanılabilecek hale gelir. 1 GB bellekli modellerde GPU için ayırabileceğiniz minimum alan 16 MB, maksimum ise 944 MB olabilir.

Benzer şekilde CPU saat frekansı, GPU saat frekansı, SDRAM frekansı, H264 Video Decoder lisansları vb. ayarlanabilir. Aşağıdaki bölümlerde başlıca konfigürasyon bloklarını inceleyeceğiz.

Bellek Konfigürasyonu

gpu_mem

Sistemde yer alan GPU'nun belleğin ne kadarını kullanacağını bu şekilde belirtebiliriz. Raspberry Pi modelleri arasında bellek farklılıkları bulunduğundan 256 MB, 512 MB ve 1024 MB belleğe sahip Raspberry Pi modellerinde GPU için ayrılabilecek minimum ve maksimum değerler aşağıdaki tablodaki gibidir:

Raspberry Pi Modeli Minimum GPU Belleği Maksimum GPU Belleği
256 MB 16 MB 192 MB
512 MB 16 MB 448 MB
1024 MB 16 MB 944 MB

Bazen aynı SD kart imajını her 3 model Raspberry Pi cihazında kullanmak isteyebilirsiniz. Bu senaryoda farklı modellere yönelik GPU bellek miktarını tanımlayabilmek için, 256 MB bellekli modellerde gpu_mem_256, 512 MB bellekli modellerde gpu_mem_512 ve 1024 MB bellekli modellerde gpu_mem_1024 parametrelerini kullanabilirsiniz.

ÖNEMLİ: gpu_mem=16 şeklindeki bir tanımla GPU tarafına minimum bellek ayırmanız gerekirse, standart start.elf ve fixup.dat dosyaları ile sistem boot edilememektedir. Bunun için her iki firmware dosyasının cut-down (kırpılmış) versiyonları kullanılmalıdır. Raspberry Pi Firmware arşivininden start_cd.elf ve fixup_cd.dat dosyalarını da SD kartınızın ilk FAT bölümüne kopyalamak suretiyle açılışı gerçekleştirebilirsiniz. GPU tarafına 16 MB bellek ayrıldığında, GPU'nun bazı özellikleri de devre dışı bırakılmakta ve daha hızlı bir açılış gerçekleşmektedir. Ancak bu açılış için yukarıda bahsettiğimiz dosyaların da SD kart üzerinde bulunması zorunludur.

disable_l2cache

Öntanımlı değeri 0 olup, bu değeri 1 yapmanız halinde ARM CPU'nun GPU üzerindeki Level 2 Cache alanına erişimini engelleyebilirsiniz. Özellikle GPU yoğun uygulamalarda bu özelliğin kullanılması tercih edilebilir.

config.txt üzerinden GPU Level 2 Cache devre dışı bırakıldığında mevcut Linux çekirdek imajınızla ARM CPU tarafında boot gerçekleştiremezsiniz. Boot edebilmek için Linux çekirdeğinin de GPU Level 2 Cache alanını kullanmayacağını bilecek şekilde derlenmiş olması gereklidir. Çekirdek konfigürasyonunda CONFIG_BCM2708_NOL2CACHE=y yapıp yeniden derleyerek boot işlemini gerçekleştirebilirsiniz.

disable_pvt

Öntanımlı değeri 0 olup, 1 yapılması halinde her 500 milisaniyede bir DRAM sıcaklığının kontrol edilmesi fonksiyonunu devre dışı bırakmaktadır. Her bir kontrol ortalama 16µs zaman almaktadır. Eğer ortam şartlarından eminseniz az da olsa performansı artırmak için bu özelliği kullanmak isteyebilirsiniz.

Grafik Ekran ve Monitor Konfigürasyonları

display_rotate

Ekranı döndürmek veya yatay/dikey oryantasyonunu değiştirmek için kullanılır. Aşağıdaki tabloda display_rotate değerlerine karşılık gerçekleşen durum bilgileri yer almaktadır:

Display_rotate değeri Sonuç
0 Herhangi bir dönüşüm uygulanmaz
1 Saat yönünde 90 derece döndür
2 Saat yönünde 180 derece döndür
3 Saat yönünde 270 derece döndür
0x10000 Görüntünün yatay katlanmış hali
0x20000 Görüntünün dikey katlanmış hali

Not: 90 ve 270 derece döndürme işlemlerinde bir miktar ek GPU belleği gerektiğinden, GPU için 16 MB bellek ayırmanız halinde çalışmayacaktır. Bunun için GPU bölümüne minimum 32 MB bellek ayırmalısınız.

hdmi_safe

Bu değerin 1 yapılması halinde HDMI monitorlerde sık karşılaşılan otomatik algılama sorunlarına karşılık çeşitli workaround'ler devreye alınır. Eğer HDMI ekranında görüntü alamıyorsanız bu opsiyonun değerini 1 yapıp test etmeniz önerilir.

hdmi_safe=1 durumu aşağıdaki konfigürasyona eşittir:

hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overscan=0
overscan_left=24
overscan_right=24
overscan_top=24
overscan_bottom=24

Yukarıda yer alan her bir konfigürasyon anahtar deyiminin detaylarına buradan erişebilirsiniz.

disable_splash

Bu değerin 1 yapılması durumunda, açılış sürecindeki test sırasında gökkuşağı logosunun gösterimi engellenir.

Bazı HDMI monitorlerde algılama süreci uzun sürdüğünden bu logoyu hiç görmemiş de olabilirsiniz. Normalde cihazınız açılmaya başladığında ilk olarak HDMI üzerinde bu logoyu göstermektedir.

bootcode_delay

Değer girilmesi halinde bootcode.bin yükleyicisi start.elf ikinci aşama boot yükleyici yüklemeden önce girilen değer kadar saniye boyunca bekler.

Bu opsiyon Raspberry Pi cihazı ile HDMI monitorün aynı güç kaynağından beslendiği ve HDMI monitor tarafında ilklendirme işlemlerinin uzun sürdüğü senaryolarda faydalı olmaktadır.

Overclock Parametreleri

Raspberry Pi, overclock işlemleri için çok sayıda konfigürasyon opsiyonu sunmaktadır. ARM CPU frekansı, GPU içerisinde ayrı ayrı h264 bloğu, 3D bloğu, SDRAM frekansı vb. ayarlanabilmektedir. İlgilenenler detaylı bilgiye buradan ulaşabilir.

Önceleri Raspberry tarafından önerilen overclock fonksiyonlarının dışında bir parametre kullanıldığında cihaz garanti dışı kalıyordu. Daha sonradan force_turbo parametresi ile aktive edebileceğiniz turbo mode geliştirildi. Turbo mode aktif cihazlarda çalışma frekansları sistem meşgul olduğunda artırılmakta, sistem sıcaklığı 85°C üzerine çıktığında ise düşürülmektedir. Bu şekildeki kullanım garanti kapsamına dahildir.

Codec Lisans Aktivasyonu

Raspberry Pi board'unun güçlü olduğu yanlardan biri de donanım destekli h264 encode ve decode işlemidir. Bu özelliğin aktivasyonu her bir board için lisans satın alınarak yapılmaktadır.

Halihazırda MPEG-2 ve VC-1 olmak üzere 2 tip codec satın alınabilmektedir. VC-1 codec'i sadece Windows Media Video (WMV) dosyalarını oynatmak istiyorsanız gereklidir.

Satın alma işlemleri için http://swag.raspberrypi.org/collections/software adresini ziyaret etmelisiniz. Lisanslar CPU seri numaralarına göre yapıldığından, satın alma işleminden önce sisteminizi boot edip /proc/cpuinfo dosyasından seri numarasını öğrenmelisiniz:

# cat /proc/cpuinfo
...
Hardware        : BCM2709
Revision        : a01041
Serial          : 00000000634c6685

Temmuz 2015 itibariyle MPEG-2 codec lisansı cihaz başına 2£ (yaklaşık 8,5 TL) civarındadır.

Lisansınız geldikten sonra config.txt içerisinde bu lisansın ilgili olduğu CPU seri numarasını belirtmeniz gerekiyor. Örnek olarak yukarıdaki CPU için MPEG-2 lisansı alınmışsa girmemiz gereken parametre şu şekilde olacaktır:

decode_MPG2=0x634c6685

Eğer VC-1 codec lisansı almış olsaydık bu durumda aşağıdaki parametreyi girmeliydik:

decode_WVC1=0x634c6685

Bazen aynı SD kart imajını birden fazla üründe kullanmanız gerekebilir. Ancak sözkonusu cihazlar için ayrı ayrı codec lisansları alınmış ise, her bir cihazdaki config.txt dosyasındaki ilgili parametrelerin düzenlenmesi gereklidir.

Raspberry Pi bu durumu kolaylaştırmak için yukarıdaki konfigürasyon parametrelerine virgül ile ayrılmış şekilde 8 adede kadar CPU seri numarası yazılmasına imkan vermiştir. Aşağıda 3 farklı CPU seri numarasının yer aldığı bir örneği görebilirsiniz:

decode_MPG2=0x634c6685,0x1234567,0x99889922

Her ne kadar birden çok seri numarası yazımı mümkün olsa da, sahada büyük ölçekli bir kullanım içi 8 adet oldukça düşük bir sayı olarak kalmaktadır. Böyle bir ürün içerisinde kullanmak istiyorsanız lisans yönetimi için yazılım tarafında süreci kolaylaştırıcı ek mekanizmalar geliştirmeyi düşünmelisiniz.

results matching ""

    No results matching ""