Post on 04-Apr-2018
7/29/2019 Build uImage
1/3
Build Kernel Image
Download a source copy from mini2440 kernel project into the /usr/src/kernels directory
and decompress the zip file.
gzip -cd mini2440-stable.tar.gz |tar xvf
A new directory 'mini2440' is created.
Optionally, change the directory name and create a reference link to the kernel directory.
mv mini2440 mini2440-2.6.32.7
ln -s mini2440-2.6.32.7 arm-linux
Create a kernel configuration file base on the old config_mini2440_n35 file from an earlier
version eg. linux-2.6.29 from the Mini2440 package.
cd arm-linux
make clean
cp /usr/src/kernels/linux-2.6.29/config_mini2440_n35
./.config
ARCH=arm make oldconfig
Press enter to select all the default settings, when finish a new .config file is generated while
the old one is save in the .config.old.
Optionally, create a default configuration file if you don't have an existing .config file, this will
produce the largest general-purpose configuration.
ARCH=arm make mini2440_defconfig
Change the kernel configuration setting below.
ARCH=arm make menuconfig
Go to 'File Systems' --> 'Network File Systems' --> Select 'NFS client support for NFS' and 'Root
file system on NFS'
--- Network File Systems
NFS client support
[*] NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
[*] NFS client support for NFS version 4 (EXPERIMENTAL)
[ ] NFS client support for NFSv4.1 (DEVELOPER ONLY)
7/29/2019 Build uImage
2/3
[*] Root file system on NFS
< > NFS server support
Go to 'Networking Support' --> 'Networking Options' --> Select the 'IP: kernel levelautoconfiguration
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
[*] IP: RARP support
Go to 'File System' --> 'Pseudo filesystems' --> Select 'Virtual memory file system support'
[*] /proc file system support
[*] Sysctl support (/proc/sys)
[*] Enable /proc page monitoring
[*] sysfs file system support
[*] Virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists
Build the kernel image.
ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make zImage
cp -rf arch/arm/boot/zImage /var/lib/tftpboot
Build the kernel modules, if there are modules setup in the configuration file.
ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make modules
ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make
modules_install
Finally, compressed the kernel image to include checksum and header records require for usewith u-boot.
7/29/2019 Build uImage
3/3
mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e
0x30008000 -d ./zImage ./uImage
Image Name: Created: Tue Mar 2 22:51:28 2010
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2053096 Bytes = 2004.98 kB = 1.96 MB
Load Address: 30008000
Entry Point: 30008000
When finish without errors, the uImage file will be used to flash the kernel image.