原地址
http://blog.163.com/thinki_cao/blog/static/83944875201439112133825/
这部分的内容针对大部分运行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)