移植原厂的uboot,在根目录下建立一个mx6ull_alientek_emmc.sh的shell脚本,用于编译uboot:
#!/bin/bash make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
编译指令:
chmod 777 mx6ull_alietek_emmc.sh
./mx6ull_alientek_emmc.sh
编译成功后将u-boot.bin 烧写到 SD 卡
烧写指令:
./imxdownload u-boot.bin /dev/sdb
2.加载镜像和设备树在加载之前要保证电脑,虚拟机,开发板处于同一网段下。
设置开发板的网络环境:
env default -a;saveenv setenv ipaddr 192.168.10.50 setenv ethaddr 88:ed:71:b7:a6:41 setenv gatewayip 192.168.10.1 setenv netmask 255.255.255.0 setenv serverip 192.168.10.100 saveenv
开发板IP:192.168.10.50
虚拟机IP:192.168.10.100
电脑网口IP:192.168.10.100
设置环境变量 bootcmd 来挂载 tftp 目录下的内核、设备树文件到开发板内存中
设置bootcmd指令:
setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv
注:bootz 中的-符号是英文的,两边各有一个空格。要确保虚拟机tftp目录下有镜像和设备树
3.加载根文件系统设置环境变量 bootargs 来挂载 nfs 共享目录下的 rootfs 文件系统到开发板内存中
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.10.100:/home/xiaochao/Linux/nfs/rootfs,proto=tcp rw ip=192.168.10.50:192.168.10.100:192.168.10.1:255.255.255.0::eth0:off'
saveenv
格式参考: setenv bootargs 'console=开发板串口,波特率 root=挂载方式 nfsroot=虚拟机 IP 地址:文件系统路径,proto=传输协议 读写权限 ip=开发板 IP 地址:虚拟机 IP 地址:网关地址:子网掩码::开发板网口:off'
结果: