Xlinx-Zedboard使用NFS掛載根檔案系統
安裝nfs-kernel-server和tftpd-hpa服務
有安裝包情況下 sudo dpkg -i *.deb
建立共享目錄tftpboot
1.sudo mkidr /tftpboot
2.sudo chmod 777 /tftpboot
3.sudo chown ictd /tftpboot
4.sudo chgrp ictd /tftpboot
新增tftp配置服務
sudo vim /ect/default/tftpd-hpa
將TFTP_DIRECTORY=”/var/lib/tftpboot”修改成”/tftpboot”
重啟tftp服務
sudo /ect/init.d/tftpd-hpa restart
配置掛載目錄和許可權
sudo vim /ect/exports/
新增/opt/rootfs *(rw,sync,no_subtree_check,no_root_squash)
其中/opt/rootfs裡面放置自己編譯好的根檔案系統檔案
重啟NFS服務
sudo /ect/init.d/nfs-kernel-server restart
配置u-boot
uboot啟動時顯示自己的名字
修改./configs/zynq_zed_defconfig中CONFIG_SYS_PROMPT=” ”
“ ”裡面可設定成自己的名字
修改 ./include/configs/zynq_zed.h 本次未做任何修改
修改 ./inlcude/configs/zynq-common.h
/*default environment*/
#define CONFIG_IPADDR 192.168.1.10//設定成自己的
#define CONFIG_SERVERIP 192.168.1.50//設定成自己的
重新編譯執行生成新的u-boot
配置kernel
1.修改核心支援NFS
Networking support
-->Networking options
-->TCP/IP networking
-->IP:kernel level autoconfiguration
File systems
-->Network File System
-->NFS client support
-->Root file system on NFS
2.去掉系統支援掛載ramdisk(一直由於這個問題,導致NFS掛載不上)
General setup
-->Initial RAM filesystem and RAM disk(initramfs/initrd) support//去掉
Device Drivers
-->Block devices
-->RAM block device support
3.重新編譯執行生成新的uImage
配置bootargs
修改核心目錄下 arch/arm/boot/dts/zynq-zed.dts
修改裡面chosen 中的bootargs,改成如下引數
bootargs = “noinitrd console=ttyPS0,115200 root=/dev/nfs nfsroot=192.168.1.50:/opt/rootfs ip=192.168.1.10:192.168.1.50:192.168.1.1:255.255.255.0::eth0:off,nolock earlyprintk”
重新使用如下命令生成新的devicetree.dtb
./scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb arch/arm/boot/dts/zynq-zed.dts
啟動開發板,進入uboot
拷貝:uImage devicetree.dtb 到/tftpboot目錄
進入uboot後,輸入run jtagboot命令,即可成功掛載根檔案系統