NFS挂载文件系统需要的内核和uboot的配置

自己用busybox做了一个文件系统,然后建了个home目录,在里面开发应用程序,应用程序大概是这样做的:

在Ubuntu虚拟机中用交叉编译器编译写好的应用程序,然后用arm-none-linux-gnueabi-readelf看应用程序运行需要哪些动态库,把他们拷贝到自己做的文件系统中的lib目录中就可以。

中途,我这样想过,把整个的交叉编译器都放到自己的文件系统中去,这样在自己的开发板上编译,再运行,也不需要拷贝什么动态库,这个突发的想象据说可以的,毕竟现在都是一二G的内存了吗,但实际上需要的动态库和动态链接加载器就那么六七个文件,还好。


但让人不爽的就是:没改一次应用,都要重新用fastboot烧录一下文件系统,来验证,这样既缩短了flash的使用寿命,也浪费时间,于是nfs网络文件系统是一个不错的选择。以前玩过,但自己来做就又是一回事,经过好几天的折腾,终于弄出来了,现把经验总结如下:

要想以NFS方式挂载文件系统,需要做以下几个工作:

一、编译内核,以支持使用NFS

参考文章:http://blog.chinaunix.net/uid-24219701-id-3029945.html


在编译内核的过程中,也出了点小问题,就是有个不需要的触摸屏驱动程序有问题,编译不过,于是修改了.config文件,把那个GT9XX的触摸屏的配置用#注释掉了,再编译的时候选择n,就编译出了我们需要的zImage。

二、U-boot中bootargs的设置

启动开发板后迅速敲空格键使得开发板停留在u-boot命令行终端,然后设置bootargs参数:

setenv bootargs root=/dev/nfs console=ttySAC2,115200n8 init=/linuxrc nfsroot=192.168.1.20:/home/cxy/linux_AP/_install ip=192.168.1.12:192.168.1.20:192.168.1.1:255.255.255.0::eth0:on

saveenv

注意:ip设置中,第一个是目标板IP,第二个是nfs服务器主机的IP,后面的是目标板的,但是要注意这里目标板的要和主机的配置一样,网关地址要一样,我就在这里忽视啦。


至于主机上nfs服务器的安装,我用的是Ubuntu 12.04.5的虚拟机,我的nfs服务器就安装了两个软件:

sudo apt-get install nfs-kernel-server

sudo apt-get install nfs-common

用sudo /etc/init.d/nfs-kernel-server restart重启nfs服务。

showmount -e查看输出的共享目录


(1) u-boot使用网络需设置哪些环境变量,且需要注意哪些问题? 在使用网络功能的情况下,需要设置以下环境变量: - ipaddr:设置本地IP地址。 - netmask:设置子网掩码。 - serverip:设置TFTP服务器的IP地址。 - gatewayip:设置网关的IP地址。 - ethaddr:设置以太网接口的物理地址。 在设置这些环境变量时,需要注意以下问题: - 确保网络设置与实际网络环境相匹配。 - 确保设置的IP地址、子网掩码、网关IP地址以及以太网物理地址都是正确的。 - 根据实际情况选择合适的网络接口,比如 eth0、eth1等。 - 如果使用DHCP自动获取IP地址,则不需要手动设置这些网络相关的环境变量。 (2) 通过TFTP下载内核并启动内核、让内核使用NFS挂载文件系统需要设置u-boot的哪两个环境变量,如何设置这两个环境变量? 在通过TFTP下载内核并启动内核、使用NFS挂载文件系统时,需要设置以下两个环境变量: - tftpserverip:设置TFTP服务器的IP地址。 - nfsroot:设置NFS文件系统的路径。 可以通过以下命令来设置这两个环境变量: ``` setenv tftpserverip <TFTP服务器IP地址> setenv nfsroot <NFS文件系统的路径> ``` 需要将 `<TFTP服务器IP地址>` 和 `<NFS文件系统的路径>` 替换为实际的值。 (3) MMC的命令,烧写的内核镜像到EMMC中,具体实现命令是什么? 在u-boot中,可以使用 `mmc` 命令来进行MMC(多媒体卡)操作。要将内核镜像烧写到eMMC中,可以使用以下命令: ``` mmc dev <设备号> mmc rescan fatload mmc <设备号>:<分区号> <加载地址> <文件名> mmc write <加载地址> <起始扇区号> <扇区数目> ``` 需要将 `<设备号>`、`<分区号>`、`<加载地址>`、`<文件名>`、`<起始扇区号>` 和 `<扇区数目>` 替换为实际的值。 上述命令的作用分别是:选择MMC设备、重新扫描设备、从MMC加载内核镜像、将内核镜像写入eMMC中。请确保替换参数时使用正确的设备和分区号,并根据实际情况选择合适的加载地址、文件名、起始扇区号和扇区数目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值