移植linux2.6.29内核及根文件系统到UP-CPU-2410(3)

    技术2022-05-20  45

    三、制作cramfs+yaffs文件系统

    所需文件:busybox-1.13.3.tar.bz2cramfs-1.1.tar.gz解压在工作目录下,分别是:busybox-1.13.3cramfs

    1.编译cramfs。$cd cramfs$make将编译生成的mkcramfs复制到工作目录下$cp mkcramfs ../

    2.配置busybox修改Makefile:ARCH ?= arm #189行CROSS_COMPILE ?= arm-linux-   #164行

    $make menuconfig

    Busybox Setting----->       build option-->         [*] Build BusyBox as a static binary (no shared libs)          [ ] Force NOMMU build          [*] Build with Large File Support (for accessing files>2GB)          ()  Cross Complier prefix     Installation Options-->        [*] Don't use /usr                    Applets links (as soft-links)  --->           (./_install) BusyBox installation prefix    Busybox Library Tuning-->       [*] vi-style line editing commands      [*] Fancy shell prompts

     

    $make install编译成功会有如下信息:--------------------------------------------------You will probably need to make your busybox binarysetuid root to ensure all configured applets willwork properly.--------------------------------------------------

    在_install目录下生成三个文件:bin  linuxrc  sbin

     

    修改busybox的属性$cd _install$chmod 4755 bin/busybox将_install目录下的三个文件打包$tar cvf 1.tar ./*

     

    3.建立文件系统$mkdir rootfs$cd rootfs$ mkdir dev etc home lib mnt proc usr sys tmp var

    将1.tar文件复制到这里,解压$tar xvf 1.tar$rm 1.tar$lsbin  dev  etc  home  lib  linuxrc  mnt  proc  sbin  sys  tmp  usr  var

    创建设备结点$cd dev$sudo mknod -m 600 console c 5 1$sudo mknod -m 666 null c 1 3

     

    配置etc目录下的文件复制主机/etc目录下的passwd、group、shadow文件到rootfs/etc目录下,在etc目录下创建空

    文件mdev.conf,添加如下文件:1.inittab$vim /etc/inittab::sysinit:/etc/init.d/rcS::askfirst:-/bin/sh::restart:/sbin/init::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a –r

     

    2.init.d/rcS$vim /etc/init.d/rcS#!/bin/shecho "-------------rcS-------------"PATH=/sbin:/bin:/usr/sbin:/usr/bin

    echo "----------munt all-----------"mount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -secho "******************************"echo "linux-2.6.29.1"echo "Bob"echo "2009.10.26"echo "******************************"

    /bin/hostname -F /etc/sysconfig/HOSTNAME

    根改rcS权限:$chmod +x rcS

     

    3.sysconfig/HOSTNAME$mkdir etc/sysconfig$vim etc/sysconfig/HOSTNAMEBob  #用户名

     

    4.profile$vim /etc/profile#!/bin/shecho  "--------------profile--------------"# Set search library pathexport LD_LIBRARY_PATH=/lib:/usr/lib

    # set user pathexport PATH=/bin:/sbin:/usr/bin:/usr/sbin

    #Set PS1#USER = "id -un"LOGNAME=$USERPS1='[/u@/h]#'PATH=$PATHHOSTNAME='/bin/hostname'export LOGNAME PS1 PATH

    ifconfig eth0 210.38.235.4 netmask 255.255.255.0 broadcast 210.38.235.254echo "---------------Done!-----------------"

     

    5.fstab$vim etc/fstabproc    /proc   proc    defaults 0 0tmpfs   /tmp    tmpfs   defaults 0 0sysfs   /sys    sysfs   defaults 0 0tmpfs   /dev    tmpfs   defaults 0 0

     

    复制友善之臂的lib:$cd lib$sudo cp -rfd opt/FriendlyARM/mini2440/root_qtopia/lib/* ./

     

    创建cramfs进入工作目录$./mkcrafs rootfs rootfs.Cramfs将生成的rootfs.cramfs下载到root分区

     

    挂载yaffs文件系统首先要将yaffs分区格式化为yaffs文件系统下载mtd-utils-1.0.0.tar.gz,解压目录为mtd-utils-1.0.0$cd mtd-utils-1.0.0

    1) 修改Makefile   CROSS=arm-linux-gcc2) make

    编译好后将生成的flash_eraseall工具拷贝根文件系统下的/bin下,然后格式化mtdblock4分区

    为yaffs文件系统

    #flash_eraseall /dev/mtd4#mount -t yaffs /dev/mtdblock4 /usr

    在rcS文件里添加如下命令,使系统启动时自动挂载。#mount -t yaffs /dev/mtdblock4 /usr

    解释一下什么是/dev/mtdx和/dev/mtdblockx  (x是数字),/dev/mtdx 是字符设备 mtd设备的

    主设备号为90,至于次设备号:单数为只读,双数为读写。《构建嵌入式LINUX系统》一书有介绍,可以参考一下。

     

    支持串口传输文件-lrzsz下载lrzsz:http://download.chinaunix.net/download/0007000/6293.shtml 

    解压缩后进入目录,输入:$CC=arm-linux-gcc ./configure $make在src目录下得到两个可执行文件lsz、lrz,把它们下载到根文件系统的/bin目录下。

     

    1、开发板-->PC机     在开发板上输入 lsz filename。     在PC的串口终端选择接收文件、Zmodem 与崩溃恢复协议。

     

    2、PC机-->开发板     在开发板上输入 lrz。

         在PC的串口终端选择发送文件、zmodem与崩溃恢复协议。


    最新回复(0)