mini2440 u-boot linux 内核启动,Mini2440 uboot,kernel,根文件系统搭建 | 勤奋的小青蛙

本博文需要的软件在这个帖子:

按照mini2440的手册,我所学到的uboot,kernel以及根文件系统的搭建过程分别如下,具体细节暂时不考虑,只考虑整个编译烧写的过程。

首先我们的宿主机一定要有nfs服务器,tftp服务器,具体搭建的过程,可以自己参考

1. mini 2440 编译uboot过程

下载u-boot-2010.03-embedclub-201111.tar.gz,

1:tar zxf u-boot-2010.03-embedclub-201111.tar.gz

2:cd u-boot-2010.03

3:make disclean #执行清理工作

4:make smdk2440a_config #Makefile的对应项

5:make

编好的u-boot.bin在uboot的根目录下,然后我们可以拷贝到tftp服务器的根目录,我的是/tftpboot

然后从norflash启动,通过super vivi烧写到nand flash,按着n键“[n] Download Nboot for WinCE”,连接上usb下载线,通过dnw下载即可,然后关掉开关,从nandflash启动。当然,如果nand flash之前有uboot,我们也可以通过uboot来烧写,具体方法如下:

SMDK2440A>tftp 0x30008000 u-boot.bin

SMDK2440A>nand erase 0 0x60000

SMDK2440A>nand write 0x30008000 0 0x60000

2.mini 2440编译kernel,首先下载linux-2.6.32.2.tar

1:tar zxf linux-2.6.32.2.tar

2:cd linux-2.6.32.2

3:cp config_mini2440_w35 .config

4:修改Makefile,使得 ARCH ?=arm CROSS_COMPILE ?=arm-linux-

5:make menuconfig #内核裁剪,这一步自己根据需要来

6:make Zimage #编译内核

生成的img在/arch/arm/boot下面,是zImage,但是我们需要支持uboot,所以需要加上uboot的头部信息,通过工具mkz2uimage,在/arch/arm/boot目录下,执行该工具,即可生成uImage

通过uboot烧写内核,过程如下:

SMDK2440A>tftp 0x30008000 uImage

SMDK2440A>nand erase 60000 500000

SMDK2440A>nand write 0x30008000 0x60000 0x500000

然后重启,即可进入kernel,但是没有根文件系统,那么我们就要学会搭建根文件系统。

3. mini 2440搭建根文件系统

搭建根文件系统,常见的有nfs网络根文件系统,还有个是yaffs文件系统。首先我们介绍nfs根文件系统

当我们在Linux上把nfs服务器搭建好之后,我的nfs网络共享目录是/nfsroot目录。

我将root_qtopia.tar.gz文件解压至/nfsroot下,然后nfsroot下有个root_qtopia的目录。

这样弄好之后,我们遍进入uboot的命令行,设置 启动参数 如下,我的ip是192.168.1.105:

[u-boot@SMDK2440A]#setenv serverip 192.168.1.105

[u-boot@SMDK2440A]#setenv bootargs console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.105:/nfsroot/root_qtopia ip=192.168.1.226:192.168.1.105:192.168.1.105:255.255.255.0:SMDK2440A.arm9.net:eth0:off

[u-boot@SMDK2440A]#saveenv

设置好之后,输入boot即可重启,然后我们可以看到根文件系统挂载成功。

yaffs根文件系统:

下载root_qtopia.tar.gz,解压

通过工具mkyaffs2images将root_qtopia文件打包成yaffs格式的img,放到tftp服务器根目录,然后在终端执行如下命令:

SMDK2440A>tftp 0x30008000 root_qtopia.img

SMDK2440A>nand erase 0x560000 $filesize

SMDK2440A>nand write.yaffs 0x30008000 0x560000 $filesize

SMDK2440A> boot

下载并烧写之后,我们需要修改bootargs,修改如下:

[u-boot@SMDK2440A]# setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0

[u-boot@SMDK2440A]#saveenv

[u-boot@SMDK2440A]#boot

执行如上的命令之后,即可看到我们的开发板挂载了yaffs根文件系统.

文章的脚注信息由WordPress的wp-posturl插件自动生成

|2|left

打赏

1b6439c6a040252321edad911c85491b.png微信扫一扫,打赏作者吧~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值