uboot烧写文件

发布时间:2016-12-11 12:28:27 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"uboot烧写文件",主要涉及到uboot烧写文件方面的内容,对于uboot烧写文件感兴趣的同学可以参考一下。

    * 此篇文章只介绍了往板子上烧写引导程序及系统,具体的詳細参数设置,或者是通过nfs方式引导系统并没有介绍,如有兴趣可参考Platform Group: 在我们的板子上通过NFS方式启动系统     * 此篇文章介绍了NewBox目前采用SPI Flash + SLC Nand方案     * 我们以前曾经采用过Nor Flash + Nand Flash方案, 现在已经不用了, 如有兴趣,可参考Platform Group: About Flash中的相关章节 [编辑] 工具及环境说明     * 本篇所需要烧写的bin文件, image文件, 请自行到ftp上下载, 可参考Lftp     * 在板子上通过Ftp下载所需要的文件, 所以需要在PC上搭建FTP服务器, 并把上一步下载的文件放到上边. 搭建步骤可参考About_nfs_tftp_service_安装 [编辑] Flash的分类 可以参考我的博客 http://blog.csdn.net/zzqhost/article/details/7019705 [编辑] NewBox使用的存储介质及分区方案     * SPI FLASH 分区:          1. uldr(64k)          2. uboot(256k)          3. ubootargs(64k)          4. 升级Flags&软件版本号(64k)          5. 频道号(64k)          6. 未使用(1.5M)     * SLC Nand 分区:          1. Kernel(16M), 其中 kernel1 (0M->8M),zImage(8M->12M,12M->16M, 烧了两遍, 双备份)          2. Recovery(16M)          3. Rootfs(64M)          4. System(128M)          5. Data(256M) [编辑] 方案一: 手动烧写SPI Flash和Nand Flash [编辑] 烧写SPI Flash [编辑] SPI 上无uldr, uboot时,通过跳线烧写    1. 安装lrzsz和cutecom           * $ sudo apt-get install lrzsz           * $ sudo apt-get install cutecom    2. 插上跳线进入烧写模式    3. 使用cutecom烧入uldr, ubbot           * 设置串口:baud rate:115200,data bit:8 ,stop bit:1           * 击open device,将send file后按钮选为ymodem,再点send file按钮,分别发送uldr.bin(64k)和uart_boot.bin,发送完成uart_boot.bin时,注意点好input输入框,按键盘任意键中断           * 此时可以关闭cutecom,打开putty进行正常的uldr uboot kernel的烧写工作,烧写各个部分的过程参考后续步骤 [编辑] SPI 上原先已经存在uldr uboot, 并想更新现有的uldr, uboot    1. 设置板子的server ip和ip addr           * $ set serverip x.x.x.x           * $ set ipaddr x.x.x.x    2. 烧写uldr           * $ tftp uldr.bin           * $ sfc erase 0 10000           * $ sfc write 0 10000    3. 烧写uboot           * $ tftp u-boot.bin           * $ sfc erase 10000 60000           * $ sfc write 10000 60000    4. 注:u-boot的参数区存放在,160000到180000之间,大小为20000。刷新版本成功后,如有异常,请试着擦除参数区 sfc erase 160000 20000 [编辑] 烧写Nand Flash     * 烧写vmlinux.bin           o $ tftp vmlinux.bin           o $ nand erase 0 800000           o $ nand write 0 800000     * 烧写zImage           o $ tftp zImage           o $ nand erase 800000 800000           o $ nand write 800000 400000           o $ nand write c00000 400000     * 烧写recovery.img           o $ tftp recovery.img           o $ nand erase 1000000 1000000           o $ nand write 1000000 800000           o $ nand write 1800000 800000     * 烧写rootfs.img           o $ tftp rootfs.img           o $ nand erase 2000000 4000000           o $ nand write 2000000 4000000     * 烧写system.img           o $ tftp system.img           o $ nand erase 6000000 8000000           o $ nand write 6000000 8000000 [编辑] 方案二: 自动烧写SPI Flash和Nand Flash [编辑] 步骤     * 将uldr.bin,uboot.bin,vmlinux.bin,zImage,recovery.img,rootfs.img,system.img放置到pc上安装的tftp路径下     * 设置板子的serverip和ipaddr(如前步已经设置则不用再设)           o $ set serverip x.x.x.x           o $ set ipaddr x.x.x.x     * 执行update命令           o $ update           o $ reset [编辑] 注意事項     * u-boot的参数区存放在,50000到60000之间,大小为10000。刷新版本成功后,如有异常,请试着擦除参数区 sfc erase 50000 10000     * 这是新的烧写方式,需要uboot支持,如果update命令不支持,则需要更新uboot (tftp u-boot.bin; sfc erase 10000 60000; sfc write 10000 60000) 如板子上无uldr,uboot时,需要通过跳线来烧写uldr,uboot,如上面所述。 [编辑] 方案三: 通过网络nfs方式烧写系统至flash     * 可参考文章在我们的板子上通过NFS方式启动系统,与此步骤进行对比进行 [编辑] 搭建nfs服务器    1. 安装nfs服务器           * $ $sudo apt-get install nfs-kernel-server    2. 修改nsf配置文件           * $ vi /etc/exports           * 在文件中添加nfs的目录格式例如下                 o /home/zjy *(rw,sync,no_subtree_check,no_root_squash)    3. 建立nfs的目录           * $ mkdir /home/user/nfs    4. 修改该目录的权限           * $ chmod 777 -R /home/user/nfs    5. 从新启动nfs           * $ sudo /etc/init.d/nfs-kernel-server restart [编辑] 将要烧写的系统放到nfs服务器上    1. 将nfs.tar.gz拷贝到/home/xxx/nfs    2. 解压之           * $ sudo tar -zxvf nfs.tar.gz    3. 将从ftp上下载的rootfs.tar.gz,system.tar.gz和recoveryfs.tar.gz拷贝到/home/xxx/nfs    4. 解压缩三个包           * $ sudo tar -zxvf rootfs.tar.gz           * $ sudo tar -zxvf system.tar.gz           * $ sudo tar -zxvf recoveryfs.tar.gz [编辑] 板子从nfs服务器启动    1. 在板子上设置nfs启动参数           * $ set nfsboot "noinitrd console=ttyS1,115200n8 mtdparts=nx_2017:[email protected](kernel),[email protected](recovery),[email protected](recovery),[email protected](rootfs),[email protected](system),[email protected](data) root=/dev/nfs nfsroot=x.x.x.x:/home/xxx/nfs ip=x.x.x.x rw"    2. 在板子上设置从nfs启动           * $ set bootargs $nfsboot           * $ set uboot_cmdline 1    3. 启动           * $ boot [编辑] 烧写系统到板子的flash中    1. 启动停止后在putty终端执行脚本           * $ /format_ubi.sh    2. format_ubi.sh完成的是做ubifs文件系统和将rootfs,system,recovery拷贝到nand的ubifs中    3. 重启           * $ reboot [编辑] 自带参数说明     * 自带参数的意思是指,烧完相应的模块,系统中已经存在此参数了.     * 内核kernel1中自带参数           o $ cmdline "noinitrd console=ttyS1,115200n8 mtdparts=nx_2017:[email protected](kernel),[email protected](recovery),[email protected](recovery),[email protected](rootfs),[email protected](system),[email protected](data) ubi.mtd=3 root=ubi0:rootfs rw rootfstype=ubifs androidboot.hardware=newbox"     * 内核zImage中自带参数           o $ cmdline "noinitrd console=ttyS1,115200n8 mtdparts=nx_2017:[email protected](kernel),[email protected](recovery),[email protected](recovery),[email protected](rootfs),[email protected](system),[email protected](data) ubi.mtd=2 root=ubi0:recovery rw rootfstype=ubifs androidboot.hardware=newbox"     * uboot中自带默认参数           o $ cmdline "noinitrd console=ttyS1,115200n8 mtdparts=nx_2017:[email protected](kernel),[email protected](recovery),[email protected](recovery),[email protected](rootfs),[email protected](system),[email protected](data) ubi.mtd=1 root=ubi0:recovery rw rootfstype=ubifs androidboot.hardware=newbox" [编辑] 分类

上一篇:C++函数头文件
下一篇:unix下C编译器版本如何查看

相关文章

关键词: uboot烧写文件

相关评论