琢磨了一个下午,终于理解了uboot启动精妙之处!今天我真正实现了nfs一键启动Linux(板子:Tiny6410)
这次实验源于我的nand flash有坏区,烧写根文件系统时总是会出现有些块被skip掉(还有烧写超过125M的大文件系统总是烧写到一半就停掉,还在nand flash首部分没有坏掉)。
步骤:
1,、搭载nfs服务器,把光盘的根文件系统rootfs压缩包解压到一个特定区域,譬如我的是/opt/rootfs,然后配置exports文件添加/opt/rootfs *(rw,sync,no_root_squash)一行,再重启nfs服务。
2、保证你的板子ip地址与服务器地址处于同一个网段,我的服务器地址192.168.1.111,板子地址是192.168.1.70。
3、拷贝zImage_n43(光盘自带)到一个特定目录下,为了方便,我放在了/opt/rootfs/root/下。
4,、连接终端,给板子上电,停留到uboot菜单界面,按q进入shell命令行格式,输入命令setenv bootcmd nfs c0008000 192.168.1.111:/opt/rootfs/zImage_n43 /; bootm c0008000,再saveenv一下。
5、重启板子,可看到终端出现载入系统映像的过程。
由于时间问题,我没有上图。
这个方法真的不错,可以在不把系统映像烧写到nand flash的情况下启动Linux,当然根文件系统就更不用说了,当我们的nand flash不够用时,网络可以帮助我们。
至于基于Android的Linux有些不一样,我正在研究,希望有经验的童鞋给点提示。