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挂载文件系统了,之后的开发就方便多了。

     

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

     

  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300068.html
Copyright © 2011-2022 走看看