itop4412 增加nfs 内核编译过程
需求:为了提高测试的效率,需要使用nfs功能。但是itop4412 提供的linux内核不支持nfs,需要自行配置和编译。
基本条件:要实现nfs,要搭建服务器(PC端(我使用的是 VMware虚拟机---Ubuntu kylin 16.0.4))和客户端(开发板(本人使用itop4412 pop_elite))。
服务器的搭建,参考《iTOP-4412开发板之精英版使用手册_V2.1》中的实验12,可以完成并测试是否搭建成功。(可参考以下百度文库连接1~11页)。
https://wenku.baidu.com/view/aceafa37551810a6f42486c7.html
其中
/etc/init.d/portmap
restart
使用service rpcbind restart 替代/etc/init.d/portmap restart
客户端的搭建:
分为需要更改system.img和zImage。
system.img :
在Ubuntu下,使用以前制作的做小 linux 系统为例,通过nfs 来挂载它。(此处默认已按照itop实验指导搭建好最小linux系统)
1.修改 linux 最小文件系统的etc/init.d/ifconfig-eth0 文件.
使用 vi 命令修改第八行,修改为:if grep -q nfs /proc/mounts ; then,修改完成后保存并退出。
2.返回到最小linux系统的文件夹 system 的同一层。
使用以下命令,将system 文件夹,打包成system.img。
make_ext4fs -s -l 314572800 -a root -L Linux system.img system
zImage
本人开始是按照《iTOP-4412开发板之精英版使用手册_V2.1》中的实验12 进行配置nfs。其中内核的配置编译描述比较模糊,走了一些弯路。具体操作步骤,下面详细道来。
1.在虚拟机Ubuntu下,进入内核源码的目录下 iTop4412_Kernel_3.0
2. 执行以下命令(根据开发板的型号而调整红色字体),将itop的预配置配置加载到 .config (后续执行make menuconfig 展现 .config中的配置方案)
#cp config_for_linux_pop_elite .config
3. 执行make menuconfig 进行更改配置
#make menuconfig
1)、配置网络部分
[*]Networking support --->
Networking options--->
[*]TCP/IP networking
[*]IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
2)、配置开启nfs服务
File systems --->
[*]Network File Systems --->
<*> NFS client support
[*] NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
[*] NFS client support for NFS version 4 (EXPERIMENTAL)
[*] NFS client support for NFSv4.1 (DEVELOPER ONLY)
[*] Root file system on NFS
3)、退出保存 ,执行make (编译时间略长,大概10分钟左右,视电脑性能而定)
4)、编译完成后,进入./arch/arm/boot 可得到zImage
以上完成服务器和客户端的搭建。
##############################################################################################################################
##############################################################################################################################
最使用从TF启动,将system.img、ramdisk_uboot.bin 和zImage烧录至开发板。(本人在使用fastboot 进行烧写时,出现开发板无法启动的情况,最后使用TF烧录恢复正常。)
拨动拨码开关至从TF卡启动,进入uboot模式,使用sdfuse flashall (详细操作查看itop相关文档《iTOP-4412开发板之精英版使用手册_V2.1》4.3)
进入开发板的linux的文件 系统,修改开发板的ip地址,修改成与虚拟机同一网段。开发板和pc端连接在同一路由器。
ifconfig eth010.254.1.109 netmask 255.255.255.0 up
将nfs的服务器10.254.1.108 :/home/cfan/nfs6410/ (10.254.1.108 为pc端虚拟机linux的ip地址)
mount -n -o nolock 10.254.1.108 :/home/cfan/nfs6410/ /mnt/
为了每次开发板开启时,自动挂载nfs服务器
在开发板的终端中输入 : vi /etc/init.d/rcS
在下图中的位置添加刚刚在上面用到的两条命令
ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up
mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/