http://m.blog.csdn.net/article/details?id=51400196(转)

VMware12

环境:ubuntu12.4

开发板:tiny4412

首先烧写bootloader,我用一个8G的内存卡,现在不说sd卡的制作过程了,网上可以参考。

现在就把我给arm的emmc烧写过程开始说。

用sd卡启动,开发板的右下角有个开关控制启动方式,往下是sd卡启动,往上是mmc启动。

1,、先用sd卡启动

注意:把右下角的开关拨到下面。启动后的是[940122@xxxxxxx] #

fdisk -p命令 查看内存分区 ,fdisk -p 1 查看mmc的分区 fdisk -p 0查看sd卡的信息如下:

[940122@xxxxxx] #fdisk -p 1                 //mmc的信息
partion #    size(MB)     block start #    block count    partition_Id 
   1           695          6070812         1424478          0x0C 
   2           320           134244          656304          0x83 
   3          2057           790548         4213770          0x83 
   4           520          5004318         1066494          0x83

[940122@tengfei] #fdisk -p 0                    //这是sd卡的信息
 partion #    size(MB)     block start #    block count    partition_Id 
   1         14756             8192        30220288          0x0C

2、进去之后给mmc分区

fdisk -p 1(设备号) 对1查看
    fdisk -c 1 320 2057 520 分区为4个,数字对应大小

结果像上面fdisk -p 1 那样

3、格式化分区

格式化四个分区时注意,第一分区是fatformat格式的

fatformat mmc 1:1

2、3、4分区都是ext3format的
ext3format mmc 1:2
ext3format mmc 1:3
ext3format mmc 1:4

格式化完成

4、烧写bootloader

首先打开mmc使用如下命令[940122@tengfei] #fdisk -p 0  emmc open 1

eMMC OPEN Success.!!
                        !!!Notice!!!
!You must close eMMC boot Partition after all image writing!
!eMMC boot partition has continuity at image writing time.!
!So, Do not close boot partition, Before, all images is written.!

打开成功

事先编译好Exxx_bl1.bin  、bl2.bin 、 Exxx_tzsw.bin 、../../u-boot.bin(上上层目录)

将这四个文件分别写入四个分区

开发板下                                                                    pc下

dnw 50000000                                                    dnw   Exxxx_bl1.bin

mmc  write  1  50000000 0x0 0x10

dnw 50000000                                                    dnw   bl2.bin

mmc write 1 50000000 0x10 0x20

dnw 50000000                                                    dnw   ../../u_boot.bin

mmc write 1 50000000 0x30 0x290

dnw 50000000                                                    dnw   Exxxx_tzsw.bin

mmc write 1 50000000 0x2c0 0xb8

关闭mmc

[940122@tengfei] #emmc close 1

添加共享目录vim /etc/exports

加上 /rootfs (rootfs是要共享的目录)*(rw,sync,no_root_squash)保存退出

设置引导,打开共享目录中的/rootfs/etc/inittab

vim /rootfs/etc/inittab 然后 添加上::sysinit:/etc/init.d/rcS
                                                         ttySAC0::askfirst:-/bin/sh两行保存退出(你可以先将根文件的压缩包先解压到/rootfs(就是你的共享目录))

*******************注意是共享目录下的etc不是pc根目录下的******************

奶奶的我就出错到这了,自动挂载pc的rootfs死活挂不到,这样出现的效果是眼睁睁的看着开发板内核已经启动好了,minicom终端就是进不去,无法获得终端控制权,急死人。

5、加载内核

先将右下角的开关推上去mmc启动

[tiny4412@name #

先将根文件系统解压到PC机作为开发板挂载目录nfsroot,然后将内核(zImage需要提前编译好)和根文件系统的包放进去,用内核引导开发板挂载pc的共享目录

设置bootargs

set bootargs "root=/dev/nfs  nfsroot=192.168.0.6:/rootfs  ip=192.168.0.199 console=ttySAC0,115200lcd=S70 init=linuxrc"

我pc的ip是192.168.0.6  开发板是0.199

设置bootcmd

set bootcmd "dnw 40008000;bootm 40008000"

设置cmd后就不用手动去40008000这个地址执行了

重启开发板就出现等待dnw接收zImage的提示了    在pc端找到zImage,#dnw  zImage

开发板下就启动内核了,可能碰到的错误nosoundcard 这是网络出现了问题 没有挂载上pc的共享目录。这时就得检查你的共享目录、pc中、etc/export中的设置、板子的ip,网线是否链接。出现Please press Enter to activate this console. 就说明挂载上了。

在pc端将你的zImage和根文件系统放到共享目录中,我的是rootfs。

挂载mmc的分区执行mount  /etc/mmcblk0p2  /mnt/

cp zImage /mnt/ 将zImage拷贝到第二分区中,待会启动的时候就会自己去这个分区找内核并启动内核

*****************umount   /mnt/一定记得卸载******************

6、制作根文件系统

挂载mmc第三分区写根目录
                       mount /dev/mmcblk0p3 /mnt/
                       tar rootfs—2014tar.gz -C /mnt/将根文件系统的压缩包指定路径(-C大写)解压到/mnt 这是板子的
                       进去/mnt中rootfs—2014(解压后的跟文件目录)文件目录中,把里面全部的东西拷贝到放在/mnt中,可以用mv  *  /mnt/删除空的解压目录 rootfs—2014
                       然后拷贝inittab        到/mnt/etc     cp /etc/inittab   /mnt/etc
                     记得  umount /mnt
        重启设置引导到此为止烧写成功了bootloader和内核镜像

设置开发板的参数

重启开发板,按回车键输入pri查看bootargs和bootcmd主机从机ip等信息

[tiny4412@name] #pri
baudrate=115200
bootargs=root=/dev/mmcblk0p3 console=ttySAC0,115200 init=linuxrc lcd=S70
bootcmd=ext2load mmc 0:2 40008000 zImage;bootm 40008000
bootdelay=1
ethaddr=00:40:5c:26:0a:5b
filesize=4B3068
gatewayip=192.168.0.1
ipaddr=192.168.0.199
netmask=255.255.255.0
serverip=192.168.0.6
Environment size: 306/16380 bytes

主要是设置bootargs和bootcmd
        set bootcmd "ext2load mmc  0:2  40008000 zImage;bootm 40008000"
#sav(保存你的设置 )

set bootargs"root=/dev/mmcblk0p3 console=ttySAC0,115200 init=linuxrc  lcd=S70"

#sav

如果bootargs设置成这样想要让pc编译好的二进制文件在arm运行,还的重新挂载pc的共享目录,

你可以设置成set bootargs "root=/dev/nfs  nfsroot=192.168.0.6:/rootfs  ip=192.168.0.199 console=ttySAC0,115200lcd=S70 init=linuxrc"

就可以自动挂载pc共享目录了。注意不能写错,细心一点。

错的多了就知道在那改了,错着错着就对了,就会了。

好没好重启开发板试试呗。

Please press Enter to activate this console.出现就说明对了。值得幸灾乐祸一下了。

转载于:https://www.cnblogs.com/lys0827/p/5817350.html

tiny4412u-boot烧写及根文件系统制作(不进入终端问题)相关推荐

  1. 嵌入式Linux根文件系统制作

    嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...

  2. Linux-2.6.32.2内核在mini2440上的移植(四)---根文件系统制作(1)

    移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存. 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linu ...

  3. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载

    嵌入式Linux系统由三部分组成: uboot.kernel.根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个 ...

  4. Linux内核移植和根文件系统制作(详细步骤精讲)

    第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的选择 1.2 Linux内核启 ...

  5. Yaffs2根文件系统制作

    Yaffs2根文件系统制作 zouxy09@qq.com http://blog.csdn.net/zouxy09 环境: 交叉编译环境:4.3.3 (天嵌科技提供,存放路径/home/xiaoyi/ ...

  6. sd卡烧写linux内核,uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04 一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/mmc ...

  7. 根文件系统制作一制作根文件系统树

    完成了u-boot移植后就是内核移植然后是根文件系统制作,这次分为这几部分书写:根文件系统树.文件系统initramfs.jaffs2.ubifs 有必要了解一些存储系统和文件系统的知识 Norfla ...

  8. 嵌入式Linux内核以及根文件系统制作

    内核制作 注意: 我测试的使用nandflsh中bootloader启动,sd卡bootloader启动有问题 制作嵌入式平台使用的Linux内核,方法和制作PC平台的Linux内核基本一致. 清除原 ...

  9. 根文件系统制作与NFS挂载

    一:busybox: 1.完整的操作系统=bootloader(u-boot)+kernel(zImage)+根文件系统. 2.根文件系统的核心就是  各种以及系统运行配置参数(类似于linux的cd ...

最新文章

  1. 【C#实践】详解三层转七层:登录
  2. java线程池和线程实例化_浅谈Java 线程池原理及使用方式
  3. qt sizePolicy属性
  4. 农行银行添加卡信息服务器,说说农业银行为App我的帐户设置里没有显示借记卡添加...
  5. 分布式数据库进入实时时代,TiDB 5.0 带来了什么?
  6. Linux下安装matlab2014a
  7. 86 arduino 电机yl_Arduino 直流电机
  8. md5加密特征码java,讨论:加密算法特征码及其识别
  9. 关于#1-D:last line of file ends without a newline警告的解决办法(stm32)
  10. 磁共振检查头部能检测出什么_磁共振检查头部的注意事项
  11. 苹果手机浏览器下拉会闪动的解决办法
  12. python开发魔塔(1)
  13. 为什么近几年一直在说互联网进入了下半场?
  14. 原创 牛客网产品笔试题刷题打卡——用户研究
  15. 前端基础知识点-每天一个基本知识点(100+个前端小知识,你是否都知道?)
  16. .Net C# 如何读取Excel数据内容写入数据库并通过DataGridView控件动态刷新显示
  17. 倍福EK1110模块介绍
  18. SqlServer2012卸载并重新安装成功完整过程!真的超级激动...
  19. IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了...
  20. keepalived的健康检查方式

热门文章

  1. 【蓝桥杯官网试题 - 历届试题】发现环(dfs+并查集,或无向图tarjan判环,无向环,或拓扑排序)
  2. 【CCFCSP - 201403-4】无线网络(分层图最短路)
  3. springboot html压缩,springboot 请求响应压缩
  4. C# XML字符串与DataTable相互转换
  5. 二位数组的随机生成,遍历,求和,反转。和两个变量的^反转 源码
  6. MyEclipse 10.5 安装SVN插件
  7. oracle推送短信,ORACLE 10G如何实现发短信的服务?
  8. C++(STL):14--- forward_list比list更高效的容器
  9. 剑指offer(刷题51-60)--c++,Python版本
  10. Android Studio打包和引用aar