问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用base-fs做nfs的根文件系统怎么不行

发布网友 发布时间:2022-04-23 23:27

我来回答

1个回答

热心网友 时间:2022-04-14 23:50

使用NFS挂载根文件系统,在开发阶段有很多的好处,对根文件系统进行修改后不用每次都下载到NandFlash中,可以把制作的根文件系统放到主机中的NFS输出目录中,在正式成为产品以后在烧写到开发板中,这样可以方便很多,也可以把编译生成的内核也放到NFS输出目录中这样也可以引导内核,很是方便,还等什么开始吧!
NFS服务器端的配置已经在上一篇文章中写到过了。U-boot中使用tftp协议也在另一篇文章中。按道理来说NFS命令也是可以是使用的,因为都是基于网卡的,只要网卡驱动移植的没有问题,NFS也就直接可以使用了,不过在我这里可是行不通,在使用NFS传输文件中,一直出现下面的错误类型,提示挂载不上:
U-Boot@mini2440]#nfs 0x30000000 10.27.10.48:/home/ubuntu/kernel/fs/u-boot.bin
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
operating at 100M full plex mode
Using dm9000 device
File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23
Filename '/home/ubuntu/kernel/fs/u-boot.bin'.
Load address: 0x30000000
Loading: *** ERROR: Cannot mount //仅仅提示挂载不上
可还有下面的错误:
[U-Boot@mini2440]#nfs 0x30000000 10.27.10.48:/home/ubuntu/kernel/fs/u-boot.bin
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
operating at 100M full plex mode
Using dm9000 device
File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23
Filename '/home/ubuntu/kernel/fs/u-boot.bin'.
Load address: 0x30000000
Loading: *** ERROR: Cannot mount
*** ERROR: Cannot umount //这里还提示了不能卸载
在网上查找资料,出现 Cannot umount错误的解决方法是修改u-boot-2009.08/net/nfs.c文件,在大约453行附近的位置:
static intnfs_umountall_reply (uchar *pkt, unsigned len)
{
struct rpc_t rpc_pkt;
debug("%s\n", __func__);
memcpy ((unsigned char *)&rpc_pkt, pkt, len);
//if (ntohl(rpc_pkt.u.reply.id) != rpc_id) //原来的这一行修改成下面的一行
if ((ntohl(rpc_pkt.u.reply.id)+1) != rpc_id)
return -1;
if (rpc_pkt.u.reply.rstatus ||
..................
}
可是在我这里修改完以后还是不可以使用,一样出现上面的错误。这是就想到了是不是和tftp时出现的错误是一样的,也是因为超时的原因,虽然这里面没有出现超时的提示,不管怎么样还是先改了再说;还是在/nfs.c文件中修改下面的超时的宏定义:
#define HASHES_PER_LINE 65 /* Number of "loading" hashes per line */
#define NFS_RETRY_COUNT 30
#define NFS_TIMEOUT (30*2000UL) //把原来的2000UL改成 30*2000UL,
修改完上面的宏定义以后,再使用NFS传输文件,一开始有几次还是不成功,不过后面再使用时大部分情况下都是成功的,不再像上面一次也没有成功过:
[U-Boot@mini2440]#nfs 0x30000000 10.27.10.48:/home/zfz/kernel/fs/u-boot.bin
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
operating at 100M full plex mode
Using dm9000 device
File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23
Filename '/home/zfz/kernel/fs/u-boot.bin'.
Load address: 0x30000000
Loading: ###############################
done
Bytes transferred = 155016 (25d88 hex)
既然NFS可以使用了,那就可以用NFS挂载根文件系统了。根文件系统的制作在另一篇文章中也已经写了,这里就还是使用上次的根文件系统,只是不再用工具制作成Yaffs2的镜像了,直接使用Busybox,制作成功的noot_nfs目录下的各个文件就可以了,如果要下载到NandFlash中,再使用Yaffs2格式的镜像文件。
可以先用NFS把Linux内核下载到内存中,然后设置传递给内核的参数,在u-boot-2009.08/include/configs/mini2440.h文件中,修改原来使用nand read 方式,修改成使用NFS方式的;
//#define CONFIG_BOOTCOMMAND "nand read 0x32000000 0x60000 0x560000;bootm 0x32000000"
//把上面的注释掉,修改成下面的方式
#define CONFIG_BOOTCOMMAND "nfs 0x30000800 10.27.10.48:/home/zfz/kernel/fs/uImage.img;bootm"
这样,在用U-boot引导时就可以把Linux的内核首先复制到内存中了,这样也不用把Linux 内核下载到开发板中了。然后在修改传递给内核的参数,修改为下面的:
//#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 mem=64M"
//把上面的修改成下面的这句
#define CONFIG_BOOTARGS "noinitrd root=/dev/nfs rw nfsroot=10.27.10.48:/home/ubuntu/kernel/fs/root_nfs ip=10.27.10.23:10.27.10.48::255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
荨麻疹吃什么食物好荨麻疹饮食禁忌有哪些 三极管9015的参数有哪些 4岁孩子缺锌比别人矮,还能长高吗 婴儿出生时很矮长大一定矮吗 陌陌表情红唇怎么弄 因为不知道SUMIF函数还能横着用她一上午的工作被别人一分钟搞定_百度知 ... EXCEL中SUMIF公式的运用问题?请教! 苹果手机没有用的软件怎么办苹果手机不常用的软件怎么打开 血尿一般是什么原因引起的 win7桌面图标消失了 桌面图标消失了怎么恢复 linux下mount NFS时,总出现mount: RPC: Timed out ,但把NFS上的防火墙关了就没有问题。怎么解决超时问题 linux nfs服务启动不了。请问怎么办? 打瘦脸针后注意事项是什么 打了瘦脸针需要注意什么? 打瘦脸针的前后注意事项是什么 打完瘦脸针之后有哪些需要注意的? 瘦脸针后的注意事项? 打瘦脸针后注意事项是什么? 打完瘦脸针注意事项? 论文字数不少于1500字。论文题目为“十四五时期如何有效推动双循环发展新格局_百度问一问 政府工作报告为教育划了哪些重点? 浅谈如何搞好职业技能培训 职业技能培训有前途吗?哪些专业好点?谢谢。 职业技能培训的重要性是什么 职业技能培训有什么好处? 职业在线教育还有前景吗? 教育学专家杨东平谈如何看待职业教育,行业发展需要树立哪些信念? 职业教育的未来? 未来五年的新职业引起大家关注,新职业会有什么发展? 国家补贴学电脑要考试吗 showmount -a提示未注册 nfsasync挂载掉电 玩极品飞车ol,这是怎么回事啊? 极品飞车手游显示离线超时怎么办? 如何在linux操作系统中配置NFS服务器?? aix nfs umount Warning: unmount:: RPC: 1832-008 Timed out NFS服务器一个目录的写入文件所有人变为root会怎么样? 极品飞车最高通缉17怎么在商店买不了东西,总是连接超时? 错误7 (net::ERR_TIMED_OUT): 操作超时 出现这个问题怎么解决? 苹果手机已越狱,极品飞车17最高通缉内购时超时请重试。这个该怎么弄?请教。 有关数据包问题 家用烤箱食谱有什么? 新手烤箱食谱有什么? 家用小烤箱简单食谱有哪些? 家用电烤箱都能做什么美食,有具体食谱吗? 花呗支持最低还款吗 家用电烤箱食谱和用途有哪些? 椰香班兰戚风#美的烤箱菜谱#怎么做好吃 求美的烤箱MT10AH-AA的食谱!! 花呗可以一直最低还款吗?