Chinaunix首页 | 论坛 | 博客
  • 博客访问: 205739
  • 博文数量: 32
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-22 15:50
文章存档

2014年(16)

2013年(16)

分类: 嵌入式

2013-11-23 16:02:04

                    初试构建Linux根文件系统

开发环境:    
                SYSTEM        :  Ubuntu-12.04

                Board            :  Mini2440-t35
                Bootloader   :  u-boot-1.1.6
                Kernel           :  Linux-2.6.22.6
                CROSS_COMPILE: arm-linux-gcc v3.4.5

说明:制作过程参考《嵌入式Linux应用开发完全手册》和韦东山视频教程,所用bootloader为韦东山老师提供,Kernel修改自韦东山老师提供的补丁,主要修改了LCD驱动使其能够正确用在我的MINI2440开发板

一、编译busybox-1.7.0

            $ tar xjvf busybox-1.7.0.tar.bz2
            $ make menuconfig
         这里只修改了少部分内容,添加如下选项
            Busybox Settings --->
                Busybox Library Tuning --->
                    [*]    Tab completion
         保存、退出
         修改顶层Makefile,指定
            ARCH                    ?= arm
            CROSS_COMPILE  ?= arm-linux-  
        $ make
        $ make CONFIG_PREFIX=<......>/myfirst_rootfs install
二、 创建console、null设备节点
    $ mkdir dev
    $ cd dev
    $ sudo mknod console c 5 1 (c表示字符设备、主设备号是5、次设备号是1)
    $ sudo mknod null c 1 3

三、创建 /etc/inittab
 
        $ cd ../
        $ mkdir etc
        $ vim etc/inittab
        添加如下内容
            console::askfirst:-/bin/sh
四、安装glibc库


    glibc库来自韦东山老师的gcc-3.4.5-glibc-2.3.6
    $ mkdir lib
    $ cp <.....>/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so*   ./lib -d

五、文件系统制作测试
        $ mkyaffs2image myfirst_rootfs myfirst_rootfs.yaffs2

        烧入、测试
        到这里最基本的文件系统已经建立,在我的Mini2440上可正常挂载

        测试注意修改bootargs参数
            set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=yaffs
        结果OK

六、完善
    添加配置文件

        $ cd myfirst_rootfs
        $ mkdir proc (创建proc目录,即proc挂载点)
        $ vim etc/inittab
        添加
            ::sysinit:/etc/init.d/rcS
    创建脚本文件
        $ mkdir etc/init.d
        $ vim etc/init.d/rcS
    修改rcS脚本如下
        $ vim etc/init.d/rcS
            mount -a         #(依赖于etc/fstab)
      $ vim etc/fstab
        添加如下内容:
       #device     mount-point     type    options     dump    fsck    order
        proc        /proc           proc    defaults    0       0
     
     
$ mkyaffs2image myfirst_rootfs myfirst_rootfs.yaffs2

        烧入测试,ps命令可用

        使用mdev创建设备文件
        $ mkdir sys
        $ mkdir tmp
        $ vim etc/fstab
        增加内容
            sysfs       /sys            sysfs   defaults    0       0
            tmpfs       /tmp            tmpfs   defaults

            $ vim etc/init.d/rcS
                #mount -t proc none /proc
                mount -a
                mkdir /dev/pts
                mount -t devpts devpts /dev/pts
                echo /sbin/mdev > /proc/sys/kernel/hotplug
                mdev -s

       测试、查看开发板dev/目录下文件

        如果用NFS网络文件系统,可修改bootargs参数如下:
    
        set bootargs noinitrd  root=/dev/nfs nfsroot=192.168.1.102:/home/tshwang/arm_linux/nfs/rootfs/myfirst_rootfs  ip=192.168.1.117:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 rootfstype=yaffs



    
    

         
阅读(1711) | 评论(2) | 转发(1) |
0

上一篇:没有了

下一篇:Ubuntu-12.04安装交叉编译环境arm-linux-gcc

给主人留下些什么吧!~~

wangtisheng2013-12-23 09:47:19

7大爷:不错!

多谢,呵呵

回复 | 举报

7大爷2013-11-25 09:35:48

不错!