# 設置靜態 IP(示例) sudo ip addr add 169.254.9.78/16 dev eth0 # 或修改 /etc/network/interfaces / Netplan 配置持久化
關鍵:關閉 WiFi,僅保留有線連接,避免路由衝突。
# 修改網卡配置文件 vi /etc/eth0-setting # 內容示例: IP=169.254.9.100 MASK=255.255.0.0 GATEWAY=169.254.255.255 DNS=169.254.255.255 MAC=00:11:22:33:44:55 # 保持原 MAC # 重啟網絡或重啟開發板 reboot # 驗證 ifconfig eth0 ping 169.254.9.78 # ping PC
sudo apt update sudo apt install nfs-kernel-server nfs-common rpcbind
mkdir -p /home/user/nfs_share chmod 777 /home/user/nfs_share sudo vi /etc/exports # 添加一行: /home/user/nfs_share *(rw,sync,no_subtree_check,no_root_squash) # 重啟服務 sudo systemctl restart rpcbind sudo systemctl restart nfs-kernel-server # 查看導出 showmount -e localhost
mkdir -p /mnt/test sudo mount -t nfs localhost:/home/user/nfs_share /mnt/test echo "test" > /mnt/test/hello.txt ls /mnt/test sudo umount /mnt/test
嵌入式 Linux 常無 `rpc.statd`/`rpc.lockd`,掛載需加 `nolock` 禁用文件鎖,否則掛載卡死或報錯。
# 掛載命令 mount -t nfs -o nolock 169.254.9.78:/home/user/nfs_share /mnt # 驗證 ls /mnt cp /mnt/hello.txt /tmp/ # 可在 /mnt 直接運行交叉編譯的可執行文件
# /etc/fstab 添加: 169.254.9.78:/home/user/nfs_share /mnt nfs nolock,defaults 0 0
vi /etc/init.d/rcS # 文件末尾添加: mount -t nfs -o nolock 169.254.9.78:/home/user/nfs_share /mnt # 然後啟動自己的應用: /mnt/my_app
# PC 端交叉編譯 arm-linux-gcc -o my_app main.c cp my_app /home/user/nfs_share/ # 開發板端即可直接運行 /mnt/my_app
Tiny4412 NFS 掛載關鍵點:
建立此流程後,嵌入式開發進入「編譯即運行」高效模式,專注於業務邏輯而非部署細節。