使用NFS启动Tiny4412开发板根文件系统
1、Ubuntu14.04上搭建NFS服务
1.1、安装NFS服务
$ sudo apt-get install nfs-kernel-server //安装NFS服务
1.2 创建Tiny4412开发板根文件系统
这部分内容参考《Busybox构建根文件系统和制作Ramdisk》部分。
假设Tiny4412开发板根文件系统路径为/home/felix/nfs
1.3. 配置NFS服务器
配置NFS主要涉及配置文件/etc/exports,它用于NFS服务器端,其中列出了NFS服务器中要导出的目录、可以访问这些目录的NFS客户机及其访问权限。
/etc/exports文件的格式如下:
dir_to_export NFS_client (permissions) [NFS_client (permissions)…]
例如:
/tmp 192.168.100.0/24(ro) localhost(rw) *(ro,sync)
[分享目录] [第一个客户端(权限)] [可用主机名] [可用通配符]
因此,需要在/etc/exports文件中添加如下内容:
/home/felix/nfs *(rw,sync,no_root_squash,no_subtree_check)
/home/felix/nfs:刚才创建的共享文件夹
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_subtree_check:不检查父目录的权限。
no_root_squash:root用户具有对根目录的完全管理访问权限。
1.4、启动NFS服务器。
在命令行终端输入如下命令:
$ sudo exportfs –rv //使exports 文件生效
$ sudo /etc/init.d/rpcbind restart //重启rpcbind 服务
$ sudo /etc/init.d/nfs-kernel-server restart //重启nfs服务
在Ubuntu上执行:
$ showmount -e
显示出共享的目录说明搭建成功。
2.配置tiny4412开发板内核,板子启动自动挂载NFS文件系统
2.1、配置tiny4412开发板内核支持NFS
输入 make ARCH=arm menuconfig 命令进入 linux 内核配置界面,
进入[*] Networking support --->
Networking options --->
选中[*] IP: kernel level autoconfiguration

再进入File systems --->
[*] Network File Systems --->
选中如下选项:
<*> NFS client support
<*> NFS client support for NFS version 2
<*> NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
<*> NFS client support for NFS version 4
[*] Provide swap over NFS support
[*] NFS client support for NFSv4.1
[*] NFS client support for NFSv4.2
[*] NFSv4.1 client support for migration
[*] Root file system on NFS

再进入General setup --->
设置Initial RAM filesystem and RAM disk (initramfs/initrd) support项为
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

配置完成后,保存退出并编译内核。
2.2、配置U-boot启动参数
2.2.1、设置U-boot的bootargs参数:
# setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.102:/home/felix/nfs ethmac=00:00:ff:ff:00:00 ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200 init=/linuxrc'
# saveenv
其中关键是对ip参数的设置:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
bootargs中关于nfs的参数解释如下:
root=/dev/nfs rw nfsroot=192.168.1.102:/home/felix/nfs 表示挂载的 nfs 服务器 ip 是
192.168.1.102,挂载的目录是/home/felix/nfs(注意:/home/felix/nfs是前面搭建 nfs 服务器设置的);
ethmac=00:00:ff:ff:00:00表示网卡的地址是00:00:ff:ff:00:00,该地址在网卡驱动加载成功后会打印出来;
ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off中192.168.1.103是我们开发板的ip地址,192.168.1.102是nfs服务器的ip,192.168.1.1是开发板的网关,255.255.255.0 是子网掩码,eth0是网卡设备的名称。
对bootargs的设置可以放在设备树中或者u-boot中,并且u-boot的bootargs的优先级更高,会将设备树中的bootargs覆盖了。具体请参考内核文档:
Documentation/kernel-parameters.txt
Documentation/filesystems/nfs/nfsroot.txt
2.2.2、设置U-boot的bootcmd参数:
如果用NFS启动根文件系统的话,使用bootm启动内核的时候,就不需要传递ramdisk的地址了(如:bootm 0x40000000 – 0x4200000 ),否则根文件系统还是ramdisk。U-boot的bootcmd参数设置如下:
# setenv bootcmd 'usb start; usb reset;tftp 0x40007000 uImage; tftp 0x42000000 exynos4412-tiny4412sdk.dtb;bootm 0x40007000 - 0x42000000; boot'
# saveenv
关于TFTP的设置参考《X-010 FriendlyARM tiny4412 uboot移植之 uboot移植之移植网卡驱动TFTP用起来》
2.3、配置Linux启动参数
输入 make ARCH=arm menuconfig 命令进入 linux 内核配置界面,进入Boot options --->
在 Default kernel command 里面输入
root=/dev/nfs rw nfsroot=192.168.1.102:/home/felix/nfs ethmac=00:00:ff:ff:00:00 ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200 init=/linuxrc
这个参数和前面设置u-boot的bootargs参数一致

保存配置参数,重新编译内核。
完成上面的设置,就可以使用NFS启动Tiny4412开发板的根文件系统。

参考
嵌入式环境搭建之NFS http://blog.csdn.net/tigerjibo/article/details/9748561
[学习嵌入式开发板]iTOP-4412实现NFS网络文件系统http://www.oschina.net/question/2371345_2158782
Ubuntu14.04和Tiny6410挂载NFS服务http://www.cnblogs.com/cxd2014/p/4178889.html
使用NFS启动Tiny4412开发板根文件系统的更多相关文章
- EASYARM-IMX283 nfs启动内核和根文件系统
EASYARM-IMX283(以下简称IMX283)默认采用从nand flash启动,但是在开发过程中因为要频繁的替换内核,我们更倾向于从nfs启动. 先看看IMX283中uboot中默认采用的启动 ...
- 嵌入式环境:挂载开发板根NFS文件系统失败
挂载开发板根NFS文件系统的时候,发现了下面的问题: Looking up port of RPC 100003/2 on 192.168.2.109rpcbind: server 192.168.2 ...
- NFS启动文件系统
NFS启动文件系统 一.软硬件平台 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3.交换芯片MARVELL的88E ...
- 把Linux目录挂载到开发板、设置开发板从NFS启动、取消开发板从NFS启动
声明:文中"PC虚拟机Linux"是指在PC上安装了虚拟机,然后在虚拟机中装的Linux. 关于NFS的详细介绍可参考:http://www.cnblogs.com/nufangr ...
- mini2440 最小根文件系统制作和nfs启动
mini2440 内核启动后,可以用busybox制作一个简单的根文件系统并用nfs来启动该文件系统 启动mini2440, 按任意键进入uboot,按q键进入uboot命令行: 执行以下命令: se ...
- Exynos4412从SD卡启动的简单网络文件系统制作
Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootf ...
- mini2440 uboot使用nfs方式引导内核,文件系统
mini2440 uboot使用nfs方式引导内核,文件系统 成于坚持,败于止步 看了一段时间的u-boot了,到今天才真正完全实现u-boot引导内核和文件系统,顺利开机,在此记录完整过程 1.首先 ...
- 编译 Linux 3.5 内核烧写 Android 4.2.2 到 Tiny4412 开发板
. . . . . 昨天已经编译了 Android 4.2.2 的源码,详见<Ubuntu 14.04 编译 Android 4.2.2 for Tiny4412>一文. 今天我们继续剩下 ...
- TFTP启动内核、设备树,NFS启动FS
一.软硬件平台 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3.交换芯片MARVELL的88E6321. 二.问题 ...
随机推荐
- ggplot2使用初探
ggplot2已经成为了R语言中数据可视化的同义词, 这是一个强大的工具, 可以帮助我们制作优良的图表, 创造出令人吃惊的图片, 下面我们一起学习(本博文参考了知乎问题如何使用 ggplot2中黄宝臣 ...
- python面向对象(七)属性方法的添加
通常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.下来我就讲下添加属性和方法,同时也将下限值添加属性方法. 添加属性 ...
- Codeforce 295B Greg and Graph(Floyd的深入理解)
题目链接:http://codeforces.com/problemset/problem/295/B 题目大意:给出n个点的完全有权有向图,每次删去一个点,求删掉该点之前整张图各个点的最短路之和(包 ...
- Centos7.3安装和配置jre1.8
在正式环境里 我们可以不安装jdk ,仅仅安装Java运行环境 jre即可: 第一步:下载jre 我们去oracle官方下载下jre http://www.oracle.com/technetwork ...
- Centos之压缩和解压缩命令
常用压缩格式:.zip .gz .bz2 常用压缩格式:.tar.gz .tar.bz2 zip格式压缩 zip压缩文件名 源文件 压缩文件 zip -r 压缩文件名 源目录 压缩目录 [root@ ...
- web文件<async-supported>错误分析
<async-supported>true</async-supported> 出现 cvc-complex-type.2.4.a: Invalid content was f ...
- SonarQube的安装、配置与使用(windows)
onarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:htt ...
- Asp.net MVC NPOI导出Excel
public class NpoiMemoryStream : MemoryStream { public NpoiMemoryStream() { AllowClose = true; } publ ...
- 【51nod】1934 受限制的排列
题解 这题还要判无解真是难受-- 我们发现我们肯定能确定1的位置,1左右的两个区间是同理的可以确定出最小值的位置 我们把区间最小值看成给一个区间+1,构建出笛卡尔树,就求出了每一次取最小值和最小值左右 ...
- LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法
1.QTP11 下载地址:http://www.genilogix.com/downloads/unified-functional-testing/quicktest-professional-11 ...