使用NFS启动Tiny4412开发板根文件系统
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
转载于:https://www.cnblogs.com/LoTGu/p/6701442.html
使用NFS启动Tiny4412开发板根文件系统相关推荐
- 解决Windows无法NFS启动imx6ull开发板的问题
解决Windows无法NFS启动imx6ull开发板的问题 问题:有时候我们需要将Linux虚拟机里的文件复制到Windows里,并在Windows上通过haneWIN NFS server启动imx ...
- 打包开发板根文件系统,并制作成img镜像
打包开发板根文件系统,并制作成img镜像. 打包根文件系统,并制作成img镜像. 整体操作一共三步: 一.将开发板的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu): 二.将此拷贝的全部 ...
- 导出开发板根文件系统rootfs
环境: 1.Windows子系统Linux Ubuntu18(没有安装子系统的,虚拟机也是一样),需要注意的是Windows子系统Linux Ubuntu18需要是WSL2版本. 2.开发板RK328 ...
- rk3128 通过自带buildroot打包开发板根文件系统,重做自己的img镜像
对rk3128要生成自己的qt镜像文件 据说这样才方便大批量的烧录 打包分析 根据九鼎里面带有的编译脚本,把自定义的uboot,kernel,rootfs进行替换,用他的脚本就能打包了 他自己也是这样 ...
- 【Linux系统开发】x210开发板根目录文件系统构建
文章目录 一.开发板配置 二.了解rootfs 三.虚拟机文件配置 1.目录配置 2.x210_bsp配置 3.rootfs配置 4.make menuconfig 四.busybox的移植实战 1. ...
- linux开发 | 根文件系统构建实验及过程详解
<2.uboot和系统移植-第19部分-2.19.根文件系统构建实验及过程详解> 第一部分.章节目录 2.19.1.根文件系统的构建路线 2.19.2.busybox的移植实战 2.19. ...
- 嵌入式环境:挂载开发板根NFS文件系统失败
挂载开发板根NFS文件系统的时候,发现了下面的问题: Looking up port of RPC 100003/2 on 192.168.2.109 rpcbind: server 192.168. ...
- 天嵌E9卡片i.mx6q-Linux12.04搭建nfs环境以及从nfs启动开发板
最近导师丢了一个图像处理的项目,要用嵌入式来实现.于是买了一块天嵌近期推出的E9卡片i.mx6q板子,这款板子算是功能比较全面,基本上要用的驱动都给实现了.刚开始接触嵌入式,之前也没用过Linux系统 ...
- linux开发板tftp 搭建,iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动
原标题:iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动 硬件平台:迅为iTOP-i.MX6ULL开发板 使用网络方式调试 Linux 非常方便,下面开始介绍用 tftp 下载 Linux ...
最新文章
- ~~~端午安康~~~
- Java项目:仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)
- 【编程通识】正则表达式
- [特征工程系列三]显性特征的衍生
- CSS之关系选择器、属性选择器、伪类选择器
- 永远不会执行的cron表达式
- 2440按键中断编程
- 在 net send 命令中实现换行(信使服务)
- Linux下mongodb安装及数据导入导出教程
- 阿里云容器服务飞天敏捷版详解
- MyBatis当多个请求参数时处理方式
- CheckBox的Attributes
- mysql5.7应该导什么包_烘焙知识 | 不同的蛋糕,应该如何完美脱模?
- ios12后,获取不到WIFI(SSID)相关信息
- MongoDB 通过 Java 代码 批量操作
- 【华为】职级、薪酬、绩效全认知
- 金山词霸划译功能对IDE的影响
- ISP成像算法基础Day1—Python基础
- 一文讲懂什么是 vlan、三层交换机、网关、DNS、子网掩码、MAC地址
- Git提交后,文件夹任然有红色叹号提示