1:uboot中的网络操作;

设置开发板环境变量,确保开发板IP地址与电脑IP地址在同一个网段,可以用ping命令来验证网络是否连

setenv ipaddr 192.168.2.222

setenv ethaddr 00:04:9f:04:d2:35

setenv gatewayip 192.168.2.1

setenv netmask 255.255.255.0

setenv serverip 192.168.2.220

saveenv

2:NFS命令:

通过NFS下载内核在板子DRAM的 0X80800000地址处

nfs 80800000 192.168.1.250:/home/wangxiao/linux/nfs/zImage

3:TFTP命令

服务器。因此需要在 Ubuntu上搭建 TFTP服务器 服务器 , 需要安装 需要安装 tftp-hpa和 tftpd-hpa

sudo apt-get install tftp-hpa tftpd-hpa

mkdir /home/zuozhongkai/linux/tftpboot

chmod 777 /home/zuozhongkai/linux/tftpboot

最后配置 tftp,打开文件 安装完成以后新建/etc/xinetd.d/tftp,然后在里面输入如下内容:

4.MMC命令

mmc dev命令用于切换当前 MMC设备,命令格式:mmc dev [dev] [part];

eg: mmc dev 0 //切换到 SD卡, 0为 SD卡, 1为 eMMC

mmc part 来查看其分区,比如 ”来查看其分区,

如何查看uboot中nfs的版本_环境变量


从图 30.4.5.6中可以看出,此时 EMMC有两个分区 ,20480~1024000为第一个分区, 扇区 1228800~6504448为第二个分区。

一般第0分区存放uboot,第一分区存放内核镜像与设备树,第二分区存放根文件系统,图中只有两个分区,是因为第0分区没有被 格式化所以,识别不出来,但是第0分区是存在的。一个新的SD卡默认只有一个分区,Linux移植内核与文件系统的时候需要将SD卡进行格式化分区。

eg: mmc dev 1 2 切换到MMC的第二分区

要将数据写到MMC设备里面,可以使用命令mmc write,

mmc write addr blk# cnt

addr是要写入 MMC中的数据在DRAM的起始位置,blk是要写入MMC的块起始地址(16进制),cnt要写入的数据的块数,

5.更新在SD中启动的uboot版本

使用 tftp命令将其下载到 0x80800000地址处,命令如下: tftp 80800000 u-boot.imx

切换到SD卡的第0分区,命令如下:mmc dev 0 0

可以看出, u-boot.imx大小为 416768字节,416768/512=814,一共814(0x32E)个块,命令如下:mmc write 80800000 2 32E

千万不要写 SD卡或者 EMMC的前两个块 (扇区 ),里面保存着分区表!

6. .更新在EMMC中启动的uboot版本

使用 tftp命令将其下载到 0x80800000地址处,命令如下: tftp 80800000 u-boot.imx

切换到EMMC的第0分区,命令如下:mmc dev 1 0

可以看出, u-boot.imx大小为 416768字节,416768/512=814,一共814(0x32E)个块,命令如下:mmc write 80800000 2 32E

千万不要写 SD卡或者 EMMC的前两个块 (扇区 ),里面保存着分区表!

7.FAT格式文件系统操作命令

1)fatinfo命令用于查询指定MMC设置指定分区的文件系统信息,格式如下:fatinfo [<dev[:part]>]

比如查看MMC分区1的文件系统信息,命令如下:fatinfo mmc 1:1

2) fatlsfatls命令用于查询 FAT 格式设备的目录和文件信息,命令如下: fatls [<dev[:part]>] [directory]

比如查询EMMC分区 1中的所有目录和文件,输入命令: fatls mmc 1:1

3) fatload命令用于将指定的文件读取到 DRAM中,命令格式如下: fatload [<dev[:part]> [ [ [bytes [pos]]]]]

比如将EMMC分区 1中的 zImage文件读取到DRAM中的 0X80800000地址处,命令如下:fatload mmc 1:1 80800000 zImage

4)fatwirte命令用于将将 DRAM中的数据写入到MMC设备中,命令格式如下: fatwrite <dev[:part]>

比如使用fatwirte命令将内核镜像写入到 EMMC的 分区 1中,命令如下: fatwrite mmc 1:1 80800000 zImage 0x5c2720

比如使用fatwirte命令将设备树文件写入到 EMMC的 分区 1中,命令如下: fatwrite mmc 1:1 83000000 zImage 0x5c2720

8.boot命令是用来启动Linux系统的,只是 boot会读取环境变量来启动 Linux系统

1)比如我们要想使用 tftp命令从网络中启动 Linux系统,命令如下:

setenv bootcmd ‘tftp 80800000 zImage; tftp 83000000 imx6ull-wx-emmc.dtb; bootz 80800000 - 83000000’

saveenv

boot

2)比如我们要EMMC中启动 Linux系统,命令如下:

setenv bootcmd ‘fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull_wx_emmc.dtb; bootz 80800000 - 83000000’

saveenv

boot

9.run命令最大的作用在于运行我们自定义环境变量。

比如定义mybootemmc表示从 emmc启动;定义mybootnand表示从nand启动;定义mybootnet表示从net启动;

setenv mybootemmc ‘fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000’

setenv mybootnand ‘nand read 80800000 4000000 800000;nand read 83000000 6000000 100000;bootz 80800000 - 83000000’

setenv mybootnet ‘tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000’ saveenv

创建环境变量成功以后就可以使用run来实现不同的启动了。

run mybootemmc 或 run mytoobnand 或 run mybootnet

10.从EMMC中启动文件系统

setenv bootargs ‘cnotallow=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw’

11.通过NFS启动文件系统

setenv bootargs ‘cnotallow=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.2.220: /home/wx/linux/nfs/rootfs ip=192.168.1.251:192.168.1.250:192.168.1.1:255.255.255.0::eth0: off’