我是靠谱客的博主 重要柜子,最近开发中收集的这篇文章主要介绍将MfgTool工具改造为自己的烧写工具,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以前通过MfgTool工具烧写,都是讲自己的文件名改成和官方要求的烧写文件名。这样虽然能烧写,但是终于不是真正意义上自己的烧写。

那么能不能将MfgTool工具改造为烧写自己的文件名呢?当然是可以的,下面就开始将MfgTool工具改造为真正属于自己的烧写工具。

目录

给自己的烧写文件命名

新建vbs脚本

添加自己的烧写文件

删除无关文件

开始烧写

设置网络相关环境变量

设置环境变量bootcmd 和 bootargs

源码中直接修改设备树名称

设置环境变量

​手动配置网卡

  设置开机自动配置网络


 

给自己的烧写文件命名

  将烧写文件按照自己的需求进行命名。

 

将这四个文件名重命名为

 

在这四个文件名里面都添加上mylinux-emmc名称。代表这个是自己的linux开发板,EMMC版本的。

新建vbs脚本

复制一份官方MfgTool工具

然后在复制一份vbs文件,重命名为自己的名字。

 

 

由于其他的烧写脚本用不到,所以可以将其他的烧写脚本删除掉。

其他用不到的文件夹也可以删掉比如Document文件夹、More_scripts文件夹

 

下面要将vbs脚本中的变量重命名为自己的文件名。

脚本中的内容可以修改也可以不修改,因为在ucl2.xml文件中,会将用到的变量直接写死。

修改 ucl2.xml 文件

进入到mfgtoolsProfilesLinuxOS Firmware文件夹中,将原来的ucl2.xml备份一下,然后修改ucl2.xml中的内容。

 

打开ucl2.xml文件,修改里面的内容。

 

可以看到这个文件中的内容非常都,但是有好多内容都是用不上的。这里只保留SDCard和eMMC内容,其他的都可以删掉。

 

下面开始修改eMMC选项中的内容

 

可以看到这个里面的 CMD 命令也有好多,但是许多命令都是重复的,指示单片机的型号不一样,这里将除了6ULL型号以外的其他型号的CMD命令删除掉。

在删除的时候要注意<CMD 和</CMD> 之间是一组命令。不要删错了。

将CMD之间 ifdev的值不等于“MX6ULL”的其他单片机型号命令删除掉。

删除完成后如下:

 

删除其他型号的命令后,代码就少了很多。

接下来需要CMD里面的变量全部替换为固定的文件名。

比如*.imx ,*.dtb 等这些文件名,直接用自己的文件名去替换。

替换完成后如图

添加自己的烧写文件

将自己准备好的文件复制到firmware和files文件夹中。

将imx6ull-mylinux-emmc.dtb、u-boot-mylinux-emmc.imx、zImage-mylinux-emmc这三个文件复制到firmware文件夹中。

将4个文件全部复制到files文件夹中

 

删除无关文件

由于烧写软件中好多文件都是给其他开发板用的,自己的烧写工具,就不需要考虑其他板子的适配了。所以就可以将自己用不到的文件删除掉。

打开mfgtoolsProfilesLinuxOS Firmware文件夹,将用不到的压缩包删掉。

删除后如下

进入files文件夹中删除不需要的文件

进入firmware文件夹中,删除不需要的文件。

开始烧写

下面就可以开始用改造后的工具,烧写自己的系统了。

将开发板拨码开关拨到USB模式,给开发板上电。

双击mfgtool2-mylinux-emmc.vbs 烧写脚本,开始烧写系统。

单机Start按钮,开始烧写。

耐心等待烧写完成。

烧写完成后,单击Stop按钮停止烧写,单击Exit按钮退出软件。

将开发板上拨码开关拨到EMMC模式,按下复位按钮。

设置网络相关环境变量

要重新设置网络相关的环境变量。

192.168.1.50是开发板的IP地址,192.168.1.66是Ubuntu的IP地址。

复位开发板

重新启动后出现了一个错误

不能够打开imx6ull-14x14-evk.dtb文件。

这是因为烧写的设备树文件和默认的设备树文件名不一样,所以要重新设置环境变量。

复位开发板进到命令模式

然后查看mmc分区中的文件列表

输入命令:

       mmc dev 1

ls mmc 1:1

首先切换到MMC中,然后显示MMC中的文件列表。

设置环境变量bootcmd 和 bootargs

接下来还需要设置两个环境变量,bootcmd 和 bootargs。

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw' setenv bootcmd 'mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000 imx6ull-mylinux-emmc.dtb;bootz 80800000 - 83000000;'

saveenv

设置好环境变量之后,复位开发板,重新启动。这时候系统就可以进去了。

每次重新烧写系统后,设备树的名称就会被恢复为默认的名称,能不能直接将自己的设备树名称写入系统中,这样重新烧写系统后,就不用重新设置设备树名称了。当然是可以的。

源码中直接修改设备树名称

打开Ubuntu系统,进入到uboot源码目录中

打开include/configs 文件夹

打开头文件 mx6ull_myuboot_emmc.h

在190行左右 findfdt 就是用于确定设备树文件名字的环境变量,fdt_file 环境变量保存着设备树文件名。

修改这段代码,将设备树名称改为imx6ull-mylinux-emmc.dtb

将原来的判断语句直接删掉,将设备树名称写死。

修改完成之后,重新编译uboot。

将重新生成的u-boot.imx复制到Windows中,替换烧写文件,然后重新使用MfgTool工具烧写。

烧写完成后启动系统

这时候就可看到直接读取的设备树文件名就是 imx6ull-mylinux-emmc.dtb



这时候系统就可以直接进去了。

设置环境变量

接下来还需要设置环境变量,按照上面的方法设置环境变量。

复位开发板,重启系统。

手动配置网卡

进入系统后输入ifconfig -a 命令查看当前网卡。

使用命令打开网络

输入 ifconfig eth0 up

输入命令后等待网络设备的加载

加载完成后使用命令再次查看一下网络

开发板使用的是eth0口,现在需要设置一下这个网口的IP地址。

输入命令设置IP地址和子网掩码

ifconfig eth0 192.168.1.50 netmask 255.255.255.0

输入命令添加默认网关

route add default gw 192.168.1.1

使用ifconfig命令查看网络

使用ping命令测试开发板和电脑连接是否成功。

开发板和主机网络连接成功。

  设置开机自动配置网络

但是这样设置的网络不会保存,重新开机后设置的网络就会丢失,需要重新设置一次。

为了方便操作,可以将网络设置的命令直接添加到系统中,每次开机后让系统自动配置网络。

只需要将设置命令添加到/etc/init.d/rcS 文件中就行了。

在串口终端中进入/etc/init.d文件夹

使用vi 命令打开 rcS文件

在文件中添加网络设置命令

Vi编辑器里面汉字显示不出来 那些小点就是汉字写的注释,这里看不到,不过没关系。不影响正常功能的使用。

打开eth0网卡

通过路由器自动获取IP地址

手动设置IP地址和子网掩码

手动添加网关

这里设置开发板的默认IP地址为192.168.1.50

设置完成后重启开发板

启动成功后输入ifconfig命令查看IP。

这时可以看到IP地址已经被系统自动设置好了。

到这里系统已经可以正常运行了。

最后

以上就是重要柜子为你收集整理的将MfgTool工具改造为自己的烧写工具的全部内容,希望文章能够帮你解决将MfgTool工具改造为自己的烧写工具所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部