Buildroot
making Embedded Linux easy
Aim: Generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a
bootloader image for mini2440 board using buildroot.
Step 1:
dowload this buildroot:
#cd /home/nani/
#wget buildroot.uclibc.org/downloads/buildroot-2011.08.tar.gz
step2:
#tar -xvf buildroot-2011.08.tar.gz
#cd buildroot-2011.08
step3:
#sudo apt-get install gcc bison flex git ncurses-dev texinfo
#make menuconfig
step4:
Target Architecture ->arm
step5:
Target Architecture Variant ---> arm920t
step6:
Toolchain --->
1.Toolchain --->Toolchain type ------->Buildroot toolchain
2.Toolchain --->Kernel Headers ---------> Linux 2.6 (manually specified version)
3.Toolchain --->() linux version ---------> 2.6.29
4.Toolchain --->Build/install a shared libgcc?
5.Toolchain --->Enable compiler OpenMP support
6.Toolchain --->Enable compiler tls support
7.Toolchain --->Enable large file (files > 2 GB) support
8.Toolchain --->Enable IPv6 support
9.Toolchain --->Enable RPC support
10.Toolchain --->Enable toolchain locale/i18n support
11.Toolchain --->Enable C++ support
12.Toolchain --->Enable stack protection support
step7:
System configuration --->
1. System configuration ---> ()System hostname --------> mini2440
2. System configuration ---> ()System banner----------> wellcom to mini2440
3. System configuration ---> Port to run a getty (login prompt) on ------------> ttySAC0
4. System configuration ---> Baudrate to use -------->115200
5. System configuration ---> remount root filesystem read-write during boot
step8:
Package Selection for the target ------------->
1.Package Selection for the target ---->Libraries ---> Hardware handling ---> libts - The Touchscreen
tslib Library
2.Package Selection for the target ---->Graphic libraries and applications------->SDL
3.Package Selection for the target ---->Audio and video libraries and applications ---> ffmpeg
4.Package Selection for the target ---->Audio and video libraries and applications ---> madplay
step9:
Filesystem images --->
1.Filesystem images --->[*] tar the root filesystem
2.Filesystem images ---> [*] jffs2 root filesystem
3.Filesystem images ---> Flash Type ---> (X) NAND flash with 2kB Page and 128 kB erasesize
4.Filesystem images --->[*] initramfs for initial ramdisk of linux kernel
step10 :
Bootloaders --->
1.Bootloaders ---> [*] U-Boot
2.Bootloaders ---> [*] U-Boot --->( )U-Boot board name -----> mini2440
3.Bootloaders ---> [*] U-Boot --->(X) Custom tarball
4.Bootloaders ---> [*] U-Boot --->( ) URL of custom U-Boot tarball ---->path to u-boot.tar.gz
5.Bootloaders ---> [*] U-Boot --->U-Boot binary format-----> (X) u-boot.bin
6.Bootloaders ---> [*] U-Boot ---> [*] Network Settings (NEW)
7.Bootloaders ---> [*] U-Boot ---> [*] Network Settings (NEW) ---->
(192.168.1.20) server ip (NEW)
(192.168.1.6) ip address (NEW)
(192.168.1.1) gateway ip (NEW)
step10:
kernel ------->
1. kernel ------->Kernel version ----> (X) Custom tarball
2.
kernel ------->()URL of custom kernel tarball --->path to your linux-2.6.29.tar.gz
3.
kernel ------->Kernel configuration --->(X) Using a custom config file
4.
kernel ------->Configuration file path ---->path to mini2440_n35_defconfig
5. kernel ------->Kernel binary format-------> (X) uImage
6. kernel ------->[*] Install kernel image to /boot in target
step11:
exit
exit ---> YES
step 12:
make
step 13 :
#cd /home/nani/buildroot-2011.08/fs/skeleton/etc
##########append code below to profile
gedit profile
/***********************************/
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
/***********************************/
Create a new directory name 'profile.d' to keep our system profile startup script, this will be the tslib.sh
to setup the touchscreen environment's setting.
/************************************************/
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none
/************************************************/
AND
Setup the network ip address require in the etc/network/interface file.
# static ip
auto eth0
iface eth0 inet static
address 192.168.1.190
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
go to this dir
cd buildroot-2011.08/target/generic
gedit device_table_dev.txt
line no 59 . uncommant it
#/dev/dsp
666
29
14
step14:
make
step 15:
#cd /home/ravi/buildroot-2011.08/output/images
#ls
rootfs.jffs2
rootfs.tar
uImage
step:
boot the mini2440 with uImage and rootfs
u-boot.bin
you will get like this
wellcome to mini2440
login as root
cd /
vi etc/ts.conf
uncommand
# module_raw input
exit
commands
#ts_calibrate
#ts_test