这部分的内容针对大部分运行Linux的嵌入式系统来说都是通用的。关于在PC端设置TFTP和NFS服务器的内容,请参考下面这篇博客:
zed-boot> printenv baudrate=115200 bootcmd=run modeboot bootdelay=3 ethact=zynq_gem ethaddr=00:0a:35:00:01:22 ipaddr=192.168.1.10 jtagboot=echo TFTPing Linux to RAM...;tftp 0x8000 zImage;tftp 0x1000000 devicetree.dtb;tftp 0x800000 ramdisk8M.image.gz;go 0x8000 kernel_size=0x140000 modeboot=run sdboot qspiboot=sf probe 0 0 0;sf read 0x8000 0x100000 0x2c0000;sf read 0x1000000 0x3c0000 0x40000;sf read 0x800000 0x400000 0x800000;go 0x8000 ramdisk_size=0x200000 sdboot=echo Copying Linux from SD to RAM...;mmcinfo;fatload mmc 0 0x8000 zImage;fatload mmc 0 0x1000000 devicetree_ramdisk.dtb;fatload mmc 0 0x800000 ramdisk8M.image.gz;go 0x8000 sdboot_linaro=echo Copying Linux from SD to RAM...;mmcinfo;fatload mmc 0 0x8000 zImage;fatload mmc 0 0x1000000 devicetree_linaro.dtb;go 0x8000 serverip=192.168.1.50 stderr=serial stdin=serial stdout=serial Environment size: 861/65532 bytes
echo Copying Linux from SD to RAM...;打印echo后面的文字mmcinfo ;显示mmc信息fatload mmc 0 0x8000 zImage ;加载fat文件系统根目录下的zImage文件到内存0x8000开始处fatload mmc 0 0x1000000 devicetree_ramdisk . dtb ;加载fat文件系统根目录下的devicetree_ramdisk.dtb文件到内存0x1000000fatload mmc 0 0x800000 ramdisk8M . image . gz ;加载fat文件系统根目录下的 ramdisk8M . image . gz 文件到内存0x800000go 0x8000CPU的PC指针跳转到内存0x8000开始执行(也就是开始内核起始地址)
echo TFTPing Linux to RAM ...;tftp 0x8000 zImage ;tftp 0x1000000 devicetree . dtb ;tftp 0x800000 ramdisk8M . image . gz ;go 0x8000
sudo service tftpd-hpa restart
zed - boot > setenv serverip 10.10 . 143.230zed - boot > setenv ipaddr 10.10 . 143.101zed - boot > setenv netmask 255.255 . 255.0zed - boot > ping 10.10 . 143.230Trying to set up GEM link ...Phy ID : 01410DD1Resetting PHY ...PHY reset complete .Waiting for PHY to complete auto - negotiation ...Link is now at 100Mbps !Using zynq_gem devicehost 10.10 . 143.230 is alive
zed-boot>run jtagbootTFTPing Linux to RAM... Using zynq_gem device TFTP from server 10.10.143.230; our IP address is 10.10.143.101 Filename 'zImage'. Load address: 0x8000 Loading: ################################################################# ################################################################# ###################################################### done Bytes transferred = 2695640 (2921d8 hex) Using zynq_gem device TFTP from server 10.10.143.230; our IP address is 10.10.143.101 Filename 'devicetree.dtb'. Load address: 0x1000000 Loading: # done Bytes transferred = 6161 (1811 hex) Using zynq_gem device TFTP from server 10.10.143.230; our IP address is 10.10.143.101 Filename 'ramdisk8M.image.gz'. Load address: 0x800000 Loading: ################################################################# ################################################################# ################################################################# ######################################################### done Bytes transferred = 3694108 (385e1c hex) ## Starting application at 0x00008000 ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0
./linux-digilent/scripts/dtc/dtc -I dts -O dtb -o devicetree_ramdisk.dtb devicetree_ramdisk.dts
…………………………………………[ 1.450000 ] No soundcards found .[ 1.460000] VFS: Mounted root (nfs filesystem) on device 0:11.[ 1.470000 ] Freeing init memory : 152K……………………………………
ifconfig eth0 downifconfig eth0 192.168 . 1.10 up
………………[ 1.390000] VFS: Mounted root (nfs filesystem) on device 0:11.
[ 1.400000] devtmpfs: mounted[ 1.400000] Freeing init memory: 152KStarting rcS...++ Mounting filesystem++ Setting up mdev++ Configure static IP 192.168.1.10[ 11.020000] nfs: server 10.10.143.230 not responding, still trying
原因很简单,修改了IP,nfs server当然不响应了。如果在启动过程中虽然成功挂载了nfs,但是却出现了下面这些:
mdev: can't create 'ram0': Operation not permitted……………………mdev: can't create 'loop0': Operation not permitted……………………mdev: can't create 'ram10': Operation not permitted……………………
/zynq/rootfs *(rw,sync,no_subtree_check,no_root_squash)