1、WSL下i.MX6ULL嵌入式linux学习笔记--uboot烧录

uboot解压缩

$ tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

windows下直接复制文件导致的Premission denied 问题,直接给予文件夹最高权限

$ chmod -R 777  <floder name>

编译(512MB DDR3 + 8GB EMMC)

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
$ make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

在ubuntu子系统下烧写sd卡遇到问题:/dev下找不到sd卡,可能ubuntu子系统是借助windows挂载的硬盘。

执行imxdownload发现正常生成load.imx,于是查看imxdownload源码,发现原因是找不到sd卡的话dd命令无法顺利使用。遂发现居然有dd for windows这种神奇的东西。网址如下。

wchrysocome.net - dd for windows

于是欣然修改源码并编译,制作imxdownload4wsl,放弃烧写的部分,只制作load.imx文件,修改部分如下图

 将imxdownload4wsl拷贝至ubuntu子系统工作目录,执行

$ chmod 777 imxdownload4wsl
$ chmod 777 dd.exe
$ ./imxdownload4wsl uboot.bin

这样就生成了load.imx文件

再查看sd卡的挂载情况:

$ ./dd.exe --list

得到

于是输入命令

$ ./dd.exe if=load.imx of=\\\\?\\Device\\HarddiskVolume14 bs=512 seek=2

 得到报错,但经过查看文件已烧录成功。

随后插入sd卡至6ull开发板,查看SecureCRT发现可以正常使用。

但是每次都需要查询windows硬盘挂载的位置,就不太方便。如果能直接确定硬盘会挂载到某个盘符,如我的电脑中下一个盘符是D:,则可以直接输入

$ ./dd.exe if=load.imx of=\\\\.\\d: bs=512 seek=2

于是修改imxdownload源文件

 重新编译得到新的imxdownload4wsl文件,拷贝至linux工作目录。今后的烧录流程:先确保dd.exe 和 imxdownload4wsl 正常获得了权限,并且uboot.bin已经编译得到。确保sd卡插入并且挂载至了D盘(这里非常重要,d盘会直接格式化,一旦挂载的是有用的u盘什么的就麻烦了)。然后运行

$ ./imxdownload4wsl uboot.bin

 就可以完成烧录。


版权声明:本文为shzhdaa3原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。