用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>

时间: 2024-10-12 19:30:55

用SD卡下载uboot、linux内核和文件系统的相关文章

制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统

转自网络,供学习记录使用,红色部分是我实验时,这篇文章和网站稍有出入的地方. 目的:制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统 在http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/quickstart/zynq(姑且把这个链接成为链接1吧)链接中找到 图1 点击绿色字体的链接,下载镜像原始文件.这里有不同时期的版本,本说明中选择 图2 下载的原始文件为:2014_R2-

用uboot 烧写uboot linux内核 文件系统到nandflash的 过程以及bootm go命令启动与区别

原文:http://blog.sina.com.cn/s/blog_6b94d5680100nd48.html 文章结构结构顺序有变化-1:烧写uboot0: bootargs bootcmd 命令参数的设置1:制作yaffs2的过程2:烧写yaffs2的过程3:制作uimage 的过程4: 烧写uiamge的过程5:uimage zimage vmlinux 的区别6: uboot传递给内核的参数结构 tag7:bootm go 的 启动过程 以及区别8:加载地址 入口地址 等 ///////

Ubuntu下载编译Linux内核。

1.安装git工具 2.到官网下载linux内核https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git,这个地址不是很好用 在用下面这个 git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git http://vger.kernel.org/vger-lists.html#linux-kernel这个是讨论Linux驱动的邮件组 3.

linux的几个内核镜像格式Image 和 u-boot启动内核和文件系统时的一些环境变量的设置

关于编译powerpc linux的几个Image参考原文 http://blog.sina.com.cn/s/blog_86a30b0c0100wfzt.html 转载▼ PowerPC架构 Linux和ARM,X86等平台有些差异,PowerPC平台HW参数不是通过命令行方式传递到Linux,而是通过传递Device tree文件的方式传递参数,所以PowerPC平台Linux需要编译dtb和uImage才能正常加载,另外PowerPC架构linux还提供simpleImage的方式加载,也

一 在应用中升级u-boot、内核以及文件系统

近期在做在Linux系统中做在应用中升级功能,网络传输数据,实现的目标是:通过网络可以对u-boot.内核.文件系统的文件进行修改升级. 这里记录一下简单思路: 首先从全局考虑,要实现的功能网络通信部分和嵌入式系统对emmc的操作. 网络通信: 该部分考虑的问题主要是使用什么通信协议:是否允许多机连接服务器端,也就是同时允许多台嵌入式平台进行升级操作:大文件传输时,如果突然断网的问题:局域网和广域网的升级问题,在该问题中只考虑局域网,广域网与局域网类似:等等其他,如果有网友还有其他想法留言讨论哈

Linux内核,文件系统移植过程中出现的一些问题与解决办法

1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行.因此此时的entry point必须设置为load address + 0x40.如果kernel boot过程没有到uncompressing the kernel,就可能是这里设置不对. boom address == load address == entry point - 0x40 2.

通过SD卡来安装Linux系统

一.制作SD启动卡(安装Linux)步骤: 烧写原理:superboot-6410.bin(bootloader)+内核镜像文件+根文件系统 1.将SD卡插入USB接口的读卡器,并插在PC的USB口 2.在SD卡目录下新建“images”目录 3.复制“superboot-6410.bin”到“images”目录下 4.在“images”目录下新建“Linux”子目录 5.分别复制内核镜像文件和跟文件系统镜像文件到“Linux”子目录 内核:zlmage 根文件系统 MLC:rootfs_qto

树莓派(raspberry pi) 系统在SD卡上安装Linux

刚刚拿到一只Simon同学出借的树莓派(raspberry pi) ,准备一张4GB的SD卡,准备跑一下Linux. 在Windows 7上用 工具 Win32DiskImager写入img到SD卡上,报错,失败. 好在俺有Linux vmware虚拟机,在虚拟机上搞,执行命令 sudo dd bs=1M if=2012-12-16-wheezy-raspbian.img  of=/dev/sdb tips: 错误:接电启动树莓派,派上只有红色的Power灯亮,HDMI电视机上没有输出. 原因:

Linux内核proc文件系统使用示例

/* * kernel programming test code * * Copyright (C) 2014 Sun Mingbao <[email protected]> * Dual licensed under the MIT and/or GPL licenses. * */ #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> #include &l