7 Kasım 2008 Cuma
LTIB (Linux Target Image Builder) kurulumu
LTIB in kurulumu için ./ltib çalıştırıldığında, bison paketinin kurulumuyla ilgili bir hata verebilir bu durumda, /pkgs nin içindeki bison un tarpaketini açıp elle kurmak gerekecek:
./configure
make
make install
ardından bison u extract ettiğimiz klasörü silmemiz gerekiyor.
tekrar, ./ltib i çalıştırdığımızda kullanıcı haklarıyla ilgili bir hata verilebilir, bunu düzeltmek için hatada belirtilen düzeltmeyi yapmak gerekiyor.
6 Kasım 2008 Perşembe
Qt nin kurulabilmesi için
Eclipse ile Qt integration kullanımı
export LIBXCB_ALLOW_SLOPPY_LOCK=1
29 Ekim 2008 Çarşamba
Linux framebuffer
Son günlerde MPlayer gibi Linux programları , ve GGI, SDL, GTK+ ve Qt_Extended gibi kütüphaneler, bir X server a ihtiyaç duymadan framebufferı direkt olarak kullanabilmektedirler. Bu, özellikle embedded system ler için oldukça kullanışlıdır.
Linux framebuffer ın çok uzun süredir ciddi bir performans sorunu vardı; ancak şimdi donanımsal hızlandırma için bir framework sağlayan DirectFB kütüphanesi var.
FBUI (FrameBuffer UI) çok düşük maliyetle framebuffer için kernel-içinde bir pencere sistemi(GUI) sağlar : bütün alt sistemin büyüklüğü yaklaşık 50 kb kadardır. Birden çok programın aynı anda framebufferı paylaşmasını sağlar; üst üste gelen hareketli pencerelere izin verir; her program birden çok pencereye sahip olabilir; ve her sanal konsol üzerinde pencerelere izin verir. FBUI; load monitor, clock, calculator, scribble pad, image viewer, window managers, ve basit bir MPEG2 çaların yanında, pencereler, olaylar, vb.. için soyutlama sağlayan libfbui yi de içerir. FBUI VESA framebuffer sürücüsü için optimize edilmiş bir kod içerir.
From Wikipedia, the free encyclopedia (Linux Framebuffer)
Framebuffer nedir?
Grafik hızlandırma
22 Ekim 2008 Çarşamba
Cirrus Logic EDB9315: tftp kurulumu
Ardından minicom konsolunda seri port üzerinden bir bağlantı açılır.
Konsolda :
ln -s /dev/ttyS0 /dev/modem
minicom
minicom konsolu açılacak..
Qt Embeded 2.3.10 kurulumu
tar -xzvf tmake-1.13.tar.gz
tar -xzvf qt-x11-2.3.2.tar.gz
tar -xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-host
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-host
#Bu aşamada gcc 4.x ile compile edebilmek için bazı patchler yapmamız lazım
/opt/qt-2.3.10/include/qwindowsystem_qws.h dosyasına
class QWSInputMethod;
class QWSGestureMethod; satırlarını ekleyeceğiz
#bunun dışında bir de(/opt/qt-2.3.2 için de aynı şey yapılacak)
qvaluestack.h içinde
remove( this->fromLast() ); satırı
this->remove( this->fromLast() ); olarak değişecek
#Build Qt2.3.2 Build Qt2.3.2
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-xft
make
mkdir $QTEDIR/bin
cp bin/uic $QTEDIR/bin/
#Build Qvfb
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/tools/qvfb
make clean
export PATH=/opt/dev/tmake-1.13/bin:$PATH
tmake -o Makefile qvfb.pro
make
mv qvfb $QTEDIR/bin/
#Build Qt/Embedded
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-xft -qvfb -depths 4,8,16,32
make
#Run demo
export QTDIR=$QTEDIR
export PATH=$QTEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/examples/launcher
qvfb -width 640 -height 480 &
sleep 10
./launcher -qws
#Şimdi target için qt embedded i derleyeceğiz
tar -xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-target
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-target
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
export PATH=/usr/local/arm/3.4/bin:$PATH
make
#burda epeyce bi hata verecek, tekrardan şu komutları çalışırıyoruz:
make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make
#bundan sonra şu hataları verebilir:
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
#bunlar şimdilik önemli değil, tmake de yapacağımız değişiklikle bunları çözeceğiz.
#şimdi /$QTEDIR/lib/ içindeki libqte.so* ları kartımızdaki /usr/lib klasörüne #kopyalayacağız.
#tmake düzenlemesi
$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf dosyasındaki
“TMAKE_LINK= arm-linux-gcc”
“TMAKE_LINK_SHLIB= arm-linux-gcc” girişlerini
“TMAKE_LINK= arm-linux-g++”
“TMAKE_LINK_SHLIB= arm-linux-g++” olarak değiştir.
#executable oluşturma(demo)
cd /$QTEDIR/examples/progressbar
tmake -o Makefile progressbar.pro
make
#bu kadar...
Ek notlar: Export....,
target compile için çevresel değişkenler:
export TMAKEDIR=/opt/dev/tmake-1.13
export QT2DIR=/opt/dev/qt-2.3.2
export QTEDIR=/opt/dev/qt-2.3.10-target
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=/opt/dev/tmake-1.13/bin:$PATH
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/arm/3.4/bin:$PATH
host compile için çevresel değişkenler:
export TMAKEDIR=/opt/dev/tmake-1.13
export QT2DIR=/opt/dev/qt-2.3.2
export QTEDIR=/opt/dev/qt-2.3.10-host
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export PATH=/opt/dev/tmake-1.13/bin:$PATH
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
Cirrus Logic EDB9315:Nfs Server Configuration
directory olarak ramdiskimizi(root file system) extract ettiğimiz klasörü gösteriyoruz...
Host Wild Card: *
Options: rw,no_root_squash,sync
zImage i yüklüyoruz:
RedBoot> load -r -v -b 0x80000 zImage
redboot ta aşağıdaki komutu yazıyoruz:
exec -r 0x1000000 -c "root=/dev/nfs rw nfsroot=10.18.6.233:/home/yg/calisma/arm9/nfs ip=10.18.7.135:10.18.6.233::255.255.0.0::eth0:off console=ttyAM"
Cirrus Logic EDB9315: rebuild linux kernel
export PATH=/usr/local/arm/3.4/bin:$PATH
export CROSS_COMPILE=arm-linux-
#linux-2.6.20.4-edb93xx.patch i kernelin içine attıktan sonra:
patch -p1 < linux-2.6.20.4-edb93xx.patch
make edb9315_defconfig
make menuconfig
#menuconfig ekranında ARM platformuna uygun kernel seçenekleri seçilir ardından zImage #oluşturulur:
make zImage
#zImage imizi tftpboot klasörünün içine atıyoruz.
cp arch/arm/boot/zImage /tftpboot/
daha sonra load image ile devam ediyoruz.
Cirrus Logic EDB9315:load image
load -r -v -b 0x1000000 ramdisk.gz
load -r -v -b 0x80000 zImage
exec -r 0x1000000 -s 0x1000000 -c "root=/dev/ram console=ttyAM”
rootnfs server klasöründen boot etmek için:
exec -r 0x1000000 -c "root=/dev/nfs rw nfsroot=10.18.6.233:/home/yg/9315/nfs ip=10.18.7.135:10.18.6.233::255.255.0.0::eth0:off console=ttyAM"
20 Ekim 2008 Pazartesi
Cirrus Logic EDB9315:redboot kurulumu
Download programını çalıştırıp redboot u com port üzerinden yükleyeceğiz:
>download redboot.bin
Download bittikten sonra "jumper 92" nin "2&3" e getirilmesi gerekir.
Bundan sonra Redboot' u konfigüre etmemiz gerekiyor. Önşart olarak, seri port üzerindenhaberleşme için sistemde "minicom" uygulamasının yüklü olması gerekiyor.
minicom çalıştırıldıktan sonra konsolda:
fconfig -i
Initialize non-volatile configuration - continue (y/n)? y
Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address: 10.18.1.0
Local IP address: 10.18.7.135
Local IP address mask: 255.255.0.0
Default server IP address: 10.18.6.233
Set eth0 network hardware address [MAC]: false
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
diyerek, redbootu konfigure etmiş oluruz
"make" ile derleme hızını arttırma
make -j
Qt: qt eclipse integration problemi
export LIBXCB_ALLOW_SLOPPY_LOCK=1
18 Ekim 2008 Cumartesi
Visual Studio notu-2-
Project->Properties->Configuration Properties->Linker->Input->Additional Dependencies 'e gerekli parametreleri eklemek gerekiyor
Qt: bir şekli merkezi etrafında döndürme
p.translate(90,90); //koordinat sistemini taşı
p.rotate(angle); //koordinat sistemini döndür
p.translate(-90,-90); //koordinat sistemini eski yerine taşı
p.drawImage(myImage); //resmi çizdir(resim angle değeri kadar döndürülmüş olarak çizilir)
p.translate(90,90); //koordinat sistemini eski haline getirmek için
p.rotate(-angle); //sistemi ters yönde döndürüyoruz
p.translate(-90,-90); //resmimiz döndürülmüş oldu ve koordinat sistemi eski haline getirildi
Qt: designer' a kendi oluşturduğunuz plugini ekleme
dll .manifest ve object dosyalarını QTDIR\plugins\designer klasörünün altına kopyala
Visual Studio notu-1-
Project->Properties->Configuration Properties->Project Defaults->Configuration Type