AESOP project documentation

Xkdrive(of XOrg) for ARM9(S3C2440A) cross compile howto

- Test board: aesop-2440a
- 2005.12.15
- godori from http://www.aesop-embedded.org

Released sources include many other package's source for cross & scratchbox native compiling
Xkdrive ==> cross & scratchbox native both....

0. toolchain path & source code
- toochain path
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux

- source code
20060215_aesop_Xkdrive_and_sources_for_cross_and_scratchbox.tar.gz

- cross compiling make & make install tip
make DESTDIR=[rootfsÀÇ / directory] install
make prefix=[want to install directory from rootfs's / directory] install

===============================================================================
ex> if /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 is rootfs's / directory,

Packages using DESTDIR, make DESTDIR=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 install
Packages using prefix, make DESTDIR=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 install

in case udev package
make DESTDIR=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 install

in case zlib package
make install prefix=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux

Because /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 == aesop-2440a's root filesystem's / directory,
and /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux == aesop-2440a's root filesystem's /usr directory(softlinked)
===============================================================================

See first "Making root filesystem with toolchain directory"

1. libpng-1.2.8-config.tar.gz

- cross
CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib ./configure --build=i386-linux --host=arm --target=arm-linux --prefix=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux --without-x

// in slackware 10.1 version
./configure --build=i386-linux --host=arm-linux --target=arm-linux --prefix=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux --without-x

make
make install

- scratchbox or native compiler
./configure --prefix=/usr --without-x

 

2. tslib

2-1. tslib source
tslib_pubcvs.arm.linux.org.uk__20051122.tar.gz

 

2-2. configure
./autogen.sh
./configure --prefix=/usr --enable-shared --enable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00 --build=i386-linux --host=arm-linux

after configure

vi config.h & fix below
//#define malloc rpl_malloc

make;make prefix=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux install

==> Fix installed tslib.pc, package config's file reference path...
(because of --prefix=/usr for packaging in configure run, but install to toolchain path)

2-3. tslib configuration setting in root filesystem
cd [root file system's etc directory]

mkdir tslib
cd tslib

- in case Linux kernel 2.4.x

vi ts.conf-h3600-2.4

input below ======================
module_raw h3600
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

cd [root file system's etc directory]

insert below for kernel 2.4.x ======================

TSLIB_TSDEVICE=/dev/touchscreen/0raw
TSLIB_CONFFILE=/etc/tslib/ts.conf-h3600-2.4
export TSLIB_TSDEVICE TSLIB_CONFFILE

- in case Linux kernel 2.6.x input device

vi ts.conf-h3600 (for kernel 2.6.x)

input below ======================
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

cd [root file system's etc directory]

insert below for kernel 2.6.x input device driver === (touchscreen driver is /dev/input/event1)

TSLIB_TSDEVICE=/dev/input/event1
TSLIB_CONFFILE=/etc/tslib/ts.conf-h3600
export TSLIB_TSDEVICE TSLIB_CONFFILE

 

3. Xkdrive compile

3-1. source
Xkdriver 2005.10.xx cvs version.........^^

3-2. patch

¡Ø see "051215-x-kdrive-start-crash-mouse-patch"(in korean...--;)
==> patch...is done to source code file(http://www.aesop-embedded.org/aesopX/20060215_aesop_Xkdrive_and_sources_for_cross_and_scratchbox.tar.gz)

You extract source code. then, you see directory aesopX, ghclib, xbaseapp
If you only run Xkdrive, just compile aesopX, ghclib directory's sources.

3-3 aesopX directory compile
X-kdrive base library & binary

cd aesopX
./xbuild.sh.arm9
./xbuild.sh.arm9_1

¡Ø To know detail compile option, See build shell files.

3-3. run X server & touch screen

- tslib(for linux kernel 2.6.x input device) enabling & Xkdrive path setting

vi /etc/profile

# /etc/profile: This file contains system-wide defaults used by
# all Bourne (and related) shells.

TSLIB_TSDEVICE=/dev/input/event1
TSLIB_CONFFILE=/etc/tslib/ts.conf-h3600
export TSLIB_TSDEVICE TSLIB_CONFFILE

# Set the values for some environment variables:
export HOSTNAME="`cat /etc/HOSTNAME`"

# Set the default system $PATH:
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:"

# Set a default shell prompt:
#PS1='\u@\h:\w\$ '
PS1='aesop# '
PS2='> '

export PATH PS1

# Default umask. A umask of 022 prevents new files from being created group
# and world writable.
umask 022

alias l='ls -al'

export PKG_CONFIG_PATH="/usr/X11R6/lib/pkgconfig:/usr/lib/pkgconfig"

- run ts_calibrate

ts_calibrate

- run X server in manually

export DISPLAY=:0
Xfbdev -dpi 100 -br -pn :0 -noreset &

==> You see blank X windows & mouse pointer

3-4. ghclib directory compile
freetype & fontconfig.....etc libraries compile

- compile stage 1(using shell script)

ghclib/lbuild.sh.arm_0

¡Ø To know detail compile option, See build shell files.

- fontconfig compile manually

fontconfig-2.3.2 install howto

./configure --sysconfdir=/usr/etc --prefix=/usr --mandir=/usr/share/man --disable-docs --host=arm-linux --build=i386-linux
make
make DESTDIR=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3 install

cd /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/usr/lib/pkgconfig

vi fontconfig.pc

change to
prefix=/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux

cd /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/usr/lib

vi libfontconfig.la

change:
libdir='/usr/lib' ==> libdir='/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib'

- compile stage 2(using shell script)

ghclib/lbuild.sh.arm_1

 

4. font copy

4-1. font copy

aesop rootfs use x86(slackware 10.2) X windows font

cp -a "hosts's /usr/lib/X11/fonts" "rootfs's usr/lib/X11"
cp -a "hosts's /usr/share/fonts" "rootfs's usr/share/fonts"

- font registration

After board booting,

fc-cache -f -v

then, confirm

fc-list

 

5. XKdrive native compiler using scratchbox

See "xkdrive native compile using scratchbox"(in korean)