2010年5月10日 星期一

查看 gcc and glibc版本

gcc版本
gcc -v

glibc版本
locate glibc.so
/lib/glibc.so.6

some logs from my system
nelsonchung@nelsonchung-laptop:/media/4G/kegel-crosstool$ locate libc.so
/lib/libc.so.6
/lib/tls/i686/cmov/libc.so.6
/usr/lib/libc.so
nelsonchung@nelsonchung-laptop:/media/4G/kegel-crosstool$ /libc.so.6
bash: /libc.so.6: 沒有此一檔案或目錄
nelsonchung@nelsonchung-laptop:/media/4G/kegel-crosstool$ /lib/libc.so.6
GNU C Library (EGLIBC) stable release version 2.10.1, by Roland McGrath et al.
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.1.
Compiled on a Linux >>2.6.24-23-server<< system on 2010-01-03.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
For bug reporting instructions, please see:
.
nelsonchung@nelsonchung-laptop:/media/4G/kegel-crosstool$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)

Reference:
http://blog.csdn.net/jcwKyl/archive/2010/01/07/5153334.aspx

透過Facebook分享

Modify qi - config.mk

#
# Include the make variables (CC, etc...)
#

#AS = $(CROSS_COMPILE)as
#LD = $(CROSS_COMPILE)ld
#CC = $(CROSS_COMPILE)gcc
#OBJCOPY = $(CROSS_COMPILE)objcopy
#OBJDUMP = $(CROSS_COMPILE)objdump
#HOSTCC = gcc

CROSS_COMPILE_NELSON=/home/nelsonchung/CodeSourcery/Sourcery_G++_Lite/bin
CROSS_COMPILE_TITLE=arm-uclinuxeabi-
AS = $(CROSS_COMPILE_NELSON)/$(CROSS_COMPILE_TITLE)as
LD = $(CROSS_COMPILE_NELSON)/$(CROSS_COMPILE_TITLE)ld
CC = $(CROSS_COMPILE_NELSON)/$(CROSS_COMPILE_TITLE)gcc
OBJCOPY = $(CROSS_COMPILE_NELSON)/$(CROSS_COMPILE_TITLE)objcopy
OBJDUMP = $(CROSS_COMPILE_NELSON)/$(CROSS_COMPILE_TITLE)objdump
HOSTCC = gcc


# we need the mkudfu tool from U-Boot build
#MKUDFU = ../uboot/u-boot/tools/mkudfu

export CROSS_COMPILE AD LD CC OBJCOPY OBJDUMP MKUDFU

透過Facebook分享

build qi

nelsonchung@nelsonchung-laptop:/media/1803-6F98/qi$ ./build
make[1]: Entering directory `/media/1803-6F98/qi/tools'
make[1]: Leaving directory `/media/1803-6F98/qi/tools'
make -C tools
make[1]: Entering directory `/media/1803-6F98/qi/tools'
gcc -Wall mkudfu.c -o mkudfu
make[1]: Leaving directory `/media/1803-6F98/qi/tools'
mkdir -p image
===> DFU Trailer information:
Trailer Vers.: 1
Trailer Length: 16
VendorID: 0x1d50
ProductID: 0x5119
HW Revision: 0x0350
mkdir -p image
===> DFU Trailer information:
Trailer Vers.: 1
Trailer Length: 16
VendorID: 0x1d50
ProductID: 0x5119
HW Revision: 0x0350
mkdir -p image
===> DFU Trailer information:
Trailer Vers.: 1
Trailer Length: 16
VendorID: 0x1457
ProductID: 0x5119
HW Revision: 0x0240
nelsonchung@nelsonchung-laptop:/media/1803-6F98/qi$ ./build
make[1]: Entering directory `/media/1803-6F98/qi/tools'
make[1]: Leaving directory `/media/1803-6F98/qi/tools'
make -C tools
make[1]: Entering directory `/media/1803-6F98/qi/tools'
gcc -Wall mkudfu.c -o mkudfu
make[1]: Leaving directory `/media/1803-6F98/qi/tools'
mkdir -p image
===> DFU Trailer information:
Trailer Vers.: 1
Trailer Length: 16
VendorID: 0x1457
ProductID: 0x5119
HW Revision: 0x0240

build好的image產生在image 目錄下

nelsonchung@nelsonchung-laptop:/media/1803-6F98/qi/image$ ls
qi-s3c2410-master_c38b062a609f1442 qi-s3c2410-master_c38b062a609f1442.udfu
qi-s3c2410-master_c38b062a609f1442.dis start_qi_all-s3c2410

就可以拿qi-s3c2410-master_c38b062a609f1442
去燒錄嚕

前製作業
1.

安裝toolchain


2.

Modify qi - config.mk


透過Facebook分享

安裝toolchain

如果你沒打算自己build toolchain
可以使用此家公司所提供免付費的版本
http://www.codesourcery.com/sgpp/lite/arm/portal/release1296

Sourcery G++ Lite 2010q1-189 for ARM uClinux

使用bash安裝
sudo ./arm-2010q1-189-arm-uclinuxeabi.bin
[sudo] password for nelsonchung:
Checking for required programs: awk grep sed bzip2 gunzip
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...
















透過Facebook分享

cross compile toolchain

http://www.kegel.com/crosstool/

記載gcc/glib去build cross-toolchain and kernel是否能compile for 不同平台上

The following matrix shows whether the given combinations of gcc, glibc, binutils, and linux kernel headers, lightly patched, can build a cross-toolchain and compile a kernel for the given CPUs
http://www.kegel.com/crosstool/crosstool-0.43/buildlogs/

另外
這邊也有介紹
http://jslinux.pixnet.net/blog/post/12066907
此文章提到
O'Reilly 的 " Building Embedded Linux System " 一書中, 第107頁裡 , 有列出了幾個較穩定性的目標板(Target Board) , 以及相對的開發工具版本. 或許我們的第一步 , 可以參照這些經驗 , 將檔案download下來使用

有電子檔可以下載(誤)
看來需要買一本 - Building Embedded Linux System

透過Facebook分享

Qi - Readme

Booting Heuristics:
  • 開機載入
可以load在Flash or SD card的 image
folder名稱為/boot/.bin
順序為
1st SD primary partition,
2nd primary partition,
3rd primary partition,
最後一個為
NAND kernel partition.
  • 取消rootfs
增加一個檔案名稱
/boot/noboot-, eg, /boot/noboot-GTA02

kermel image會在開啟的時候做判斷

如果沒有kernel存在
qi就會做memory test

透過Facebook分享