使用nfs作为根文件系统启动
2018-01-13 20:24
323 查看
通过设置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 关灯
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作为根文件系统启动遇到的问题
- JZ2440设置从开发板启动或使用NFS作为根文件系统启动
- 使用NFS作为根文件系统来启动
- 使用Initramfs或yaffs2作为根文件系统启动成功,但是Ramdisk作为根文件系统有问题
- zedboard使用nfs挂载根文件系统-linux内核启动参数bootargs详解
- 210支持nfs作为根文件系统启动
- 详解-使用nfs作为根文件系统启动,(3)
- S5PV210210使用网络文件系统nfs作为根文件系统
- 虚拟机通过把nfs作为根文件系统来启动mini2440开发板
- 使用Jenkins启动maven作为项目构建管理工具的web项目
- 使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
- 使用Heartbeat V1实现nfs作为共享存储的高可用
- 使用Jenkins启动maven作为项目构建管理工具的web项目
- VirtualBox 使用 img 作为启动硬盘
- mini2440使用u-boot从nfs启动linux
- Emacs-123-使用init.el作为启动配置文件
- 使用Jenkins启动maven作为项目构建管理工具的web项目
- Kubernetes 1.11.2使用NFS作为共享存储
- OK6410开发板开发环境搭建-NFS文件启动和使用dnw2烧写镜像文件
- openwrt系统,作为路由器使用,跨网段nfs挂载共享目录