在嵌入式开发时,我们需要将程序文件从主机拷贝到设备中,然后再执行调试,而当文件很大时,拷贝动作需要花费不少的时间。为了减少文件拷贝时间,提高开发效率,我们可以使用NFS,将文件系统存放在我们开发主机里面。下面我们介绍针对SSD20X平台如何搭建NFS开发环境,假设开发主机为ubuntu系统(其他Linux发行版类似)。
# sudo apt-get install nfs-kernel-server
下面这几步,能够帮助我们构建一个SSD20X的基本文件系统:
后面,我们的调试文件也只需要直接拷贝到这里
# cd ~/ssd20x
# mkdir nfs
# cp ../project/image/output/rootfs/* ./ -rf
# cp ../project/image/output/customer/ . -rf
# cp ../project/image/output/appconfigs/ . -rf
# cp ../project/image/output/miservice/config/ . -rf
# sudo vi /etc/exports
+ /home/industio/ssd20x/nfs/ *(rw,sync)
# sudo /etc/init.d/nfs-kernel-server restart
本地验证
# sudo mount -t nfs -o nolock 192.168.1.125:/home/industio/ssd20x/nfs/ /mnt
# ls /mnt
# sudo umount /mnt
可以看到,我们的文件系统已经成功挂载到/mnt下:
下面我们实现开发板开机自动挂载NFS文件系统。
确认开发板与ubuntu处于同一局域网内,且能相互通信:
ubuntu端:
开发板端:
# mount -t nfs -o nolock 192.168.1.125:/home/industio/ssd20x/nfs/ /mnt
# ls /mnt
# umount /mnt
由于SSD20X平台默认把NFS驱动作为ko在系统启动完成后才加载,我们需要将NFS编进Kernel里面。
# cd kernel
# ARCH=arm make menuconfig
-*- Networking support --->
Networking options --->
-*- TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
File systems --->
[*] Network File Systems --->
<*> NFS client support
<*> NFS client support for NFS version 2
<*> NFS client support for NFS version 3
<*> NFS client support for NFS version 4
[*] Root file system on NFS
重新编译并更新kernel即可
需要将bootargs设置为根文件系统(root)指向nfs,这里192.168.1.125是ubuntu的IP,192.168.1.85是与ubuntu IP同一局域网的随机ip:
setenv bootargs console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.125:/home/industio/ssd20x/nfs ip=192.168.1.85:192.168.1.125:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc rootwait=1 LX_MEM=0x3f00000 mma_heap=mma_heap_name0,miu=0,sz=0xa00000 mma_memblock_remove=1 highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x3300000,max_end_off=0x3600000 mtdparts=nand0:384k@1280k(IPL0),384k(IPL1),384k(IPL_CUST0),384k(IPL_CUST1),768k(UBOOT0),768k(UBOOT1),256k(ENV),256k(ENV1),0x20000(KEY_CUST),0x60000(LOGO),0x500000(KERNEL),0x500000(RECOVERY),-(UBI)
重新启动开发板后,将看到nfs文件系统正常挂载了:
至此,SSD20X平台的NFS开发环境已经搭建好啦
前往“发现”-“看一看”浏览“朋友在看”