通过nfs挂载文件系统后显示乱码

举报 回答
通过nfs挂载文件系统后显示乱码
问在线客服
扫码问在线客服
  • 回答数

    9

  • 浏览数

    2,759

举报 回答

9个回答 默认排序
  • 默认排序
  • 按时间排序

没找到满意答案?去问豆包AI智能助手
取消 复制问题
已采纳
调整字符编码试试呢?你在本机上看如果不乱码的话,可能是远程软件编码的问题。
取消 评论
谁帮我解决一下 ,我打开了 之后另存一下就没其他方法了
取消 评论
楼主你是怎么设置的?我也是你这种情况
取消 评论
可能的原因:
1,现看看/etc/exports中,你开发板的网址是否在其范围内。
2,如果不是因为1,则可能是虚拟机网络设置问题, 把虚拟机设为bridge,不要设nat

试试showmount -e
现在本机挂载试试:
mount -t nfs xxx.xxx.xxx.xxx:/fff /mnt(xxx.xxx.xxx.xxx是你本机ip,/fff是你nfs文件夹,/mnt是挂载到/mnt)
取消 评论
VFS: Cannot open root device (null) or unknown-block(0,0): error -6

看起来是文件系统的问题
取消 评论
解决了没有啊?我也是跟你一样纠结这个问题2天了,求帮帮忙啊
取消 评论
换到别的机器试试,如果有问题就是你的文件有问题了
取消 评论
用NFS方式挂载根文件系统

由于原来的内核是用ATBOOT的方式下载的,不知道怎么传递参数(好像不能,网上查的nfs方式都是用U-boot的方式挂载的),因此决定用u-boot重新下载内核。

1.下载u-boot和内核

1.1编译内核

1.1.1由于板子光盘自带的内核触摸屏驱动不是配套的,要修改驱动的一个宏定义

LCD driver info */br///#define TFT3br/#define TFT_NEW3 //这是板子配套触摸屏的参数br///#define vga800480 //这是默认的参数,需要注释掉br///#define vga1024br///#define vga800600

1.1.2修改参数

在arch/arm/mach-s3c2410/common-smdk.c 里的

static struct s3c2410_platform_nand smdk_nand_info = {br/.tacls = 10,br/.twrph0 = 30,br/.twrph1 = 10,br/...

原来是20,60,20,但这个参数会找不到nand flash,需要修改为上面几个。否则得到的uImage 文件会下载运行不了。

1.1.3修改交叉编译器

vi Makefile
找到
CROSS_COMPILE ?= arm-linux

这一行,将arm-linux-修改为交叉编译器的路径(Linux系统上交叉编译工具的路径为下)

/usr/local/arm/3.4.1/bin/arm-linux-

输入:wq 保存并退出。

1.1.4编译

make clean

make uImage

(在执行命令之前要执行make menuconfig,进行配置内核:

networking options-》IP:kernel level autoconfiguralion项
选中file systems-》network file systems-》下的root file system on nfs和nfs file system support

由于我解压的是板子自带的内核,发现这些都已经选中了,因此直接编译即可,执行make uImage后,最后会提示一个错误,说不能创建某个文件,但我发现uImage已经生成了,就没理会错误,直接拿来用了)

1.2下载u-boot和内核

1.2.1下载u-boot

1.2.1.1 SJF2440 环境设置(见前面部分图文介绍)

下载u-boot用板子自带工具SJF2440.exe,安装其驱动,具体见说明文档

1.2.1.2 烧写u-boot.bin 到Nand flash 中

新建D:\atboot,把sjf2440.exe 和u-boot.bin复制到文件夹内

(sjf2440.exe 和u-boot.bin 必须在同一目录下)

具体见说明文档

1.2.1.3 利用u-boot下载uImage和文件系统到arm板上

由于板子自带是用autoflash.img自动下载uImage和文件系统到arm板上,现在我还不太明白具体的地址,因此就自动把文件系统也下载上去了,但是这个文件系统不用,下面将用nfs挂载linux主机上的文件系统rootfs文件

具体见说明文档

2. 用nfs挂载根文件系统

2.1 在虚拟机Linux上建立文件夹

/home/water/rootfs

把板子自带的系统直接拷进rootfs文件夹内

2.2linux主机 配置nfs 文件系统

修改/etc/exports 文件,格式为共享目录开发板ip 地址(权限设置):cat EOM /etc/exports

/home/water/rootfs *(rw,sync,insecure,no_root_squash)

重启nfs 服务器:

/etc/init.d/nfs restart

2.3 IP设置

XP:192.168.1.100

linux:192.168.1.128

arm:192.168.1.7(这个一会用U-boot给内核传递)

2.4 给u-boot传递参数

启动u-boot,在倒计时结束前,按下空格键,进入输入参数界面

输入:

AVANTECH# set bootargs root=/dev/nfs
nfsroot=192.168.1.128:/home/water/rootfs rw noinitrd
init=/linuxrc ip=192.168.1.7:192.168.1.128:192.168.1.128:255.255.255.0:avantech:eth0:off console=ttySAC0,115200

(注:上面为一行代码,只是可能自动换行的缘故,因此输入是可以一部分一部分的复制)

AVANTECH# saveenv

AVANTECH# reset

2.5然后就ok了
取消 评论
加载全部9个答案 加载中...
ZOL问答 > 通过nfs挂载文件系统后显示乱码

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?