Uproszczony przewodnik pokazujący w jaki sposób skonfigurować serwer NFS i uruchomić system dla modułu Beaglebone Black
Pierwszą czynnością jaką należy wykonać na stacji roboczej(przez stację roboczą rozumie się system z zdalną zawartością root-fsa)
sudo apt-get install nfs-kernel-server xinetd tftpd tftp
Konfiguracja serwera tftp
sudo nano /etc/xinetd.d/tftp
należy zaktualizować wpis zmieniając katalog dostępowy na najbardziej nam odpowiadający
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /home/mw/tftpboot
disable = no
}
następnie tworzymy katalog dostępowy i nadajemy uprawnienia
sudo mkdir /home/mw/tftpboot
sudo chmod -R 777 /home/mw/tftpboot
sudo chown -R nobody /home/mw/tftpboot
Na końcu uruchamiamy proces
sudo service xinetd restart
Następnie konfigurujemy serwer nfs poprzez utworzenie katalogu dostępowego i nadanie mu odpowiednich uprawnień
mkdir -p /home/mw/nfs/bbb-nfs
sudo chmod 777 /home/mw/nfs/bbb-nfs
Kolejnym krokiem jest modyfikacja pliku
sudo nano /etc/default/nfs-kernel-server
NEED_SVCGSSD="no"

Należy się również upewnić że niżej wymienione wpisy istnieją w pliku
/etc/idmapd.conf

Jedną z ostatnich czynności jest podpięcie klienta poprzez dodanie odpowiedniego wpisu w pliku
/etc/exports
dodać odpowiednio przygotowany wpis
/home/mw/nfs/bbb-nfs 192.168.0.49/24(rw,fsid=root,no_root_squash,no_subtree_check)

Ostatnią czynnością jest zrestartowanie
sudo /etc/init.d/nfs-kernel-server restart
sudo ln -s bin/busybox init
Można zamiast montować system plików manualnie zastąpić go automatycznym wpisem, modyfikując plik
sudo nano /etc/fstab

Oczywiście należy się upewnić że w katalogu serwera nfs-a znajduje się odpowiednio przygotowany system plików dla urządzenia. Można to podczas kompilacji wykonać na przykład tak
tar -C /home/mw/nfs/bbb-nfs -xzf /home/mw/yocto/tmp/deploy/images/beaglebone/console-image-beaglebone.tar.gz
Należy również zadbać aby w katalogu tftpboot znalazły się najbardziej aktualne pliki kernela i dts-a (pliki muszą mieć dokładnie takie nazwy)

Po skonfigurowaniu tftp oraz nfs-a na stacji roboczej można przystąpić do konfiguracji modułu Beaglebone Black
Podstawowym warunkiem konfiguracji jest wgrany bootloader 1 i 2 poziomu na płytkę(na pamięć MMC lub SD kartę)
Po wystartowaniu U-Boot-a drugiego poziomu należy od razu go zatrzymać naciskając w konsoli dowolny przycisk

Pierwszą czynnością jest ustawienie adresu IP Beaglebone-a oraz adresu serwera sieciowego. Wykonujemy to poprzez wprowadzenie dwóch wpisów
setenv ipaddr 192.168.0.70
setenv serverip 192.168.0.34
setenv bootcmd 'tftp 0x81000000 zImage; tftp 0x82000000 am335x-boneblack.dtb; bootz 0x81000000 - 0x82000000'
setenv bootargs root=/dev/nfs rw ip=dhcp console=ttyO0,115200n8 nfsroot=192.168.0.34:/home/mw/nfs/bbb-nfs,v3,tcp
setenv mmcrootfstype nfs
na końcu zapisujemy wyżej wprowadzone ustawienia wydając komendę
saveenv
i uruchamiamy system poprzez wydanie komendy
boot
Oczywiście należy się upewnić że 'kernel’ został skompilowany z opcją 'CONFIG_ROOT_NFS’
W powyższym przykładzie założono że adres modułu Beaglebone Black to 192.168.0.70 natomiast stacji roboczej zawierającej rootfs-a dostępnego po NFS-ie to 192.168.0.34








