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

  • 相关阅读:
    LeetCode 40. 组合总和 II(Combination Sum II)
    LeetCode 129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)
    LeetCode 60. 第k个排列(Permutation Sequence)
    LeetCode 47. 全排列 II(Permutations II)
    LeetCode 46. 全排列(Permutations)
    LeetCode 93. 复原IP地址(Restore IP Addresses)
    LeetCode 98. 验证二叉搜索树(Validate Binary Search Tree)
    LeetCode 59. 螺旋矩阵 II(Spiral Matrix II)
    一重指针和二重指针
    指针的意义
  • 原文地址:https://www.cnblogs.com/lidabo/p/4697087.html
Copyright © 2011-2022 走看看