zoukankan      html  css  js  c++  java
  • 用SD卡下载uboot、linux内核和文件系统

    1、 移植mtd-utils:
     
    a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/
    b) 交叉编译mtd-utils
    i   修改Makefile   CROSS=arm-linux-
    ii  make
    iii 查看下mtd-utils-1.0.0目录下是否生成了咱们所需要大工具    
    (flashcp,nandwrite......等)。有工具生成了,OK,交叉编译成功。
    iv 将生成大工具拷贝到文件系统开发板的根文件系统,放在/bin 或/sbin 都行。
     
    2、 sd卡烧录
     
    a) 在安装了 Linux 的 PC 机上通过 fdisk 给一张空的SD 卡分为 2 个区(如果SD卡中本身已经包含,请通过fdisk的“d”命令全部删除),得到如下的分区表:
     
    Command (m for he lp) : p
     
    Di sk /dev/ sdb: 1030 MB, 1030225920 byte s
    32 he ads, 62 se c tor s / t rack, 1014 cyl inde r s
    Uni t s = cyl inde r s of 1984 * 512 = 1015808 byt e s
    Di sk ident i f ie r : 0x6f20736b
     
    Devic eBoot  Sta r t  End  Blocks  Id  Sys tem
    /dev/ sdb1 *  1  20  19809   83   Linux
    /dev/ sdb2 21  1014  986048  83  Linux
     
    注意第 1 个分区制作的命令为:
     
    Command (m for he lp) : n
    Command a c t ion
    e  ext ended
    p  primary partit ion (14)
    p
    Partition numbe r (1-4): 2
    Firs t cyinde r (11014, defaul t 21) :
    Using defaul t value 21
    Last cyl inder, +cyl inde rs or +s ize{K,M,G} (11014,defaul t 1014) : 20M
    第 2 个分区制作的命令是:
    Command (m for he lp) : n
    Command action
    e  ext ended
    p  primary partition (14)
    p
    Partition numbe r (14): 2
    Firs t cyl inde r (211014)defaul t 21) :
    Us ing defaul t value 21
    La st cyl inder, +cyl inde r s or +s iz e{K,M,G} (211014,de faul t 1014) :
    Us ing defaul t value 1014
    Command (m for he lp) :
    我们还要通过“a”命令标记第 1 个分区:
    Command (m for he lp) : a
    Pa rtition numbe r (14) : 1
    最后要通过“w”命令把建好的分区表写入 SD 卡。
    b) 格式化 SD 卡的分区 1 和分区 2:
    mkfs .vfa t /dev/ sdb1 mkfs. ext3 /dev/ sdb2 fsck.ext3 /dev/ sdb2
    c) 通过 moviNAND_Fusing_Tool.exe 烧写 SD 卡 UBOOT 和 zImage:
     
    更新SD卡根文件系统的方法很简单,在PC机器上 mount /dev/sdb2 后,直接通过
    cp fa <your rootfs> </your rootfs>的方式就可以替换根文件系统了。是你的根文件系统的目录,是你的/dev/sdb2 挂载的目录。特别要注意的是,SD 的设备节点不一定是/dev/sdb,应该视用户电脑的硬盘情况而言,可能是/dev/sdc,/dev/sdd 等。
    <new_rootfs_di r> </new_rootfs_di r>
    <your rootfs> </your rootfs>
     
    3、 nand烧录
     
    a) 更新NAND版UBOOT
    先把在电脑上把uboot复制到sd卡根文件系统中;再运行# f lashcp ubootmovi.bin /dev/mtd0;
    b) 更新NAND分区中的Linux内核
    建立fix-image脚本,内容为:
    rm arch/arm/boot/zImage-fix;
    dd if=arch/arm/boot/zImage of=arch/arm/boot/zImage-fix bs=2048 count=4096 conv=sync;
    chmod 755 arch/arm/boot/zImage-fix;
    编译内核
     
    注意执行最后一步./fix-image脚本,将编译好的zImage-fix复制到sd卡根文件系统中;运行:# flashcp zImage-f ix  /dev/mtd1;
    c) 更新NAND分区中的文件系统
    在 PC 上将做好的新的根文件系统拷贝入 SD 卡的某目录,下面我们以指代该目录。
    以 SD 卡或 NFS 为根文件系统启动系统,运行如下命令擦除dev/mtd2分区:# flash_eraseall /dev/mtd2;然后将 NAND 的该分区 mount 到/mnt:    # mount /dev/mtdblock2 t yaffs2 /mnt 将新的文件系统拷贝到/mnt:
    # cp fa <new_rootfs_di r> /mnt;</new_rootfs_di r>linux

  • 相关阅读:
    springboot入门系列(一):简单搭建springboot项目
    springboot入门系列(二):SpringBoot整合Swagger
    springboot入门系列(三):SpringBoot教程之RabbitMQ示例
    springboot入门系列(四):SpringBoot和Mybatis配置多数据源连接多个数据库
    Linux下安装RabbitMQ
    Mybatis原理之数据源和连接池
    springboot入门系列(五):SpringBoot连接多RabbitMQ源
    jsp中<c:foreach>分页标签的序号问题
    Java中删除一个文件夹下的所有文件(包括子目录内的文件)
    接口的幂等性
  • 原文地址:https://www.cnblogs.com/lidabo/p/4697087.html
Copyright © 2011-2022 走看看