zoukankan      html  css  js  c++  java
  • 和菜鸟一起学OK6410之tftp下载内核,nfs挂载文件系统全过程详解

           人有悲欢离合,月有阴晴圆缺。少不了离愁别绪,人生就是这样,喜也一天,悲也一天,直待,慢慢老去。老去,必将面临着死亡。终于工作了,终于赚钱了,那么多的终于,也抵不过岁月的流逝,抵不过老去的容颜。外公,一路走好。脑海里全是童年的回忆,外公是最疼我的。上周最后看您一眼,又匆匆赶回来工作,下周也不能天天陪您,只能在最后几天回去陪您。相信在远方的您,会看到我的努力,因为我一直都是您的骄傲,从小就是。未来,我一定会更加努力的,相信您也会保佑我的。一路走好。在远方的外孙永远想念您。

           也许,泪水真的可以洗刷一切,一切的一切。终于可以看得清屏幕了,还是把晚上的成果展示下吧。

           由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩。以前一直都是sd卡去进行实验的。想着,如果和公司实验室里的开发平台一样的话,那多好啊,既方便,又快捷。磨刀不误砍柴工嘛,好的开发环境可以提高很多效率的。好了,下面开始讲讲怎么去实现的吧。下文很多是参考网上的资料的,很多是雷同,我只是记录自己的过程。

           首先是tftp下载内核吧。网上也都说了,ok6410uboot里面可恶的网卡驱动是cs8900的,而实际网卡是dm9000的,所以导致进入uboot后就没有办法用tftp来下载内核了。不过有人已经实现了这个功能。

    下面分几个小标题,各个实现各个说明

     

                                                                一、uboot的修改编译

     

            通过修改uboot可以实现,修改include/configs/smdk6410如下:

     

            接着是drivers/dm9000x.c下了

     

            好了,之后在下面几条命令就可以生成新的uboot

     

    make clean
    
    make smdk6410_config
    
    make
    
    


                                      

                                                                             二、uboot的下载

     

            接着就是下载那个uboot了,用usb可以很快解决,还是贴一下下载过程吧,虽然文档有的,至于那个usb下载的驱动安装什么的,那就不多说了。

            好了,现在假设都好了,出来下面这个图了。

    1、把mmc.bin通过usb port下的transmit下载好,这里地址是0x57e00000。在下载的时候,要一直按空格键,要不然过了之后,就去起内核了。

    2、接着进入U-boot命令行后,输入‘#dnw 50008000’,并回车

    3、然后将U-boot映像文件下载到内存:点击DNW菜单“USBPort-->Transmit-->Transmit

    在弹出的文件浏览窗口中选择u-boot.bin

    4、擦除Nandflash,输入命令:

    #nand erase 0 100000 擦除Nandflash从0开始的1MB大小的区域。
    
    


    5、将程序写入到Nandflash,输入命令:

    #nand write.uboot 50008000 0 100000
    
    


           这样uboot就算下载成功了。

     

                                                                           三、虚拟机安装tftp

     

         

      1.  sudo apt-get install tftp-hpa tftpd-hpa 
    
           2 .  mkdir /tftproot 
    
                chmod 777 tftproot 
    
           3.  sudo vim /etc/default/tftpd-hpa 
    
    


    修改如下

     

    4.然后就可以启动这个服务了  

     sudo service tftpd-hpa restart 
    


    5 检测 tftp

           1)> echo hello world > ~/a.txt 
    
           2)> echo tftp test > /tftproot/b.txt 
    
           3)> cd ~ 
    
           4)> sudo tftp 127.0.0.1 
    
           5)> tftp> put a.txt 
    
           6)> tftp> get b.txt
    
           7)> tftp> q
    
    


            看tftpboot目录下是否有相应的文件就可以判断了。

     

     

                                                                        四、tftp下载内核

     

            首先要准备好内核zImage,在kernel下面

    make zImage
    
    cp arch/arm/boot/zImage /tftpboot
    
    


            准备内核之后,那边是要去下载了,拨码开关拨到nandflash启动,uboot是烧到nandflash中的,然后就是进入smdk6410uboot了。

            接着

    setenv bootcmd tftp 0xc0008000 zImage; bootm 0xc0008000
    
    saveenv
    
    


             然后复位之后,就会通过tftp下载内核了。

     

                                                               五、虚拟机安装nfs

     

    #sudo apt-get install portmap
    
    #sudo apt-get install nfs-kernel-server
    
    #sudo vi /etc/exports 
    
    


             加上你的rootfs的路径

            添加的内容意思是:允许 ip地址范围在192.168.5.*的计算机以读写的权限来访问/home/eastmoon/ok6410/rootfs目录,/home/eastmoon/ok6410/rootfs也称为服务器输出共享目录。具体要根据不同的环境来定。

            然后就是启动服务了

    1)

    #sudo exportfs -rv 

      使/etc/exports 文件生效

    2)接着执行如下命令,启动端口映射:

    #/etc/init.d/portmap start(或:#sudo service portmap start)
    


    3)最后启动 NFS服务,此时 NFS会激活守护进程,然后就开始监听 Client端的请求:

    #/etc/init.d/nfs-kernel-server restart (或: #sudo service nfs-kernel-server restart)


       Linux 服务器端 NFS服务器的配置到此就已经配置好了。

     

                                                                     六、nfs挂载文件系统

     

           这也是最后一步了,至于文件系统嘛,买板子的时候,店家可定给了资料了,然后就是解压到那个你指定的目录下面的。我的是/home/eastmoon/ok6410/rootfs

    #sudo tar –zxf FORLINX_6410_yaffs2_v1.0.tgz就可以了。
    
    


            然后就是要设置uboot的启动参数了

           启动uboot,然后

    set bootargs root=/dev/nfs console=ttySAC0,115200 
    
    nfsroot=192.168.5. 100:/home/eastmoon/ok6410/rootfs 
    
    ip=192.168.5.150:192.168.5.100:192.168.5.1:255.255.255.0::eth0:off
    
    saveenv
    
    

     

      

    192.168.5.100 pc端虚拟机的ip
    
       192.168.5.150 开发板的ip
    
       192.168.5.1 网关
    
       255.255.255.0 子网掩码
    
     
    
    


     

     

        然后配合刚才的tftp下载,接着复位下板子。然后就可以即通过tftp下载内核也可以nfs挂载文件系统了,之后的开发就方便多了。

     

            终于写完了,心也静下来了,睡觉了,明天继续公司学习,晚上回来学习板子。以后陆续会把自己调通的驱动都写写博客和大家一起分享下。

     

  • 相关阅读:
    2011年03月28日
    如何响应UIScrollView的touchesBegan和touchesEnd消息
    使用Git在Mac和Windows系统之间进行同步数据
    ActionScript 3.0 编程 中文版PDF下载地址
    WIN7 英文 语言包(KB972813)/多国语言包下载(转)
    如何根据内容和字体调整UILabel的大小
    xcode 快捷键(转)
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案
    iOS 开发教程资源列表(转载)
    取消UITableViewCell高亮颜色
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300068.html
Copyright © 2011-2022 走看看