Toolchains
เริ่มต้น เราต้องลง Cross Tool Chain ก่อน สำหรับการลง Cross Tool Chain นั้น ที่มีให้จะเป็นสำหรับ linux 32 bit เท่านั้น
-> arm920t-eabi.tgz อันนี้จะทำงานบน linux 32 bit เท่านั้น ถ้าไปใช้บน 64 bit จะเกิดปัญหาคือไม่สามารถเรียกโปรแกรมได้
เริ่มต้นเปิด terminal ขึ้นมา
$ wget http://www.iamgolfz.com/files/arm920t-eabi.tgz
$ sudo tar xzvf arm920t-eabi.tgz -C /
$ echo "export PATH=$PATH:/opt/toolchains/arm920t-eabi/bin" >> ~/.bashrc
$ source ~/.bashrc
จากนั้นลองพิมพ์ ตัวนี้ดูถ้าไม่ขึ้นอย่างนี้แสดงว่า ทำผิดนะครับ
$ arm-angstrom-linux-gnueabi-gcc
arm-angstrom-linux-gnueabi-gcc: no input files
สีชมพูคือสิ่งที่ควรจะได้ไม่ใช่คำสั่ง ถึงตรงนี้เราก็ติดตั้ง Toolchains เสร็จแล้วนะครับ
Compile TSlib (Touch Screen Library)
ตัวนี้จะเป็น library ของ Qt ส่วนหนึ่งสามารถ copy อันที่สมบูรณ์มาใช้ได้เลย แต่ตอนที่ compile Qt นั้นต้องแก้ path ตามที่เราไป copy มาด้วย
$ sudo apt-get install git
$ git clone https://github.com/kergoth/tslib.git ~/tslib
$ cd ~/tslib
$ ls
acinclude.m4 autogen-clean.sh ChangeLog COPYING INSTALL Makefile.am plugins src TODO
AUTHORS autogen.sh configure.ac etc m4 NEWS README tests tslib.pc.in
ตอนนี้เราจะอยู่ใน folder ของ tslib แล้ว ควรจะเห็น file ประมาณนี้นะครับ (สีน้ำเงินคือชื่อไฟล์ไม่ใช่คำสั่งนะครับ) จากนั้นเราต้อง install และ set ตัวแปรบางอย่างเพื่อให้ tslib compile ได้
$ sudo apt-get install g++ automake autoconf libtool build-essential
$ export ac_cv_func_malloc_0_nonnull=yes
จากนั้นจะเป็นขั้นตอนของการ compile พิมพ์คำสั่งดังนี้
$ ./autogen.sh
$ CC=arm-angstrom-linux-gnueabi-gcc CXX=arm-angstorm-linux-gnueabi-g++ ./configure --build=i386-linux --host=arm-linux --target=arm --disable-inputapi --prefix=$PWD/build
รอสักพัก จากนั้น
$ make
$ make install
ถ้าไม่มี Error แค่นี้ก็จะเสร็จสำหรับการ Compile Tslib
Compile Qt 4.7
จากที่เราได้ compile tslib ไปแล้ว ต่อมาจะถึง Qt บ้าง เริ่มต้น install ตามนี้
$ sudo apt-get install g++ zlib1g-dev
จากนั้นเราจะสร้าง Directory qt4.7 และโหลด Qt มา
$ mkdir ~/qt4.7
$ cd ~/qt4.7
$ wget http://download.qt-project.org/archive/qt/4.7/qt-everywhere-opensource-src-4.7.0.tar.gz
รอดาวน์โหลดสักพัก จากนั้นก็แตกไฟล์
$ tar xvzf qt-everywhere-opensource-src-4.7.0.tar.gz
$ cd qt-everywhere-opensource-src-4.7.0
รอสักพักจากนั้นเราจะทำการแก้ไฟล์ config
$ mkspecs/qws/linux-arm-g++/qmake.conf
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = arm-angstrom-linux-gnueabi-gcc
QMAKE_CXX = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-angstrom-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-angstrom-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-angstrom-linux-gnueabi-objcopy
QMAKE_STRIP = arm-angstrom-linux-gnueabi-strip
QMAKE_INCDIR = /home/nuok/tslib/build/include
QMAKE_LIBDIR = /home/nuok/tslib/build/lib
# LIBS += -lts
load(qt_config)
ให้เปลี่ยน /home/nuok เป็นตาม home directory ของตนเองด้วย จากนั้นเราจะทำการ configure Qt ด้วยคำสั่ง
$ ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm -qt-mouse-tslib -little-endian -qt-gfx-transformed -qt-gfx-linuxfb -qt-gfx-vnc -qt-gif -qt-libpng -qt-libjpeg -nomake examples -nomake demos
ตอน config จะมีให้เลือก o สำหรับ opensource และ yes สำหรับ license
ดูเพิ่มเติม configure Options (Qt Embedded)
ถ้าต้องการ config ใหม่ ใช้คำสั่ง
$ make confclean
ถ้าหากไม่มีปัญหาอะไร ให้เราทำการ make
$ make
ขั้นตอนนี้จะใช้เวลานานประมาณ 1 ชมหรือมากกว่านั้น จากนั้น ก็ทำการ install
$ sudo make install
ถ้าทำสำเร็จไม่มีปัญหาใดๆ แค่นี้ก็จะได้ Qt4.7 ที่พร้อมจะลงในบอร์ด mini2440 แล้วครับ
แต่สำหรับ Qt ไฟล์ ค่อนข้างใหญ่ ~ 500 MB เลยไม่ได้ลงไว้นะครับ คงต้อง build กันเองนะครับ