Tiny4412 启动!uboot+kernel+nfs文件系统(一)

折腾了三天,终于算是把Tiny4412这块坑爹的板子搞起来了,好在板子还是好的。可是原厂的资料,怎一个坑字了得!在此,一首凉凉送给我们的FriendlyARM.

话不多说,以下干货:

为了启动这块开发板,先后查阅了多方资料,包括但不限于:

https://blog.csdn.net/morixinguan/article/details/50677105   

http://www.cnblogs.com/kevinhwang/p/5617629.html

特此感谢!

准备阶段:

开发环境:

硬件开发板:Tiny4412/Super4412SDK  1506  ,友善先后出了几款Tiny4412的板子,其硬件配置会有差异,因此在软件上也会有差异,本次启动使用的型号是1506  (开发板底板上有写)。

软件环境:win7+VM ware虚拟机里ubuntu 14.04


使用到的资源附链接:

交叉编译器:arm-linux-gcc-4.5.1   链接:https://pan.baidu.com/s/1MHY_SdvDuAobRNcRqjHRig 密码:tx71

uboot:      https://download.csdn.net/download/behold1942/10437542

kernel:      https://download.csdn.net/download/behold1942/10437576

dnw:链接:https://pan.baidu.com/s/1O3karvVDL09Uud35PbxkuQ 密码:rbb4

minicom:自己随便网上下就行,这个最好找


剩下的物料需要一张空白的SD卡,一根网线,一根dnw下载线,一根串口线,配套的开发板应该都有的,未上电之前,预先请全部插在开发板上

资源说明:

uboot  Tiny4412 1306的开发板上据说有4个DDR3,而我们所使用的1506只有两片,因此uboot不同,使用不适配的Uboot,上电只会打印OK;

kernel: 官方光盘提供的linux-3.5源码也可,但要注意关闭 TrustZone,因为Uboot不支持TrustZone;

dnw:因为驱动文件的ID不同,DNW文件并不通用,所以必须用这个。


因为本文也主要参照了网上各位大佬的资料,因此,只在本人遇到问题的流程作详细说明:

0、首先创建一个目录,将需要使用的资源都放在这个目录下,方便后续使用:

 例如  mkdir /Tiny4412

 然后将所用到的uboot源码,kernel源码 dnw  minicom都放在这个目录下


1、安装交叉编译环境:

   //自行查资料安装,如果这步搞不定,则以下的教程不太适合你

2、编译uboot生成uboot.bin:

     本文提供的资源已经完成了uboot的编译,里面可以直接找到uboot.bin文件,当然,你还是可以再次编译的

    # tar -xvf  uboot_tiny4412_1506.tar

    #cd  ./uboot_tiny4412_changed_version    //进入解压出的文件夹,解压出的文件夹名称可能不同,替换即可

    #make clean    //删除之前可能编译过的东西

    #make tiny4412_config

    #make    //编译,等待数分钟就可在该目录下生成uboot.bin。

3、将uboot.bin烧写进SD卡

      首先,先查看一下电脑上已有的块设备

     #ls /dev/

    查看所有已sd开头的设备,

    将你的SD卡插入电脑,然后挂载到虚拟机后,

    #ls /dev

    查看所有以sd开头的设备

   看下新增的是哪个,那个就是SD卡的盘符,我这里是sdb

   接下来格式化磁盘

   #dd if=/dev/zero of=/dev/sdb bs=1024 count=102400    

   此命令 将覆盖102400k大小的范围

   

   接下来烧写uboot进SD卡,此时应该还在uboot源码的根目录下,然后执行

   #cd  ./sd_fuse

   #make

   #cd ./tiny4412

   #./sd_fusing.sh   /dev/sdb

  等待数秒后,uboot即烧写进入SD卡。

4、配置编译内核生成zImage文件

     本文开头提供了zImage,如果对内核编译流程不熟悉,可暂且直接下载该zImage使用,可跳过以下编译内核流程。

     当然最好是使用官方光盘提供的Linux3.5的源码linux-3.5-tiny4412,不过该源码可不能直接编译

    #tar -xvf linux-3.5-tiny4412

    #cd  ./linux-3.5

    #make menuconfig

    然后

    配置 System Type->  Support TrustZone-enabled Trusted Execution Environment 关闭该项即可 使用空格键关闭,[*]代表打开 [  ]代表关闭

     配置完成后退出

     #cp tiny4412_linux_defconfig .config

     #make 

     等待编译完成...

    编译完成后在./arch/arm/boot/文件夹下会出现zImage文件。

即./arch/arm/boot/zImage

5、安装DNW软件:

   软件链接见本文开头,安装步骤:

    解压  tar -xvf  文件名

    cd  ./dnw-linux

    make

    make install

   cd ./src/dnw

   cp ./dnw  /usr/local/bin    将dnw软件拷贝到用户bin路径下,以后就可以直接使用了



6、安装配置minicom串口软件

    配置过程参照:https://blog.csdn.net/morixinguan/article/details/50677105

    配置完成后打开minicom

   

7、启动开发板,进入uboot

将SD卡插入开发板,开发板上的拨码开关拨到SDBOOT,然后上电,可看到minicom如下打印信息,这就说明Uboot启动正常了, 3s倒计时结束之前,按下空格键,就会进入uboot命令行:

    


8、下载内核,使用DNW,并使用movi命令写内核到SD卡

    在minicom中输入

   # dnw 0x40008000

  此时minicom提示OTG connect ,waitting for transmit...

   然后再打开一个终端 窗口 ,进入刚刚编译好zImage的目录,使用dnw下载zImage:

   # dnw  zImage

   此时dnw就会开始传输zImage

   传输完成  后,minicom中会提示 checksum OK,并自动跳回命令行 ,(若没有自动跳回或提示为其他,则传输不正常,此时需确认连接以及DNW软件的正确性),此时继续输入:

   #movi write kernel 0 0x40008000      //将DNW下发的zImage写入SD卡 0x40008000地址

   #set bootcmd "movi read kernel 0 0x40008000;bootm 0x40008000"           //设置uboot启动读命令

   #save    //保存

   #reset   //重启

  若一切正常,此时应当进入Uboot,等待3s后,会自动开始加载内核,此时就会打印出非常多的信息,但是因为么有挂载根文件系统,在启动十多秒后停下来,这就意味着启动正常了。如果只是打印了几行或者十几行,说明加载还是不正常的。





猜你喜欢

转载自blog.csdn.net/Behold1942/article/details/80451341