Barco home TWiki > Firmware > FirmwareDocumentation > NFSSystem TWiki webs: Firmware | Software | Servers Firmware . { Changes | Index | Search | Go ________________ } Loading a cramfs is time consuming and during a testing/debugging/development cycle, if this is done quite often. Therefore a NFS filesystem, where changes can be done on the fly, is more useful. The boards are configured to use BOOTP for booting. In the following, the basic modifications are described to configure a GNU/Linux server to serve as a bootp server. First of all, a number of services need to be installed on the serving machine (gemini in this example): * a NFS server * a DHCP server On a GNU/Debian system, the following packages need to be installed: [mleeman@gemini mleeman]$ dpkg -l |grep nfs ii nfs-common 1.0-2woody1 NFS support files common to client and serve ii nfs-kernel-ser 1.0-2woody1 Kernel NFS server support [mleeman@gemini mleeman]$ dpkg -l |grep dhcp ii dhcp 2.0pl5-19 DHCP server for automatic IP address assignment Other distributions should have similarly named packages. The main configuration for this is done in a number of files: * /etc/exports contains the files of your files on the server which are exported over NetworkFileSystem (NFS). In this case, this will be the root filesystem for our embedded board. * /etc/dhcpd.conf contains the configuration of the DHCP server. You have to make certain that you are the only DHCP server in your netrange. If you do not, a lot of unpleasantness can occuur since your server will reply with DHCPNACK on requests for the official DHCP server. Extract a root filesystem tarball (or something similar) to your homedir (or a predetermined location). A free and general purpose PPC root filesystem can be found in ELDK (http://www.denx.de/ELDK/). [mleeman@gemini mleeman]$ mkdir targets [mleeman@gemini mleeman]$ tar xvfz target.scn.tar.gz -C targets/ With the current BARCO builds, you can also use the CompressedFileSystem backup to create your NFS root FS: # mkdir fs; cd fs # bzcat ../target-2.0.0.10.cpio.bz2 | cpio -vi Do not forget to copy your stream.cfg file, which basically re-confirms your IP address to ppcserver into the /root/ppcstream directory. Secondly, add the following entry in the exports file, indicating that you want to export without any condition: /home/mleeman/targets/target.scn.01 *(rw,no_root_squash,no_all_squash) Finally, restart the NFS server: [mleeman@gemini mleeman]$ sudo /etc/init.d/nfs-kernel-server restart We're halfway through. We now need to link this NFS filesystem to the MAC address of our board. This is done by adding the following in the /etc/dhcpd.conf file: # global configuration options # allow bootp packages allow bootp; # the first subnet we listen to subnet 150.158.231.0 netmask 255.255.255.0 { # options for the subnet in question option routers 150.158.231.1; default-lease-time 1209600; max-lease-time 31557600; # for each board, add the following configuration block. # It is best that you use different root FS directories # for each board. group { host scnhost01 { # MAC address hardware ethernet 00:d0:b7:85:f9:28; # The fixed address we will assign to the board fixed-address 150.158.231.20; # hm. not relevant here, is the kernel, which we load in FLASH filename "image"; # our root FS that will be passed to the board option root-path "/home/mleeman/targets/target.scn.01"; } } } We now need to restart the dhcp server: [mleeman@gemini mleeman]$ sudo /etc/init.d/dhcpd restart If you do not know the MAC address, and it is not indicated on the board in some way, just let the target boot (loaded with an NFS kernel of course) and watch the messages of the dhcp server, it will display the the MAC address (but will not pass a root FS). [mleeman@gemini mleeman]$ sudo tail -f /var/log/messages and search for something like the following passing: Apr 9 07:53:22 gemini dhcpd: BOOTREQUEST from 00:04:a5:00:05:19 via eth0 Apr 9 07:53:22 gemini dhcpd: No applicable record for BOOTP host 00:04:a5:00:05:19 via eth0 More detailed information will be see in sudo tail -f /var/log/syslog Jul 13 15:57:08 gemini dhcpd: BOOTREQUEST from 00:04:a5:04:05:0c via eth0 Jul 13 15:57:08 gemini dhcpd: BOOTREPLY for 150.158.231.121 to hydra_stream_dmar (00:04:a5:04:05:0c) via eth0 Jul 13 15:57:13 gemini rpc.mountd: authenticated mount request from 150.158.231.121:800 for /home/dmartens/targets/target.01 (/home/d martens/targets/target.01) In this case 00:04:a5:00:05:19 is our MAC address. More details about the kernel parameters are found in the attached file. -- MarcLeeman - 17 Jun 2004 Attachment: Action: Size: Date: Who: Comment: nfsroot.txt action 8020 21 Jun 2004 - 10:00 MarcLeeman Kernel Documentation (2.6.7) about an nfsroot Topic NFSSystem . { Edit | Attach | Ref-By | Printable | Diffs | r1.9 | > | r1.8 | > | r1.7 | More } Revision r1.9 - 13 Jul 2004 - 14:00 GMT - MarcLeeman Parents: WebHome > FirmwareDocumentation Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding TWiki? Send feedback.