PetaLinux SOC Tutor

Using NFS to Transfer Files and Boot Remotely

 

Table of Contents

Section 1: Using NFS to Transfer Files 3

Setting up NFS 3

Transferring Files with NFS 5

Setting up NFS server in Development Board 6

Section 2: Using NFS to Boot Remotely 8

 

Section 1: Using NFS to Transfer Files

*In order to follow along to this tutorial, you will be required to have Ubuntu 16.04.01 already installed on your Virtual Machine using Oracle’s VirtualBox. Because this tutorial is geared towards Ubuntu 16.04.01, using other versions may have differences between the execution of commands.

Setting up NFS

First, we will want to set up NFS on our Ubuntu machines. We can do this by executing the following command:

sudo apt-get install nfs-kernel-server

Text

Description automatically generated

When the installation is complete, we will create a dedicated nfs folder within the linux folder in our home directory. This folder will act as a shared folder with the target system that you wish to transfer files to.

Text

Description automatically generated

Next, we will open up and configure the /etc/exports file by using the following command:

sudo vi /etc/exports

You may also choose to use the gedit command instead.

Once the file is open, we will proceed to append the following line to it:

/home/ubuntu/linux/nfs *(rw,sync,no_root_squash)

Make sure you change ubuntu to your own username and modify the nfs folder directory if you have it elsewhere.

Note that * allows access from all networks, rw gives permission to read and write, sync synchronizes files to storage, and no_root_squash is the nfs client-side user permission.

Please see reference image on next page.

Text

Description automatically generated

After the addition, we will use the following command to restart NFS.

sudo service nfs-kernel-server restart

We can use the following command to see the shared directory.

showmount -e

While NFS is running, the /etc/exports file is changed. We can use the exportfs command to apply those changes.

sudo exportfs -rv

Text

Description automatically generated

Transferring Files with NFS

We will first put the files that we would like to transfer into the /nfs folder we just created. You may choose to use anything you like.

Next, we will mount the NFS directory that is on our Ubuntu system from our development board system. Note that you have to be logged in on the development board system. We will use the following command to do so:

mount -t nfs -o nolock 192.168.0.86:/home/ubuntu/linux/nfs /mnt

Make sure you change the command accordingly and use the IP address of your Ubuntu machine.

Text

Description automatically generated

Next, we will be able to access the /nfs folder from the development board system if nothing goes wrong. We can check this by using the ls command like so:

ls /mnt

As we can see, the two files are what we originally had in the /nfs folder on our Ubuntu system.

You may choose to freely open and edit the shared files.

Setting up NFS server in Development Board

You can set up the Development Board as a NFS server just like our Ubuntu system, and to be able to perform actions that way. In order to do so, we will need to modify the kernel settings for the PetaLinux project.

petalinux-config -c kernel

Once inside the graphical interface, we will first go into the File Systems tab.

Text

Description automatically generated

Next, we will go into the Network File Systems tab.

Graphical user interface, text

Description automatically generated

Finally, we will enable all options related to NFS server support. Don’t forget to save the changes, re-build the project, and replace the boot file on the SD card with the new one.

Text

Description automatically generated

Thus, you will now be able to treat the development board Linux system as a server for NFS services.

Section 2: Using NFS to Boot Remotely

First, we will need to locate the nfs shared folder which we created. In my case, it is in the linux folder in my home directory. We will proceed to create a new folder titled rootfs inside by using the mkdir command.

Graphical user interface, text

Description automatically generated

Next, we will decompress the rootfs.tar.gz file in the images folder from our PetaLinux project folder to the rootfs folder we just created by using the following command. Make sure you change your directory accordingly.

tar -xzvf images/linux/rootfs.tar.gz -C ~/linux/nfs/rootfs/

Text

Description automatically generated

Now, we will boot the root file system using the network.

Please turn on your development board. When prompted to hit a key to stop autoboot, please hit a key to stop autoboot.

The command formatting is as follows:

root =/dev/nfs nfsroot=[Server IP]:[Root Directory][, NFS Options] ip=[Client IP]:[Server IP]:[Gateway IP]:[Netmask]:[Host Name]:[Device]:[Autoconfig]:[dns0-IP]:[dns1-IP]

Where the Netmask is typically 255.255.255.0,

Device is the name of your Network card, which is typically eth0,

And Autoconfig is typically set to off.

We can typically leave Host Name blank, along with dns0-IP and dns1-IP.

Thus, we will use the following command:

setenv bootargs ‘console=ttyPS0,115200 root=/dev/nfs rw nfsroot=192.168.0.86:/home/ubuntu/linux/nfs/rootfs ip=192.168.0.88:192.168.0.86:192.168.0.8:255.255.255.0::eth0:off’

Note that the three lines above above is a singular command.

Make sure you change the according IP addresses and file directories to your own.

We will use the boot command to boot into this filesystem. Note that you can choose to use saveenv to save the environment before using the boot command.

Please see the next page for reference.

Text

Description automatically generated

After a while, the system should boot up without issues.

Text

Description automatically generated

We can check to see if we are in the root directory by using the command ls /

Text

Description automatically generated

 

Copyright Notice:

© 2020 Fraser Innovation Inc ALL RIGHTS RESERVED

Without written permission of Fraser Innovation Inc, no unit or individual may extract or modify part of or all the contents of this manual. Offenders will be held liable for their legal responsibility.

Thank you for purchasing the FPGA development board. Please read the manual carefully before using the product and make sure that you know how to use the product correctly. Improper operation may damage the development board. This manual is constantly updated, and it is recommended that you download the latest version when using.

Official Shopping Website:

https://fpgamarketing.com/

 

Related posts