首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在ZC702上运行Linux(6) - 建立基于tftp和nfs的开发环境

在ZC702上运行Linux(6) - 建立基于tftp和nfs的开发环境

1. 修改u-boot,用tftp加载kernel和device tree,用nfs加载rootfs修改include/configs/zynq_zc70x.h中的IP Address的配置为需要的值/* Default environment */#define CONFIG_IPADDR   10.10.70.102#define CONFIG_SERVERIP 10.10.70.101 修改include/configs/zynq_common.h中关于sdboot的配置为    "sdboot=echo Copying Linux from tftp to RAM...;" \       "tftp 0x3000000 ${kernel_image};" \       "tftp 0x2A00000 ${devicetree_image};" \       "bootm 0x3000000 0x2000000 0x2A00000\0" \ 说明:board/Xilinx/zynq_common/board.c/board_late_init()会去读取Address= 0xF800025C的BOOT_MODE寄存器,然后生成u-boot下环境变量modeboot。注意:Devicetree的地址是bootm的第三个参数,所以用bootm启动时第二个参数(ramdisk的地址)就不能少。如果不加载ramdisk,就会出现ramdisk校验问题。所以现在还要做一次无用的ramdisk加载,以骗过bootm。 确认内核里面已经包含NFS Client的支持File Systems->Network File SystemsFile Systems->Network File Systems->NFS Client supportFile Systems->Network File Systems->NFS Client support-> NFS Client support for NFS version 3File Systems->Network File Systems->Root file system on NFS 加载后发现rootfs还是在ramdisk上,在shell里面测试nfs,发现有问题~ # mount -t nfs 192.168.1.20:/nfsroot ramdisk/svc: failed to register lockdv1 RPC service (errno 111).mount: mounting 192.168.1.20:/nfsroot on ramdisk/ failed: Connection refused~ # mount -o nolock 192.168.1.20:/nfsroot ramdisk/~ # ls ramdisk/bin      etc      linuxrc  opt      root     sys      usrdev      lib      mnt      proc     sbin     tmp      var~ # df -hFilesystem                Size      Used Available Use% Mounted on/dev/root.old             7.7M      7.0M    768.0K  90% /none                    504.5M         0    504.5M   0% /tmp192.168.1.20:/nfsroot/                         28.3G      4.7G     22.2G  17% /root/ramdisk~ # 注意:需要加一个-o nolock才可以mount上nfs 因此修改device tree里面的bootargs为console=ttyPS0,115200  ip=192.168.1.10 root=/dev/nfs rw nfsroot=192.168.1.20:/nfsroot,nolock  earlyprintk 结果发现rootfs还是在ramdisk上,原来ramdisk的优先级高于nfs 继续修改device tree里面的bootargs为noinitrd console=ttyPS0,115200  ip=192.168.1.10 root=/dev/nfs rw nfsroot=192.168.1.20:/nfsroot,nolock  earlyprintk 至此终于把nfs mount上了。 来源:赛灵思中文社区论坛
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表