前面uboot和kernal都搞好了,就准备弄一下rootfs。过程不细说了,使用buildroot生成比较简单:下载,解压,make menuconfig,make,四部就出来了。
然后我把生成的rootfs.tar.gz拷贝到原来的rootfs目录下,解压,启动。结果报错,如图1。
上网查了很久,有的说是编译的模式不对,应该用mdev,不能用uedev;有的说是kernal配置不对,应该是auto mount ramfs选上;有的说是编译时用户不对。总之这几种方式我都试了,都不行。
讨论群里高手说大概率是inird的问题,也就是启动时加载的ramfs可能配置的不对。我查了orangepi官方系统的脚本。这个initrd.img是现成的,生成系统镜像时是直接拷贝进去的。我也不会改。
最后经高手指点,可以再启动时不加载ramfs,直接加载rootfs。所以在kernal的配置里,把Initial RAM silesystem and RAM disk这项关了,如图2所示。居然成功了。