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的方式把檔案系統掛載到板子上。