解决思路
使用TF卡启动,先在开发板正常运行的Ubuntu系统上正常安装软件,安装完软件以后,把TF卡里面的文件系统在Ubuntu上打包。最终在使用mfg或者tf烧写进开发板。
涉及到的知识:
1.TF卡启动。
2.编译Ubuntu文件系统。
3.TF卡烧写。
实验环境
开发环境:Ubuntu14
开发板:迅为imx6q工业级(迅为imx6系列开发板均可)
开发板底板版本:V2.6
开发板Ubuntu镜像:Ubuntu12(Ubuntu16也可以)
工具:
1.一张只有一个FAT32分区的TF卡,大小不超过32G。
2.读卡器一个。
3. imx6开机自动烧写镜像文档。
步骤一 TF卡启动
在 ubuntu 系统下插入 tf 卡,使用命令df -lh可以查看 tf 卡的设备节点以及挂在的目录,如下图所示:
我这里 tf 卡的节点是/dev/sdc1,挂载在/media/topeet/B93A-B93A目录(也有可能是 sdc,sdd 之类的,根据实际情况,目录也都不一样)。然后我们使用 umount 命令取消挂载umount /media/topeet/B93A-B93A/,如下图所示:
使用ls /sbin/mkfs*,假如我们的机器中没有/sbin/mkfs.fat”文件,则使用命令ln -s /sbin/mkfs.vfat /sbin/mkfs.fat,有的话,直接跳过这一步。
我的机器如下图所示:然后我们把开发板Ubuntu系统镜像和imx6开机自动烧写镜像文档里面的脚本拷贝到虚拟机Ubuntu。如下图所示:我们打开这个脚本,把分区改大一点,如下图所示:然后在当前目录下运行./mksdcard-android.sh -f /dev/sdc,注意sdc后面不要跟数字,这个脚本会给TF分区,烧写uboot,拷贝内核,如下图所示:拔下tf卡,重新插入到ubuntu系统下,输入命令df -lh,可以看到 tf 卡分区信息,以及挂载的目录,/dev/sdc5是文件系统的分区(有可能用户的盘符会是sda5 等等,请记住带有数字5的盘符是保存文件系统的)如下图所示:然后我把Ubuntu的系统镜像解压到5这个分区,最好是先把镜像拷贝到这个分区,在解压。然后拔下TF卡,给开发板拨成TF卡启动,以imx6q为例,拨码1和7,拨到 ON,其余的拨到 OFF,然后插入TF卡,给开发板 上电,Ubuntu系统就会从TF启动。
步骤二 安装软件安装软件我们直接使用apt-get命令就可以了,比如我们这里安装minicom 。如下图所示:
打包文件系统我们把TF卡拔下来,连接到Ubuntu上,在进到文件系统系统的分区,然后使用命令tar -czvf iMX6_ubuntu_12.04.tgz ./* 打包我们安装好软件的文件系统,打包成功如下图所示:
烧写测试我们把打包好的文件系统放在烧写工具里面,然后烧写测试,烧写成功以后,我们使用命令minicom -s 打开串口软件,如下图所示:
这样我们做好的文件系统就有这个软件啦,
其实步骤不是太重要,重要的是解决这个问题的思路,希望对大家有所启发,更多关注公众号:迅为电子