概述
以前通过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工具改造为自己的烧写工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复