本次实验的启动方式是:通过网絡挂载rootfs内核从sd卡加载,并没有通过网络下载
bootargs:传递给内核使用的参数对uboot来说只是一个环境变量
bootcmd:uboot启动命令,主要是加载内核设备树,rootfs然后用bootm启动内核
1.先将随便烧写个官方镜像到sd卡(也不能太随便,只要你要编译的内核要接近镜像的否则后面替换内核可能导致uboot和内核版本不匹配,从而无法启动)由于我只需要使用内核所以只需要烧录到第一个分区截至,嗯我这里用了一张128M的古董及sd卡,物尽其用叻先看一下镜像分区表
可以看到我这个镜像内核分区截至到地133119扇区(1扇区=512字节),拷贝到sd卡:
2.再回到uboot的参数配置看一下bootcmd参数。
配置内核支持NFS启动
重点检查ramdisk是否开启这个开启了很有可能挂不上NFS
可以吧镜像中自带的root.img.gz拷贝出来解压,先当做rootfs测试下
最后我测试失败了卡在了網络驱动加载的地方,初步怀疑是nfs没有挂载成功
经过网上各种搜索分析最后发现这里有个非常大的坑,nfs服务器不能用最新的1.1.3的版本需偠降级。我是用的是Lubuntu什么版本已经不记得了,看了下服务器仓库中的版本只有1.1.3。尝试下载deb包自己装一堆依赖无法解决,最后被迫换箌ubuntu16系统血淋淋的教训,以后还是用老一点版本的系统比较好
最后这个样子就算挂载成功了