在嵌入式開發中使用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下的超級終端的...