Olá amigos embarcados, estamos aqui mais uma vez continuando com os
nossos tutoriais, visando futuramente acionarmos a nossa placa de
desenvolvimento Beagle Board.
Com esse nosso 4° Tutorial iremos aprender a como realizar a gravação, à partir de um servidor NFS e TFTP, das imagens a serem gravadas no SD Card da nossa Beagle Board.
A vantagem dessa maneira é que com ela não precisaremos ficar
preocupados em sempre estar com as imagens no computador local, ou seja,
aonde estivermos, se houver um ponto de rede ou sem fio, poderemos
realizar a gravação das imagens para o SD card e assim realizarmos o
Boot da Beagle Board.
Obs:. Se não houver um espaço entre linhas, não havendo um : entre os comandos deste tutorial, quer dizer que há um espaço entre palavras na digitação e não entre linhas.
Obs:. Se não houver um espaço entre linhas, não havendo um : entre os comandos deste tutorial, quer dizer que há um espaço entre palavras na digitação e não entre linhas.
Abaixo seguem os passos necessários para a configuração do servidor NFS:
A) Para que se seja possível configurar um servidor NFS, deve-se realizar os seguintes passos:
1° passo: Baixar o pacote do servidor NFS digitando o seguinte comando abaixo:
$ sudo apt-get install nfs-kernel-server
2° passo: Criar ou editar as permissões do arquivo /etc/exports, abaixo pode-se ver o arquivo citado:
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
#
# Exemplo para NFSv2 e NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Exemplo para NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/jackbeagle/rootfs *(rw,sync,no_subtree_check)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-------> O primeiro parâmetro a ser mudado neste arquivo acima será o PATH no seu linux, ou seja, a última linha do arquivo onde se pode constar /home/jackbeagle/rootfs. No caso, você deverá modificar o nome "jackbeagle" pelo o nome de usuário no qual está em uso.
-------> O * foi colocado no (rw,sync,no_sbtree_check) para que assim seja possível que todos os hosts possam acessar o diretório via NFS, mas não é poss'ivel selecionar os host um a um, como por exemplo abaixo:
/home/jackbeagle/rootfs 129.168.0.123 (rw,sync,no_subtree_check)
3°passo: Reiniciar o servidor NFS com o seguinte comando abaixo:
$ sudo /etc/init.d/nfs-kernel-server restart
4°passo: Testar se o servidor NFS está OK:
-------> De uma máquina presente na rede, ou do próprio Host, executar os comandos abaixo:
$ mkdir alguma_pasta
$ sudo mount -t nfs
endereço.ip.do.servidor:/home/jackbeagle/rootfs alguma_pasta
--------> o rootfs do linux deve aparecer na pasta alguma_pasta
B) Configurando o U-Boot para NFS:
------->Setar as seguintes variáveis no U-boot:
set rootfs_path /path/to/your/rootfs
set bootargs_base 'set bootargs console=${console} noinitrd rw'
set bootargs_nfs 'set bootargs ${bootargs} ip=${ipaddr}::${netmask} root=/dev/nfs nfsroot=${serverip}:${jackbeagle},4'
set bootcmd_net 'run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${serverip}:uImage; bootm ${loadaddr}'
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Abaixo seguem os passos necessários para a configuração do servidor TFTP:
Para configurar um servidor TFTP: é necessário realizar os seguintes passos:
Não esquecer de que o computador em uso será
1° passo: no pc de desenvolvimento, baixar os pacotes necessários:
1 - Os pacotes necessários:
$ sudo apt-get install xinetd tftpd tftp
2 - Criar o arquivo /etc/xinetd.d/tftp (se ja não tiver sido criado) e preenchê-lo com o seguinte texto abaixo:
--------------------------------------------
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /srv/tftp
disable = no
}
--------------------------------------------
--------------> Modificar a entrada "server_args =" para a pasta onde ficará a raiz do servidor tftp.
Pode ser qualquer pasta de sua preferência. Assim, sempre que um cliente executar a
instrução tftp:
get NOME_DO_ARQUIVO
O servidor procurará pelo NOME_DO_ARQUIVO na pasta especificada em server_args
3 - Criando a pasta do servidor TFTP
$ sudo mkdir /srv/tftp
$ sudo chmod -R 777 /srv/tftp
$ sudo chown -R nobody /srv/tftp
4 - Reiniciando o servidor TFTP:
$ sudo /etc/init.d/xinetd start
5- Testar se a configuração funcionou
a) criar um arquivo qualquer na pasta /srv/tftp:
$ echo "funcionou :)" > /srv/tftp/hello
b) numa máquina diferente na mesma rede ou no próprio pc de desenvolvimento, rodar o comando abaixo:
$ tftp SEU_ENDEREçO_IP
tftp> get hello
----------->Nesse momento, o programa deve dar algum indicativo que o download foi feito e o arquivo 'hello' deve aparecer na pasta onde o comando tftp foi rodado.
B) No u-boot:
1 - Setar a seguinte variável no u-boot:
CM-T3517 # set tftpload 'tftpboot ${loadaddr} ${serverip}:uImage'
2 - Usar a variável tftpload no lugar da mmcload que está sendo usada atualmente
----------------------------------------------------------------------------------------------------------FIM
DO
TUTORIAL--------------------------------------------------------------------------------------------------------------
Então,
basicamente são todas essas instruções acima que se deve seguir para
que haja um bom funcionamento do seu servidor, seja via NFS ou seja via
TFTP. Qualquer dúvida basta entrar em contato conosco via:
embarcados.unifor@gmail.com
Até o próximo tutorial!
Nenhum comentário:
Postar um comentário