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

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

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

一、uboot的修改编译

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

接着是drivers/dm9000x.c下了

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

[html] view
plain
copy



  1. make clean
  2. make smdk6410_config
  3. 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,输入命令:

[html] view
plain
copy



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

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

[html] view
plain
copy



  1. #nand write.uboot 50008000 0 100000

这样uboot就算下载成功了。

三、虚拟机安装tftp

[html] view
plain
copy



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

修改如下

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

[html] view
plain
copy



  1. sudo service tftpd-hpa restart

5 检测 tftp

[html] view
plain
copy



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

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

四、tftp下载内核

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

[html] view
plain
copy



  1. make zImage
  2. cp arch/arm/boot/zImage /tftpboot

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

接着

[html] view
plain
copy



  1. setenv bootcmd tftp 0xc0008000 zImage; bootm 0xc0008000
  2. saveenv

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

五、虚拟机安装nfs

[html] view
plain
copy



  1. #sudo apt-get install portmap
  2. #sudo apt-get install nfs-kernel-server
  3. #sudo vi /etc/exports

加上你的rootfs的路径

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

然后就是启动服务了

1)

[html] view
plain
copy



  1. #sudo exportfs -rv

使/etc/exports 文件生效

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

[html] view
plain
copy



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

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

[html] view
plain
copy



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

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

六、nfs挂载文件系统

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

[html] view
plain
copy



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

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

启动uboot,然后

[html] view
plain
copy



  1. set bootargs root=/dev/nfs console=ttySAC0,115200
  2. nfsroot=192.168.5. 100:/home/eastmoon/ok6410/rootfs
  3. ip=192.168.5.150:192.168.5.100:192.168.5.1:255.255.255.0::eth0:off
  4. saveenv
  5. <</span>span style="font-size:18px;"><</span>span style="font-family:Times New Roman;font-size:14px;"></</span>span></</span>span>

[html] view
plain
copy



  1. 192.168.5.100 pc端虚拟机的ip
  2. 192.168.5.150 开发板的ip
  3. 192.168.5.1 网关
  4. 255.255.255.0 子网掩码

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

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


转自:http://blog.csdn.net/eastmoon502136/article/details/7905960

OK6410之tftp下载内核,nfs…的更多相关文章

  1. 转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]

    原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...

  2. OK6410&nbsp;tftp下载内核、文件系…

    飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其中遇到的一些问题. 一键烧写本质上是启动位于SD卡中的Uboot ...

  3. 转 -- OK6410 tftp下载内核、文件系统以及nand flash地址相关整理、总结

    转载地址:http://emouse.cnblogs.com/ 飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其 ...

  4. 关于开发板用tftp下载失败分析

    一.想实现开发板和PC ping通:(1)windows和linux桥接(2)用路由器将开发板和PC连接起来(3)将windows和linux以及开发板的IP设置成同一网段,注意不要和你同一个局域网的 ...

  5. 使用uboot的tftp下载bootloader、内核、文件系统

    开发板 jz2440 下载uboot.bin tftp 0x30000000 u-boot.bin nand erase bootloader nand write bootloader 下载内核 t ...

  6. 内核下载、nfs挂载:个性问题及解决方法~~共勉

    开发板下载内核遇到starting waiting问题时: 首先想到是下载地址的问题! 将原本下载地址减去0X40,例如:smart210下载地址0X20008000,修改为0X20007FC0,即可 ...

  7. 九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像

    Note: 我的S5PV210板子的磁盘是emmc版本,不是nandflash版本. 1. SD卡内烧录uboot镜像,然后作为启动盘来启动emmc中的内核镜像和根文件系统. 只要破坏emmc内的ub ...

  8. uboot使用tftp下载时出现“checksum bad”问题原因分析

    一.问题 二.原因分析 你的虚拟机是不是这样设置的呢? 如果是的话,请看下边的解释: 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网.也就是说,使用NA ...

  9. 在linux下实现UBOOT的TFTP下载功能

    一.环境 1.条件 软件:虚拟机下linux(本文涉及到的是Ubuntu12.0.4). linux下的串口助手(例如minicom)或windows下的串口助手(例如超级终端.SecureCRT) ...

随机推荐

  1. android源码下载以及编译自己的ROM

    android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...

  2. 解决AndroidStudio导入项目在 Building gradle project info 一直卡住

    Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果.gradle官网虽然可以访问,但是速度连蜗牛都赶不上.. ...

  3. Windows10重启之后总是将默认浏览器设置为IE

    换了一台电脑之后,发现系统重启之后总是会把我的默认浏览器设置为IE,而自从用上了Chrome,我对他爱不释手. 上网找了不少文章,都建议使用系统自带的设置进行默认浏览器的设置,试了三四次,完全不起任何 ...

  4. asp.net core microservices 架构之eureka服务发现

    一 简介 微服务将需多的功能拆分为许多的轻量级的子应用,这些子应用相互调度.好处就是轻量级,完全符合了敏捷开发的精神.我们知道ut(单元测试),不仅仅提高我们的程序的健壮性,而且可以强制将类和方法的设 ...

  5. asp.net core mcroservices 架构之 分布式日志(三):集成kafka

    一 kafka介绍 kafka是基于zookeeper的一个分布式流平台,既然是流,那么大家都能猜到它的存储结构基本上就是线性的了.硬盘大家都知道读写非常的慢,那是因为在随机情况下,线性下,硬盘的读写 ...

  6. LibreOJ β Round #2 题解

    LibreOJ β Round #2 题解 模拟只会猜题意 题目: 给定一个长为 \(n\) 的序列,有 \(m\) 次询问,每次问所有长度大于 \(x\) 的区间的元素和的最大值. \(1 \leq ...

  7. yarn 管理nextjs 项目

     预备环境 nodejs npm 1. yarn 安装 npm install -g yarn 2. nextjs 项目初始化 yarn add next react react-dom 3. 配置n ...

  8. web 面试题、简单题、复习题

    1. 概述MVC体系结构,各个部分都有那些技术来实现? M即model(模型,bean(domain)层)由javabean或EJB实现:V即view(视图,显示层)由jsp实现:C即controll ...

  9. oracle驱动包maven下载失败解决

    oracle是付费的,因此jar包也不是随便让人下的,这就给maven的下载和编译带来了麻烦,因为我们没法从maven仓库直接拿来用.解决办法就是先从别的地方获取jar包,再放到本地仓库里去,这样运行 ...

  10. 小程序切换账户拉取仓库文件的appid提示

    小程序切换账户拉取仓库文件,拉取后appid会提示项目不是当前appid的项目,因为切换了账户,而每个小程序账户只有一个appid,所以会冲突 去project.config.json里吧appid改 ...