nfs 启动linux

最近在研究gcc 本身-pg + gprof的热点分析支持,可析我们开发板的uclibc不支持此选项,于是产生更换uclibc为glibc的想法,由于以前自己未曾构建过根文件系统,为了避免一次一次的写FLASH,决定使用nfs rootfs启动.

首先内核加入选项

Root file system on nfs

编译内核

使用命令mkimage -A arm -T kernel -C none -a 0xe0800000 -e 0xe0800000 -n hilinux -d arch/arm/boot/zImage kernel 构建内核镜像

然后把当前目录中的kernel拷贝到/srv/tftp我的tftp服务目录中

使用如下参数启动(uboot下面)

setenv bootargs mem=200M console=ttyAMA0,115200 root=/dev/nfs rw nfsroot=192.168.50.54:/opt/rootfs_test/,nolock ip=192.168.50.253:192.168.50.54:192.168.50.1:255.255.255.0::eth0: pcimod=host pciclksel=1 mac=00:11:22:33:44:55
setenv ipaddr 192.168.50.253
setenv serverip 192.168.50.54
tftp 0xe4000000 kernel;bootm 0xe4000000

大概解释

[板子IP] [NFS服务端IP] ·[网关] [子网掩码]

ip=192.168.50.253:192.168.50.54:192.168.50.1:255.255.255.0::eth0:

提示eth0不能被找到,启动失败

分析原因发现板子上的网卡驱动是以模块的形式存在的

将网卡驱动添加到内核kbuild树里面编译到内核里面

再次使用以上的命令,启动成功

注:根文件系统使用的是解决方案以前提供的构建好的

之后就可以进行根文件系统的文件替换了 很方便了

你可能感兴趣的:(nfs 启动linux)