linux入门小白,差点从入门到放弃了,还好这几个月的实习生活带来的启示是,遇见的bug总会解决的,无非就是时间的问题,而后也变得越来越相信自己了,回归正题:
使用的开发板:imx6ull , uboot,设备树都是使用的nxp的,进行了修改,根文件系统使用的是busybox
问题产生概述:(大概就是停在了starting kernel)
每个人产生问题的原因不同,我的就是修改网络启动变成emmc启动之后,内核运行不了了。emmc里面放的是正点原子给的镜像和设备树,所以理论上是不会有问题的,但是还是启动不了。这个时候我就有了以下的怀疑过程(至于为什么没有用网上那些方式,原因是1.我可能制造不出那么复杂的问题,2.我只是换了一种启动方式才出现的问题):
猜测1:板子问题,然后就用mfgtool烧录了官方的uboot、zImage、dtb、根文件系统。使用mfgtool的方法这里也记录一下吧,使用拨码开关将板卡的启动模式设置到usb启动模式,将usb线连接到usb_OTG接口,打开mfgtool的mfgtool2-yocto-mx-evk-emmc.vbs(emmc烧录脚本)。出现如下界面表示连接成功。然后点击start。
直接这样烧录的是nxp官方的uboot、zImage、dtb、根文件系统,如果要使用自己修改的,则将自己的uboot、zImage、dtb、根文件系统改成如下名字:
将zImage、 u-bootimx6ull14x14evk_emmc.imx 和 zImage-imx6ull-14x14-evk-emmc.dtb 这三个文件拷贝到 mfgtoolswith-rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware 目录中,替换原来的文件。将所有的4个文件拷贝到mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/files中,替换原来的文件。这样子就可以烧写自己的了。
(猜测1下,板卡运行正常,能够成功启动内核所以不是板子的问题)。
猜测2:设备树问题,根文件系统问题,然后我又用全新的设备树,结果也是不能启动,既然全新的都不能启动,说明不是这两个的问题,其实我也不应该怀疑是这俩的问题。(因为刚开始我用emmc启动方式,使用没有修改过的镜像和设备树也不能启动。)
猜测3:最后只能怀疑我从开始移植到现在从来没有动过的uboot的问题了,其实不想怀疑,因为我根本没有动过,但是实在没办法了,最后我用mfgtool的工具,uboot用的是nxp官方没有修改过的,根文件系统、设备树、镜像用的自己的,然后然后成功了。我又把uboot换成原始自己的,不能启动了,最后确定了是uboot的问题。
现在知道原因了,因为mmc的0分区被擦除了,然后没有uboot引导,现在重新烧录一遍uboot,问题解决的。
重新再整理一遍uboot烧录方法吧。