Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151516
  • 博文数量: 43
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 601
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 17:24
文章分类
文章存档

2010年(43)

我的朋友

分类: LINUX

2010-12-08 20:27:52

在用busybox做成根文件系统以后,常常为了方便用网络挂载的方式来启动根文件系统,如果用烧写的方式来做的,不仅会因为一点小错误就要重新烧写nand,还容易产生flash上的坏块,所以用网络挂载启动就非常省事了,通过挂载确定自己的文件系统可用以后,再去做成yaffs2,或者cramfs,烧到板子上!

知识点小提示:用busybox来做文件系统是非常适合嵌入式linux的,他不像pc的linux每一个命令一样,每一个命令都是一个程序,整个命令系统带上文件系统非常的庞大,不适合嵌入式的linux,用busybox做出来命令都是些连接,可以在线程的文件系统中 进入/bin,等目录通过ls -hl 命令能看得出。
lrwxrwxrwx    1 root     root           7 Dec  7  2011 who -> busybox
lrwxrwxrwx    1 root     root           7 Dec  7  2011 whoami -> busybox
lrwxrwxrwx    1 root     root           7 Dec  7  2011 xargs -> busybox
lrwxrwxrwx    1 root     root           7 Dec  7  2011 yes -> busybox
lrwxrwxrwx    1 root     root           7 Dec  7  2011 zcat -> busybox

前提 :能这么使用的前提是,根文件系统做的没有错误!

一、使用vivi启动时挂载的命令
param set linux_cmd_line "noinitrd root=/dev/nfs nfsroot=/home/rootfs_test/,rsize=1024,wsize=1024 ip=172.20.223.118:172.20.223.151:172.20.223.254:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0"

用法:1.这些命令直接复制到超级终端上,回车,记得保存一下,省的下次再复制,如果你愿意敲,也可以,别敲错了就行
2.分析命令
nfsroot=/home/linux_system/root_src/rootfs_test/
表示在pc的linux上根文件系统做出来存放的文件夹,每个人可能存放的位置不一样
ip=172.20.223.118:172.20.223.151:172.20.223.254:255.255.255.0
第一个:前的ip是开发板要挂载时用的ip
第二个:前的ip是虚拟机的ip,或者是pc linux的ip
后面的网关和子网掩码是开发板所连机器的,如果不跑虚拟机,直接电脑上就是linux系统的话,就是linux的,如果用虚拟机,就是xp下电脑的

二、使用u-boot启动时的命令
setenv bootargs noinitrd root=/dev/nfs nfsroot=/home/fly/rootfs/,rsize=1024,wsize=1024 ip=192.168.220.7:192.168.220.27:192.168.220.254:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0

基本上含义同上

三、问题的解决
那么,在根文件系统制作没有问题的情况下,输入命令,保存,然后boot或者重启,就一定能启动?
既然是挂载,就存在挂不上的问题,挂不上很大的原因是网络的问题!
说说几个解决挂不上常用的方法:
1.如果是电脑和pc机直接用网线相连,把电脑的ip设置成固定的,然后在bootloader的下载模式下,ping一下自己的机器,看看是否相同,若是不同就换ip或者检查网线之类的工作,整到ping通为止
2.如果你的板子和电脑都是接的同一个局域网,就需要考虑ip是否和别人的电脑冲突(就自己用的话不说了),换一个精良不冲突的ip来ping让电脑和板子ping通
3.ping通是第一步说明网是连上了,然后再电脑的linux下自己挂自己一下,看看是否能挂上,是不是nfs出了问题
自己挂自己用
mount -no lock 192.168.220.27:/home/fly/rootfs /mnt

如果自己挂自己成功了基本上挂载启动就不会出现什么问题了
4.关于 Permission denied 
如果挂载的斥候出现了这个问题,/etc/fstab 中加入 :
nfsd /proc/fs/nfsd nfsd auto,defaults 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs auto,defaults 0 0
然后,在终端输入mount -a,回车
再挂载试试
常用命令:重启nfs服务器 service nfs restart
 

阅读(1761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~