使用nfs作为根文件系统启动,(3)
通过设置u-boot的bootargs来更改开机自动进入nfs远端服务器,不需要mount指令,实现虚拟机编译程序后直接通过u-boot烧写程序
1 使用nfs作为根文件系统启动
1.1 print 打印并查看根文件系统root启动地址
从下图看出root根目录启动是在flash上,接下来改为root=/dev/nfs,使用网络文件系统。

1.2 设置bootargs启动网络文件系统
1.2.1 打开linux-2.6.22.6(也就是开发板内核)内核文件目录,在"/documentation"找到"nfsroot.txt"资料文件。

1.2.2 打开nfsroot.txt 找到 "nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]" 这个阐述的nfs服务器参数设置。
server-ip:服务器(虚拟机)IP地址
root-dir:nfs根目录位置
nfs-options:选项,默认可以不填
这里填的nfs服务器参数是(用冒号隔开): nfsroot=192.168.1.106:/work/nfs_root/tmp/fs_mini_mdev

1.2.3 继续找到 "ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>" 这个阐述的nfs客户端链接的参数设置。
client-ip:客户端(开发板)IP地址
server-ip:服务器(虚拟机)IP地址
gw-ip:网关地址,一般都是192.168.1.1
netmask:子网掩码,255.255.255.0
hostname:主机名,可以不填
device:网卡设备,默认一个网卡就填eth0
autoconf:自动连接,填off不自动连接
这里填的nfs客户端参数是(用冒号隔开): ip=192.168.1.199:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off

最后将上面两个参数,代入到bootargs中,步骤:
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.106:/work/nfs_root/tmp/fs_mini_mdev ip=192.168.1.199:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 设置nfs根目录
save 保存
重启开发板后,可以看到" VFS: Mounted root (nfs filesystem). ",已经登录了nfs文件系统,输入ls可以看到远端虚拟机目录

2. 使用NFS初试编译好的驱动
2.1 先将驱动程序拷贝到虚拟机与2440共享的网络文件目录里" /work/nfs_root/tmp/fs_mini_mdev".

2.2 在Linux中编译驱动,这里以LED程序为例.
步骤:
cd drivers_and_test/first_drv 进入驱动目录,进入LED程序文件夹,其中LED程序文件名为“first_drv”.

vi Makefile 查看Makefile的指定的内核源码路径是否正确。(下图中看到的路径是正确的,然后在vi编辑器下按"ESC:q"退出)

make make编译 ,生成first_drv.ko文件 (ko文件用来insmod命令加载)
arm-linux-gcc -o firstdrvtest firstdrvtest.c 测试程序编译
3. uboot通过NFS 初试第一个驱动
uboot通过nfs将刚刚编译好的LED程序,加载到开发板2440里。
步骤:
cd drivers_and_test/first_drv/
insmod first_drv.ko 加载first_drv.ko 驱动到内核
./firstdrvtest 查看测试程序怎么使用,如下图所示,后面加on/off,表示开或关。

./firstdrvtest on 开灯
./firstdrvtest off 关灯
使用nfs作为根文件系统启动,(3)的更多相关文章
- 从ramdisk根文件系统启动Linux成功,及使用initramfs启动linux
下面两篇文章是ARM9论坛上的讲解ramdisk文件系统的很不错的文章 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下. 其中涉及的内容较多,很多东西不再详述 ...
- 从ramdisk根文件系统启动Linux 二
今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下.其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆). 开发环境:Fedo ...
- 从ramdisk根文件系统启动Linux成功
这几天参考国嵌的实验手册和网上的资料完成了u-boot定制.内核定制.ramdisk根文件系统的制作,并成功.趁热打铁,总结一下.本文引用了很多网络上的文章,就不一一注明了.感谢各大侠的帮助,如有雷同 ...
- Linux内核3.0移植并基于Initramfs根文件系统启动
Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先, ...
- uboot、内核、根文件系统启动流程
[1]Uboot的启动流程 Uboot的启动分为两个阶段. 第一阶段:设置异常向量表,设置ARM核为svc模式,关cache和关mmu, 关看门狗,初始化时钟,串口,内存,初始化栈空间,清bss ...
- NFS挂在文件系统启动参数
1.tiny6410(增强版)bootargs启动参数(周学伟)noinitrd console=ttySAC0,115200 lcd=S70 init=/init root=/dev/nfs rw ...
- linux文件系统启动流程、启动脚本
linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...
- 目标板通过nfs挂载根文件系统
目标板挂载根文件系统的方法有两种(这里所说的服务端就是ubuntu,Ubuntu已经成功安装了nfs服务,并且保证服务端与目标板ping 通) 第一种:等待开发板启动之后去挂载,此时文件系统从Flas ...
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)
http://blog.csdn.net/yinjiabin/article/details/7489030 建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的 ...
随机推荐
- 用vue写添加数据、删除数据、筛选数据表格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 关于wordpress后台首页加载ajax.googleapis特别慢的解决办法
通过审查元素发现,拖慢后台加载速度的主要是两个路径 1.https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js 2.h ...
- jmeter - 定时器
jmeter提供了很多元件,帮助我们更好的完成各种场景的性能测试,其中,定时器(timer)是很重要的一个元件,最新的3.0版本jemter提供了9种定时器(之前6种),下面一一介绍: 一.定时器的作 ...
- 浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- 米扑代理示例(mimvp-proxy-demo)
米扑代理示例(mimvp-proxy-demo) 米扑代理示例(mimvp-proxy-demo)聚合了多种编程语言使用代理IP,由北京米扑科技有限公司(mimvp.com)原创分享. 米扑代理示例, ...
- 数据结构-->栈
首先,栈是什么? 在代码当中,栈主要是一种实现特殊功能的一种数据结构,而不是像数组.集合之类的数据存储工具.它最大的特点就是后进先出. 那么后进先出是什么? 假设有一个数组,我们向里面添加一个数据,再 ...
- MySQL里创建外键时错误的解决
--MySQL里创建外键时错误的解决 --------------------------------2014/04/30 在MySQL里创建外键时(Alter table xxx add const ...
- .Net Reactor 5脱壳教程
今天别人发来一个.Net的DLL让我脱壳,第一步自然是先扔进de4dot 我这个de4dot 是集成了 Ivancito0z / TheProxy / PC-RET 4.9mod / wuhenso ...
- 安装 CentOS 时, BIOS 设置界面,找不到虚拟镜像
安装 CentOS 时, 遇到 BIOS 设置界面,找不到虚拟镜像 1. 启动电脑或重启电脑,当电脑还没有进入window图标界面,按F2或DEL 2. 左下角有一个 Advanced Mode(F ...
- 设计模式原则(2)--Liskov Substitution Principle(LSP)--里氏替换原则
1.定义: 所有引用基类(父类)的地方必须能透明地使用其子类的对象.这一原则与继承紧密相关.如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的 ...