嵌入式Linux開發使用NFS掛載根檔案系統

2021-10-06 10:51:10 字數 2204 閱讀 4186

在嵌入式開發中使用nfs 掛在根檔案系統進行應用程式和驅動的除錯是必備技能,在程式除錯ok後可以從nfs檔案系統切換initramfs(基於記憶體)、yaffs(基於nand flash)、jiffs(基於nor flash) 等進行程式的批量燒寫。

首先我們先配置pc端(ubuntu)

1. 安裝nfs 伺服器(以ubuntu為例)

sudo apt-get install nfs-kernel-server

2. 安裝nfs 客戶端

sudo apt-get install nfs-common​

3. 建立共享目錄

sudo mkdir /home/nfs

4. 配置nfs

4.1 修改配置檔案/etc/exports

在最後一行新增:/home/nfs *(rw,sync,no_root_squash,no_subtree_check)

前面那個目錄是與nfs服務客戶端共享的目錄,*代表允許所有的網段訪問(也可以使用具體的ip)

rw:掛接此目錄的客戶端對該共享目錄具有讀寫許可權

sync:資料同步寫入記憶體和硬碟

no_root_squash:客戶機用root訪問該共享資料夾時,不對映root使用者。(root_squash:客戶機用root使用者訪問該共享資料夾時,將root使用者對映成匿名使用者)

no_subtree_check:不檢查父目錄的許可權。

4.2 nfs是乙個rpc程式,使用它前,需要對映好埠,通過rpcbind 設定:

sudo service rpcbind restart

4.3 重啟nfs服務:

sudo service nfs-kernel-server restart

4.4檢視nfs是否配置ok

輸入showmount  --exports 顯示系統中共享的所有目錄

接下來我們配置arm端(嵌入式開發板,開發板使用的是友善之臂的smart210)

1.  使用nfs掛在根檔案系統,需要核心的支援,因此首先需要編譯核心

1.1  進入核心原始碼目錄 執行 make menuconfig

在gnenral setup選項中,取消掉initial ram filesystem and ram disk選項

進入file systems選項的下一層目錄

選中下圖中的藍色區域選項

然後退出儲存,重新編譯 核心

make uimage arch=arm cross_compile=arm-linux-

重新編譯好的核心位於/arch/arm/boot/目錄下,將該核心拷貝到sd卡中替換掉原有的核心燒錄檔案zimage.

2. 設定核心啟動引數(本文中開發板uboot、核心、核心引數、跟檔案系統的燒寫使用的是sd卡,因此只需要在sd中的配置檔案中進行修改就可以)

################## linux ####################

linux-bootloader = superboot210.bin

linux-kernel = linux/zimage

#linux-commandline = root=/dev/mtdblock4   rootfstype=yaffs2 console=ttysac0,115200 init=/linuxrc skipcali=yes ctp=3

linux-commandline = console=ttysac0,115200   root=/dev/nfs nfsroot=192.168.1.12:/home/book/codes/fs_mini_mdev_new ip=192.168.1.230:192.168.1.12:192.168.1.12:255.255.255.0:linux.arm9.net:eth0:off  skipcali=yes ctp=3

#linux-rootfs-installimage = linux/rootfs_qtopia_qt4-mlc2.img

將sd卡中的核心和核心引數重新整理到開發板中後,重啟開發板,此時經可以看到開發板成功掛在了nfs跟檔案系統。

linux嵌入式開發

我的環境 主機 ubuntu 64位 開發板 mini2440 6 makefile檔案修改 在 opt friendlyarm mini2440 linux 2.6.29下執行 sudo vi.makefile 搜尋arm linux得到乙個結果 cross compile?arm linux 然...

嵌入式linux平台的NFS移植

感謝遙姐和超哥!configure portmap configure cc 交叉編譯器的路徑 host arm linux configure nfs utils configure cc x host arm linux disable gss configure portmap之後,將port...

嵌入式Linux開發流程

在乙個嵌入式系統中使用linux開發,根據應用需求的不同有不同的配置開發方法,但是一般都要經過如下的過程.1 1 建立開發環境 2 2 配置開發主機 配置minicom,一般的引數為波特率為115 200bps,資料位為8位,停止位為1,無奇偶校驗,軟體硬體流控設為無。在windows下的超級終端的...