使用NFS启动Tiny4412开发板根文件系统
来源:互联网 发布:java调用rest api实例 编辑:程序博客网 时间:2024/09/21 06:33
1、Ubuntu14.04上搭建NFS服务
1.1、安装NFS服务
$ sudo apt-get install nfs-kernel-server //安装NFS服务
1.2 创建共享文件夹
$ sudo mkdir /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)
[分享目录] [第一个客户端(权限)] [可用主机名] [可用通配符]
在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 //使/etc/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
配置完成后,保存退出并编译内核。
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'
其中关键是对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中ip192.168.1.103是我们开发板的ip地址, ip192.168.1.102是nfs服务器的ip,ip192.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'
关于TFTP的设置参考《[20170320] X-010 FriendlyARM tiny4412 uboot移植之 uboot移植之移植网卡驱动TFTP用起来》
2.2.3、保存U-boot的bootargs参数和bootcmd参数:
# saveenv
完成上面的设置,就可以使用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开发板根文件系统
- 使用NFS启动Tiny4412开发板根文件系统
- tiny4412 nfs(文件系统)挂载
- JZ2440设置从开发板启动或使用NFS作为根文件系统启动
- 使用nfs文件系统启动开发板的一些问题
- jz2440开发板制作烧写根文件系统,使用NFS启动
- 使用NFS根文件系统登录开发板
- Tiny4412 ARM开发环境搭建—NFS网络根文件系统制作
- ok6410开发板用nfs启动文件系统
- 开发板从nfs文件系统启动
- 使用NFS作为根文件系统来启动
- NFS启动根文件系统
- tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
- tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
- tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
- 文件系统 | 如何使用网络根文件系统启动开发板?
- 使用nfs作为根文件系统启动遇到的问题
- 虚拟机通过把nfs作为根文件系统来启动mini2440开发板
- Spring MongoDB实现LBS功能的其中一种实现
- 解决javax.servlet.jsp.JspException cannot be resolved to a type(JSP页面)
- ubuntu16.04 完整make安装opencv 3.2.0
- iOS 11开发教程(十五)iOS11应用视图的位置和大小
- css简介
- 使用NFS启动Tiny4412开发板根文件系统
- Ubuntu系统下如何提交代码到GitHub
- Blade源码深入探索2--server
- webscoket实战之利用httpsession定向推送
- 服务器部署
- jquery轮播图详解
- Eclipse 4个空格替换Tab设置方法
- java入门篇
- 集群配置tensorflow出现的问题汇总