转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]
由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩。以前一直都是sd卡去进行实验的。想着,如果和公司实验室里的开发平台一样的话,那多好啊,既方便,又快捷。磨刀不误砍柴工嘛,好的开发环境可以提高很多效率的。好了,下面开始讲讲怎么去实现的吧。下文很多是参考网上的资料的,很多是雷同,我只是记录自己的过程。
首先是tftp下载内核吧。网上也都说了,ok6410的uboot里面可恶的网卡驱动是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中的,然后就是进入smdk6410的uboot了。
接着
- 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
- <</span>span style="font-size:18px;"><</span>span style="font-family:Times New Roman;font-size:14px;"></</span>span></</span>span>
- 192.168.5.100 pc端虚拟机的ip
- 192.168.5.150 开发板的ip
- 192.168.5.1 网关
- 255.255.255.0 子网掩码
然后配合刚才的tftp下载,接着复位下板子。然后就可以即通过tftp下载内核也可以nfs挂载文件系统了,之后的开发就方便多了。
终于写完了,心也静下来了,睡觉了,明天继续公司学习,晚上回来学习板子。以后陆续会把自己调通的驱动都写写博客和大家一起分享下。
转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]的更多相关文章
- OK6410之tftp下载内核,nfs…
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...
- OK6410 tftp下载内核、文件系…
飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其中遇到的一些问题. 一键烧写本质上是启动位于SD卡中的Uboot ...
- 文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解
阅读此文,必须具备知识点:<Linux 查看磁盘分区.文件系统.使用情况的命令和相关工具介绍><实例解说 fdisk 使用方法><合理规划您的硬盘分区><Fe ...
- Linux 创建文件系统及挂载文件系统流程详解(转)
作者:北南南北 来自: LinuxSir.Org 摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述:主要是为初学者弄清楚这一操作过程:本文涉及f ...
- 转 -- OK6410 tftp下载内核、文件系统以及nand flash地址相关整理、总结
转载地址:http://emouse.cnblogs.com/ 飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其 ...
- linux下使用NFS挂载文件系统
转自linux如何使用NFS挂载文件系统 设备:一台服务器和一台客户端,这里我们把装在PC机上的RedHat作为服务器,而客户端则是嵌入式linux开发板. 环境:开发板已启动,连接好串口和网线,串口 ...
- ZT linux的mount(挂载)命令详解
linux的mount(挂载)命令详解 来源:互联网 作者:佚名 时间:09-08 17:02:27 [大 中 小] 点评:linux下挂载(mount)光盘镜像文件.移动硬盘.U盘.Window ...
- linux-2.6.26内核中ARM中断实现详解(转)
转载:http://www.cnblogs.com/leaven/archive/2010/08/06/1794293.html 更多文档参见:http://pan.baidu.com/s/1dDvJ ...
- [转载,感觉写的非常详细]DUBBO配置方式详解
[转载,感觉写的非常详细]DUBBO配置方式详解 原文链接:http://www.cnblogs.com/chanshuyi/p/5144288.html DUBBO 是一个分布式服务框架,致力于提供 ...
随机推荐
- 【TencentOS tiny】深度源码分析(3)——队列
队列基本概念 队列是一种常用于任务间通信的数据结构,队列可以在任务与任务间.中断和任务间传递消息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时, ...
- 超炫酷的 IntelliJ IDEA 插件(一)
工善其事必先利器 打开setting文件选择Plugins选项 Ctrl + Alt + S File -> Setting 我的idea是最新版本2019.02 有的和别人界面可能不一样 主界 ...
- 【干货系列之萌新知识点】python与变量和运算符
一.注释 注释一行:# 为注释符 注释多行:'或者"为注释符 二.print输出 print()函数,作用是打印一些信息语屏幕上. 例如:print("hello world!&q ...
- unittest执行用例方法
#coding=utf-8 from selenium import webdriver from time import sleep import unittest#导入unittest库 impo ...
- Python_深拷贝和浅拷贝
深拷贝与浅拷贝 import copy v = 123 v1 = copy.copy(v) #浅拷贝 v2 = copy.deepcopy(v) #深拷贝 **拷贝只拷贝可变数据类型,浅拷贝只拷贝第一 ...
- c使用二叉链表创建二叉树遇到的一些疑问和思考
二叉链表存储二叉树 学习的时候参考的是<大话数据结构>,书中是这样定义的 typedef char TElemType; typedef struct BiTNode { TElemTyp ...
- c语言1博客作业02
c语言1博客作业02 这个作业属于哪个课程 C语言程序设计 这个作业的要求在哪 [作业要求](https://edu.cnblogs.com/campus/zswxy/SE2019-2/homewor ...
- Java基础(38)AbstractMap类
AbstractMap类的子类有HashMap(其子类是LinkedHashMap).TreeMap.EnumMap.WeakHashMap和IdentityHashMap. 1.HashMap (1 ...
- ManyToMany 字段的使用
创建一个经典的多对多关系:一本书可以有多个作者,一个作者可以有多本书(如下,csdn复制的图片) 当进行数据迁移时,会生成三张表,了解就好 1,查询数据的操作 : 1.一本书的所有作者 b = Boo ...
- VSCode实现文献管理
1 常用文献管理软件 常用的文献管理软件有mendely,zotero,endnote和Papers(需要付费),具体对比参考链接1.1.1.2 笔者只用过Mendely,当时综合考虑挑了Endnot ...