1. 程式人生 > >D-Chip i.MX6使用TFTP NFS方式掛載linux系統的方法

D-Chip i.MX6使用TFTP NFS方式掛載linux系統的方法

在除錯i.mx6專案的時候,官方給出的預設除錯方法為通過SD卡或者MFG tool工具來進行,並且通過MFG tool工具為主流推薦的方法。但是如果在系統rootfs比較大的時候,使用mfg tool工具進行燒寫可能會比較慢,下面的方法就是使用傳統的TFTP方法燒寫核心和掛載檔案系統的方法。(除錯平臺為珠海鼎芯的i.mx6開發板)

使用tftp前提條件為板子已經存在uboot,板子能夠跑起來並且進入uboot命令列,然後通過串列埠操作命令列:

通過tftp燒寫uImage:

1.進入uboot命令列下:

MX6Q SABRESD U-Boot > setenv bootargsconsole=ttymxc0,115200

MX6Q SABRESD U-Boot > setenv loadaddr0x10800000

MX6Q SABRESD U-Boot > setenv serverip 192.168.1.122  (根據自己的網路進行設定)

MX6Q SABRESD U-Boot > setenv bootfileuImage

### The user can set fake MAC address viethaddr environment if need設定mac地址

MX6Q SABRESD U-Boot > setenv ethaddr00:01:02:03:04:05

MX6Q SABRESD U-Boot > saveenv

2.把uImage檔案放到tftp伺服器目錄下(如ubuntu系統中的/home/usr/tftp),然後uboot命令列下執行:

MX6Q SABRESD U-Boot > dhcp

此時會自動把uImage從tftp伺服器下載到imx6的RAM中,等待下載完成

3.最後把uImage寫到板子上的eMMC中,uboot命令列執行:

MX6Q SABRESD U-Boot > mmc dev 3

MX6Q SABRESD U-Boot > mmc write ${loadaddr} 0x800 0x2000

做完以上步驟,uImage就燒寫完成了。

通過NFS方式啟動linux系統:

1.      uboot命令列中執行:

MX6Q SABRESDU-Boot > setenv ethaddr 00:01:02:03:04:05

MX6Q SABRESDU-Boot > saveenv

MX6Q SABRESD U-Boot > setenv serverip 192.168.1.122

MX6Q SABRESD U-Boot > setenv bootfile uImage

MX6Q SABRESD U-Boot > setenv nfsroot /data/rootfs_home/rootfs_mx6

MX6Q SABRESD U-Boot > setenv bootargs_base 'setenv bootargsconsole=ttymxc0,115200'

### For LVDS0 connection從LVDS0啟動

MX6Q SABRESD U-Boot > setenv bootargs_nfs 'setenv bootargs${bootargs} root=/dev/nfs ip=dhcp

nfsroot=${serverip}:${nfsroot},v3,tcpvideo=mxcfb0:dev=ldb,LDB-XGA,if=RGB666'

MX6Q SABRESD U-Boot > setenv bootcmd_net 'run bootargs_basebootargs_nfs;bootm'

MX6Q SABRESD U-Boot > setenv bootcmd

做完以上步驟,板子啟動的時候,就會通過nfs的方式把檔案系統掛載到板子上。