码迷,mamicode.com
首页 > 其他好文 > 详细

mini2440 最小根文件系统制作和nfs启动

时间:2014-05-23 11:52:08      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

mini2440 内核启动后,可以用busybox制作一个简单的根文件系统并用nfs来启动该文件系统

启动mini2440, 按任意键进入uboot,按q键进入uboot命令行:

执行以下命令:

bubuko.com,布布扣
set bootargs "noinitrd root=/dev/nfs rw nfsroot=192.168.211.2:/home/host/nfs/mini2440/rootfs ip=192.168.211.211 console=ttySAC0 init=/linuxrc"

  saveenv

bubuko.com,布布扣

http://busybox.net/downloads/busybox-1.22.1.tar.bz2 下载busybox,然后解压缩并进入解压文件夹:

bubuko.com,布布扣
tar xf busybox-1.22.1.tar.bz2 
cd busybox-1.22.1/
bubuko.com,布布扣

然后执行下面命令进行配置:

bubuko.com,布布扣
make menuconfig
bubuko.com,布布扣

选择下面的选项:

bubuko.com,布布扣
Busybox Settings--->
  Build Options----> 
    [*]Build BusyBox as a static binary (no shared fibs) 
      (arm-linux-) Cross Compiler prefix 

Busybox Settings --->
  Installation Options --->     Applets links (as soft-links) -->     (/home/host/nfs/mini2440/rootfs)BusyBox installation prefix
bubuko.com,布布扣

其他选项选择默认即可。

然后进行编译和安装(安装到/home/host/nfs/mini2440/rootfs文件夹下):

bubuko.com,布布扣
make
make install
bubuko.com,布布扣

然后进入rootfs文件夹,执行下面命令:

bubuko.com,布布扣
mkdir dev etc home lib mnt proc sys tmp var
mkdir etc/init.d
touch etc/inittab
chmod +x etc/inittab 
touch etc/init.d/rcS
chmod +x etc/init.d/rcS
touch etc/fstab
cd dev
mknod ttySAC0 c 204 64 
ln -s ttySAC0 console
mknod null c 1 3
mknod mtdblock0 b 31 0
mknod mtdblock1 b 31 1
mknod mtdblock2 b 31 2
mknod mtdblock3 b 31 3
cd ../lib/
bubuko.com,布布扣

在etc/inittab文件中添加如下内容:

bubuko.com,布布扣
# System initialization. 
::sysinit:/etc/init.d/rcS 
::sysinit:/bin/sh   ::ctrlaltdel:/sbin/reboot  ::shutdown:/bin/umount -a -r
bubuko.com,布布扣

在etc/init.d/rcS文件中添加如下内容:

bubuko.com,布布扣
#!/bin/sh
mount -a
bubuko.com,布布扣

在etc/fstab文件中添加如下内容:

bubuko.com,布布扣
none /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
bubuko.com,布布扣

这样根文件系统就基本完成了,然后重启nfs服务器:

bubuko.com,布布扣
/etc/init.d/nfs-kernel-server restart
bubuko.com,布布扣

再重启mini2440就可以从nfs启动根文件系统了。

 

也可以制作yaffs镜像并烧写到nand flash:

从mini2440光盘中找到工具mkyaffs2image-128M(光盘中以压缩包方式存放于linux/mkyaffs2image.tgz),然后执行下面命令:

bubuko.com,布布扣
mkyaffs2image-128M  /home/host/nfs/mini2440/rootfs/ rootfs.img
bubuko.com,布布扣

 

将rootfs.img拷贝到tftp文件夹,然后重启nfs服务器:

bubuko.com,布布扣
/etc/init.d/tftp-hpa restart
bubuko.com,布布扣

接着重启mini2440,进入uboot命令行,执行下面命令 :

bubuko.com,布布扣
tftp 0x30008000 rootfs.img 
nand erase 0x560000 $filesize 
nand write.yaffs 0x30008000 0x560000 $filesize
bubuko.com,布布扣

但是最后一步烧写yaffs失败,提示“ 2621440 bytes written: ERROR"。

我之后修改成下面的命令就可以了(filesize 大小为2adc80):

bubuko.com,布布扣
nand erase 0x560000 2d0000 
nand write.yaffs 0x30008000 0x560000 $filesize
bubuko.com,布布扣

 但是之后我又试了一次,但再次烧写失败,不知道原因何在。

 

mini2440 最小根文件系统制作和nfs启动,布布扣,bubuko.com

mini2440 最小根文件系统制作和nfs启动

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/qiaoqiao2003/p/3737045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!