触觉智能分享 | SSD20X搭建NFS开发环境

触觉智能 深圳触觉智能科技有限公司

嵌入式开发时,我们需要将程序文件从主机拷贝到设备中,然后再执行调试,而当文件很大时,拷贝动作需要花费不少的时间。为了减少文件拷贝时间,提高开发效率,我们可以使用NFS,将文件系统存放在我们开发主机里面。下面我们介绍针对SSD20X平台如何搭建NFS开发环境,假设开发主机为ubuntu系统(其他Linux发行版类似)。


01
ubuntu安装NFS服务


# sudo apt-get install nfs-kernel-server
02
准备NFS文件系统

下面这几步,能够帮助我们构建一个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

03
ubuntu开启NFS服务


# 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下:


04
开发板挂载NFS

下面我们实现开发板开机自动挂载NFS文件系统。

确认开发板与ubuntu处于同一局域网内,且能相互通信:

ubuntu端:

开发板端:

# mount -t nfs -o nolock 192.168.1.125:/home/industio/ssd20x/nfs/ /mnt

# ls /mnt

# umount /mnt


05
将nfs编译进kernel

由于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即可


06
修改bootargs

需要将bootargs设置为根文件系统(root)指向nfs,这里192.168.1.125ubuntuIP192.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开发环境已经搭建好啦

X 提交 下一题

查看更多