mini 2440 内核移植

来源:互联网 发布:琴爹捏脸数据 编辑:程序博客网 时间:2024/05/22 06:33
 今天做了个基于linux-2.6.32.2的内核实验,以下分享一下我的实验过程:

1、准备工作

硬件环境:mini2440开发板一个

软件环境:redhat 5,一个可用的mini2440 u-boot

linux 内核:linux-2.6.32.2-mini2440-20100921.tar.gz

 

2、内核的制作

2.1、解压内核

首先将  linux-2.6.32.2-mini2440-20100921.tar.gz解压到合适的位置

如:

mv linux-2.6.32.2-mini2440-20100921.tar.gz   /home/work/core

cd /home/work/core

tar -xzvf linux-2.6.32.2-mini2440-20100921.tar.gz

2.2、清理原始配置,并为自己的配置做准备工作

make mrproper   //清理原始配置

make clean        //清理已有的不用文件

cp config_mini2440_n35 .config   //导入预设配置信息

2.3、内核配置

使用命令make menuconfig进入配置阶段

这里只进行部分配置,其他保持默认不变,如果需要请查看相关文档

General setup-->Initial RAM filesystem and RAM disk support和Optimize for size

确认System Type->S3C2440 machines->FriendlyARM Mini2440....已经选上

Device Drivers-->block  devices-->RAM block device support

修改mGine mflash gflash support将size修改为16384

File systems-->Second extended fs support-->所有和File systems-->Kernel automounter //用于选择文件系统支持

2.4、编译内核

make zImage   //编译小于512k的内核

make bzImage  //编译大内核

注:编译好的内核存放在arch/arm/boot/这个目录下的zImage

将zImage移动到u_boot下的tools目录下,使用如下命令制作uImage

./mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -n "Linux kernel Image" -d zImage uImage

 

注:如果直接使用uImage进行内核调试的话会出现一个

Wrong Image Format for bootm command
ERROR: can't get kernel image!

3、调试内核

将uImage 拷贝出来,放在在一个可视位置,使用tftp工具,配合H-Fasher将其烧写到mini2440开发板上。

 

tftp  0x30008000 uImage   //装载内核

tftp 0x31000000 rdisk.gz    //装载文件系统(如果只是测试内核是否可用可以跳过这步)

bootm 30008000                //启动内核,在这里就可以看你的内核是否通过

注:在测试之前要看配置是否正确

包括ipaddr , serverip , boottargs,使用setenv可以设置相应配置,最后一定要使用saveenv进行保存

设置boottargs:

setenv bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=64M initrd=0x31000000,4M init=/linuxrc//0x31000000,4M 文件系统的地址和大小

设置ipaddr:

setenv ipaddr 192.168.8.156 

设置serverip:

setenv serverip 192.168.8.3

saveenv

 

最后使用printenv查看

注:大概步骤是上面的,如果编译出的内核还不能够通过的话,在最前面可以使用make mini2440_defconfig,配置基本相同,还有种原因就是在使用前先使用

make rmproper和make clean清空一起的配置

原创粉丝点击