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/