可编程逻辑
#前段时间在做zynq702评估的时候,提出了一种省事的制作和修改根文件系统的方法:
#用dd命令将官方uramdisk-----》ramdisk
#或者直接用官方的ramdisk ,解压后得到ramdisk.image
#1.将ramdisk 挂载到/mnt下
$mount ramdisk.image /mnt
#2.同步到/nfsroot下
$sudo rsync -a /mnt /nfsroot
#这样就可以通过nfs网络文件系统做开发了,但是最近发现了一个问题,就是官方给的文件系统,加载完之后,
#想去看/proc下的cpuinfo时, $cat /proc/cpuinfo 无任何反应,ls /proc 发现没有任何东西,这个显然是有问题的,
#理由是:proc文件系统是用来提供内核和进程信息的虚拟文件系统,使用内核自动生成的文件,加载完成一定要能查到很多信息才对。
#同样的利用这个nfs去开发内核驱动的时候,发现:利用 insmod XXX.ko可以正常插入内核模块,但是lsmod,
#和rmmod都出现了问题,提示/proc下缺东西,/lib/modules下缺东西
解决方法:
#proc文件系统必须要跟访问其他文件系统一样,需要先挂载。挂载方法:mount -t proc none /proc
#我们可以在加载文件系统初始化过程让他自动挂载
$vim /nfsroot/etc/init.d/rcS
#在文件末尾加入:
mount -t proc none /proc
#解释:/proc作为虚拟文件系统,不与任何物理的设备对应,用none 与之配合,加入要挂载物理的设备,则为
#mount -t ext4 /dev/mmcblk0p2 /proc ,这是他们的差别
#验证:重启开发板
$ls /proc
#你会看到你想要的内容了
#还有一个rmmod,提示缺少/lib/modules文件还是什么的,具体记不清了大致就是这个意思。
#原因是在lib/modules下缺少对应你内核版本的文件,只需启动开发板后,输入指令:
$mkdir /lib/modules/$(uname -r)
#这时再去看/lib/modules/下会出现一个对应你内核版本的文件夹,再去做内核模块驱动的加载删除
#查看就ok了
全部0条评论
快来发表一下你的评论吧 !