Fatih Droid Donanım- İlk Uygulama

Bu yazımızda sisteme Angstrom işletim sistemini yükleyeceğiz ve ardından sistem başlangıcına logomuzu ekleyeceğiz.Angstrom üzerinde çalıştıktan sonra, bildiğimiz bir linux dağıtımı olan ubuntu ya geçmeyi düşünüyoruz. Ubuntu için alt yapı çalışmalarımız devam etmektedir. Linux grubu olarak nihai amacımız ise en son Pardus üzerinde çalışmak olacaktır.

 

NOT: Bu proje MCU-TURKEY tarafından desteklenen bir e-reader projesidir. Bir ekip çalışması yapılmaktadır. Diğer paylaşımlar için MCU-TURKEY sitesi ziyaret edilebilir.

KERNEL NEDİR

*  Kernel donanım ile yazılım arasındaki bağlantıyı sağlayan gerekli sürücülerin yüklü olduğu ve modüllerin oluşturulabildiği bir sistemdir. Sistemin çalışmasından ve kaynakların etkin kullanımından sorumludur diyebiliriz.

*  Aklımıza gelecek her türlü ayar kernel üzerinden yapılır ve daha sonradan kernel derlenerek kullanacağımız dosyalar oluşturulur. Kernel derlememizin amacı ise sistemi kendi isteğimize göre ayarlayıp kullanmaktır. İstediğimiz özellikleri açıp istemediklerimizi kapatabilir ve daha küçük ve hızlı çalışan bir sisteme sahip oluruz.

*  Linux kernelini derleyerek uImage dosyası oluşturup Beagle board için bu dosyayı kullanacağız. uImage kernel ayarlarının beagleboard üzerinde uygulanması olarak ta düşünülebilir.

 

Kernel Derleme

Öncelikle bir linux kerneli indirmemiz gerekiyor. Bu yazımızda liquidware firmasının beagletouch için güncellemiş olduğu linux kernelini kullanacağız. Değiştirilmemiş kernel üzerinde çalışmaya ubuntu ile başlamayı düşünüyoruz ve böylelikle Angstrom için bir bakıma zaman kazanmış olacağız.

Eğer kerneli bilgisayarımızda direk derlemeye çalışırsak bilgisayarımızın çekirdeğine göre derlemeye çalışacaktır ve bunun sonucunda bir sürü hatayla karşılaşacağız. Öncelikle Arm çekirdeği için derlemek için gerekli olan toolchain indirilmelidir. Gerekli olan bir diğer modül ise mkimage modülüdür. Sistemin çalıştırılması esnasında uygulama yükleyebilme, derleyebilme olanağı sağlanacaktır. Gerekli modülleri belirledikten sonra konsol üzerinden indirme işlemini gerçekleştiriyoruz.

[codesyntax lang=”text”]

$ sudo aptitude install u-boot-mkimage
$ wget http://www.codesourcery.com/sgpp/lite/arm/portal/package7853/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi.bin
$ mkdir src
$sudo mv arm-2010.09-50-arm-none-linux-gnueabi.bin ./src
$cd src
$./arm-2010.09-50-arm-none-linux-gnueabi.bin

 

[/codesyntax]

İndirme işlemini gerçekleştirdikten sonra bu dosyayı yine konsol yardımıyla oluşturduğumuz src klasörüne karışıklık olmaması açısından taşıyoruz. daha sonra çalıştırıp yüklüyoruz. Yükleme işleminden sonra /home/<kullanıcı adı> kısmında CodeSourcery klasörünü görebiliriz.

Daha sonra bunu kullanım kolaylığı açısından sisteme PATH olarak ekliyoruz. Ve böylelikle konsoldan bütün uzantıyı yazmak yerine sadece arm-none-linux-gnueabi- uzantısı ile bu derleyiciyi çağırabileceğiz.

[codesyntax lang=”text”]

export PATH=/home/<kullanıcı adı>/CodeSourcery/Sourcery_G++_Lite/bin:$PATH

 

[/codesyntax]

Daha sonra liquidware firmasının Angstrom için sağlamış olduğu paketleri indiriyoruz. Sitesine girdiğimizde Download as tar.gz kısmından kernel dosyasını bilgisayarımıza indirebiliriz. Yine aynı yerden .config dosyasını ve rootfs dosyasını indiriyoruz. Daha sonra bu dosyaların hepsini src altına kopyalıyoruz.

Kernelden bahsederken donanım ve yazılım arasındaki bağlantı olduğunu ve hangi donanımı kullanıp kullanamayacağımızı belirleyebildiğimizden bahsetmiştik. Burada yine liquidware firmasının hazırlamış olduğu hazır .config dosyasını kullanacağız. Ubuntu üzerindeki çalışmalarımızda bu .config dosyasını kendimiz oluşturacağız.

Daha sonra konsoldan kernel dizinine geçiyoruz ve derleme işlemlerine başlıyoruz. Öncelikle hangi donanım için bu derleme işlemini yapmamız gerekiyorsa onun tanımlama ayarlarını derleyecek daha sonra ise uImage dosyasını oluşturacağız.

[codesyntax lang=”text”]

$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
omap3_beagle_defconfig
$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage

 

[/codesyntax]

Derleme işleminden sonra uImage dosyasını kernel dizininde /arch/arm/boot sekmesi altında bulabiliriz. Yine bu dosyayı daha sonra kullanabilmek için src klasörüne kopyalıyoruz. Ve böylelikle bu uygulama için kernel derleme işlemimiz tamamlanıyor.

[codesyntax lang=”text”]

$ cd arch/arm/boot
$ sudo cp uImage /home/<kullanıcı adı>/src

 

[/codesyntax]

Daha sonra artık mmc kart üzerine gerekli dosyaların aktarımını yapacağız. Mmc kartı biçimlendirdikten sonra bölümleri oluşturduğumuz geçici klasörlere bağlıyoruz ve dosya aktarımını gerçekleştiriyoruz.

[codesyntax lang=”text”]

$ mkdir /tmp/fat
$ mkdir /tmp/ext
$ sudo mount /dev/sdb1 /tmp/fat
$ sudo mount /dev/sdb2 /tmp/ext
$ cd /home/<kullanıcı adı>/src
$ sudo cp uImage /tmp/fat
$ sudo cp rootfs-ext2.tar.bz2 /tmp/ext
$ cd /tmp/ext
$ sudo tar xvf rootfs-ext2.tar.bz2
$ sudo rm rootfs-ext2.tar.bz2
$ sync
$ sync
$ sudo umount /dev/sdb1
$ sudo umount /dev/sdb2

 

[/codesyntax]

MMC karta yükleme işlemi bittikten sonra BeagleBoard bağlantılarını yapıyor ve sistemi çalıştırıyoruz.

İLK UYGULAMA

İlk uygulamamızda beagleboard açılış ekranını değiştireceğiz . İlk olarak Angstrom üzerinde terminali açıyoruz ve önce derlemek için gtk+ paketini ve program için ise pspflash programını indiriyoruz. Daha sonra dizine programı çıkartıyoruz.

[codesyntax lang=”text”]

$ opkg install gtk+-dev
$ wget http://github.com/downloads/liquidware/liquidware_beagleboard_linux/psplash-r424.tgz
$ tar -xvf psplash-r424.tgz
$ cd psplash-r424

 

[/codesyntax]

Daha sonra pspflash programını kullanabilmek için liquidware firmasının geliştirmiş olduğu patch dosyasını indiriyoruz ve program üzerine entegre ediyoruz.

[codesyntax lang=”text”]

$ wget http://github.com/downloads/liquidware/liquidware_beagleboard_linux/psplash-lw-bootup-imgs.tgz
$ tar -xvf psplash-lw-bootup-imgs.tgz
$ patch -p1 < psplash-lw-bgcolor.patch

 

[/codesyntax]

Patch dosyasının içeriğini incelediğimizde dokunmatik ekran için uyarlama yapıldığını görebiliriz. Arka planın görünümünü değiştirecek ve siyah görünmesini sağlayacaktır.

[codesyntax lang=”text”]

$ make-image-header.sh FatihDroid.png POKY ; mv FatihDroid-img.h psplash-poky-img.h
$ make-image-header.sh barblack.png BAR ; mv barblack-img.h psplash-bar-img.h
$ gcc psplash.c psplash.h psplash-fb.c psplash-fb.h psplash-console.c psplash-console.h psplash-poky-img.h psplash-bar-img.h -o psplash

 

[/codesyntax]

Daha sonra programa kayıtlı dosyaları kendi dosyalarımızla değiştiriyoruz. İlk dosya FatihDroid resminin olduğu dosya, ikinci dosya ise dinamik dolum barımız. Değişim işleminden sonra derliyoruz. Böylelikle artık programımız hazır. Bunu başlangıç ekranına bağlamamız gerekiyor.

[codesyntax lang=”text”]

mv /usr/bin/psplash /usr/bin/psplash.angstrom
cp ./psplash /usr/bin/psplash

[/codesyntax]

Son olarak ne yaptığımızı görmek için programı çalıştırıyoruz.

You May Also Like

About the Author: tunayan

Leave a Reply

Your email address will not be published. Required fields are marked *