FreeBSD ile Embedded Sistem Uygulamaları NanoBSD
Gömülü (Embedded) Sistemler Özel bir amaca hizmet eden, kontrol sistemi içerisinde mikroişlemci / mikrodenetleyici barındıran sistemlerdir. Önceden belirlenmiş bazı görevleri yerine getirirler.
Karşılaşılan Sorunlar Bişeylerin log dosyasının rotate edilmemesi Disklerin bozulması ve ısı yayması Fanların bozulması
Güç Tüketimi Makine Watt/Saat kWatt/Yıl Sunucu 500 4380 Workstation 400 3504 Masaüstü PC ler 300 2628 Mini-ITX 60 525,6 Özel Çözümler 4-8 35-70
Embedded Sistemlerde FreeBSD Kullanımı NanoBSD Nedir? NanoBSD sadece FreeBSD dir. FreeBSDnin kod ağacından derlenir. Eksik özelliği yoktur. Portlar / paketler her zaman çalıştıkları gibi çalışır. Eğer bir işi FreeBSD ile yapabiliyorsanız, NanoBSD ile de yapabilirsiniz.
NanoBSD’nin Özellikleri Sistem çalışırken, herşey Read-Only’dir. Siz kaldırmadığınız sürece eksik özellik yoktur. Rahatlıkla sistemi fişten çekebilirsiniz. Sonraki açılışta açılacak Boot kodu seçimi imkanı.
NanoBSD İmajı Oluşturma NanoBSD imajı oluşturabilmek için FreeBSD’nin kod ağacını da yüklemiş olmalısınız. Eğer yüklü değilse, sysinstall yazılımı ile CD’den yükleyin. İnternetten kodları çekerseniz, oluşacak olan imajın sürümü farklı olabilir. İmaj oluşturmak için: # cd /usr/src/tools/tools/nanobsd # sh nanobsd.sh # cd /usr/obj/nanobsd.full # dd if=_.disk.full of=/dev/da0 bs=64k
NanoBSD’yi Özelleştirmek NanoBSD’yi kendinize göre özelleştirmek için bir konfigurasyon dosyası yaratarak, nanobsd scriptine bu dosyayı gösteriyoruz. Örneğin: # cd /usr/src/tools/tools/nanobsd # cat > ePatiConf.nano NANO_NAME=ePati CONF_WORLD=‘NO_CXX=YES’ NANO_KERNEL=ePatiKernel FlashDevice Sandisk 512M ^D # sh nanobsd.sh –c ePatiConf.nano
NanoBSD Depolama Planlaması boot0 1. Kod /cfg boot0 1. Kod 2. Kod /cfg boot0 1. Kod /cfg Veri boot0 1. Kod 2. Kod /cfg Veri
Bölümlerin Ayarlanması Konfigurasyon dosyasına ekleyeceğimiz değerlere göre bölümlerin büyüklüklerini ayarlayabiliriz: NANO_IMAGES={1|2} NANO_CODESIZE={0|sektörsayisi} NANO_CONFSIZE={sektörsayisi} NANO_DATASIZE={0|sektörsayisi} Sıfır, büyüklüğü otomatik ayarla anlamında kullanılıyor Net boyut belirtmek daha sonra oluşturacağınız imajlarda aynı kararlılığı sağlamak adına tercih edilmelidir.
‘/cfg’ Etiketi /etc klasöründe olması gereken dosyaları içeriyor. Bu bölüm (partition), booting esnasında Read-Only olarak mount ediliyor. Yaptığınız değişiklikleri bu bölüme atmayı da unutmamak lazım: # vi /etc/rc.conf … # mount /cfg # cp /etc/rc.conf /cfg # umount /cfg
RAM Disklerin Ayarlanması /etc ve /var klasörleri birer md(4) disktir. Standart büyüklükleri 5MB tır. Bu değerleri değiştirmek için konfigürasyon dosyasına aşağıdaki satırlayı eklemeliyiz: NANO_RAM_ETCSIZE=20480 NANO_RAM_TMPVARSIZE=40960
Yazılımın Güncellenmesi Yazılımda yapmış olduğunuz değişiklikleri çalışan sisteminizde uygulamak için yeni NanoBSD imajınızı oluşturun. İsterseniz gzip veya bzip2 ile sıkıştırın. Çalışan sistemde aşağıdaki örnekteki komutu çalıştırıp, yazılımı güncelleyebiliriz # ssh Sunucu cat yeniNanoImage.bz2 | \ bzcat | \ sh updatep1
Sorular Özkan KIRIK ePati Bilişim Teknolojileri San. ve Tic. Ltd. Şti. Şirket Müdürü ozkan@ePati.com.tr EnderUNIX YGT@Türkiye Yazılım Geliştiricisi ozkan@EnderUNIX.org