1. 程式人生 > >itop4412 增加nfs 核心編譯過程

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/