Ferramentas do usuário

Ferramentas do site


dispositivoslocais
no way to compare when less than two revisions

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


dispositivoslocais [2015/01/19 23:34] (atual) – criada mafra
Linha 1: Linha 1:
 +Voltar para [[Projeto Escola Livre|página do projeto]]
 +
 +===== Configuração de dispositivos locais (disquete, cdrom) =====
 +
 +Idéia básica: clientes LTSP iniciam com kernel linux suportando supermount e servidor samba. Durante o processo de boot, clientes lêem arquivo de configuração lts.conf, descobrem o dispositivo de disquete e CD-ROM, iniciam um servidor samba com os parâmetros de dispositivo local e disponibilizam os dispositivos via samba (por padrão, em ///tmp/drives/<dispositivo>//). Adicionalmente, quando um usuário inicia uma seção gráfica num terminal LTSP, o diretório dos dispositivos neste terminal são montados via samba pelo servidor dentro do //home// daquele usuário (por padrão, no diretório //$HOME/drives//).
 +
 +=== Referências ===
 +
 +Teoria básica: [[http://www.ltsp.org/localdev.txt|http://www.ltsp.org/localdev.txt]] \\
 +Instalação mais apurada: [[http://wiki.ltsp.org/twiki/bin/view/Ltsp/LocalMedia]]
 +
 +=== Processo de instalação e configuração ===
 +
 +''Download do pacote ltsp_localdev'' \\
 +Fazer o //download// do pacote **ltsp_localdev** usando o script **ltspadmin**.
 +
 +''Instalar o cliente samba no servidor LTSP. No debian:'' \\
 +   $ apt-get install smbfs
 +
 +''Editar lts.conf''
 +
 +Editar o arquivo de configuração do LTSP lts.conf (no nosso caso, em /usr/ltsp-4.1/i386/etc/lts.conf). Aqui, habilitou-se somente o acesso local à disquete para todos os clientes (seção "[default]" do arquivo):
 +
 +   LOCAL_DEVICE_01 = /dev/fd0:disquete
 +
 +**OBS.:** Caso se utilize um outro dispositivo local como CD-ROM, faça:
 +
 +   LOCAL_DEVICE_02 = /dev/hdc:cdrom
 +
 +''Montagem dos dispositivos no //home// do usuário'' \\
 +
 +Até este ponto, o acesso aos dispositivos em cada terminal LTSP é possível via shell, habilitando tal acesso  colocando //SCREEN_02 = shell// na seção "[default]" do lts.conf. Com esta opção habilitada, acesse o conteúdo do disquete no diretório /tmp/drives/disquete ou então via samba usando um gerenciador de arquivos (konqueror ou nautilus por exemplo) digitando smb:/nobody@<IP_do_terminal>/drives na barra de endereços. \\
 +
 +Para facilitar o uso, o local de acesso à disquete no terminal LTSP é direcionado para o diretório pessoal do usuário logado neste terminal ("home") através dos scripts [[http://ltsp.mirrors.tds.net/pub/ltsp/ltsp-4.1/LDA-setup.sh|LDA-setup.sh]] e [[http://ltsp.mirrors.tds.net/pub/ltsp/ltsp-4.1/LDA-shutdown.sh|LDA-shutdown.sh]]. O primeiro monta o diretório dos dispositivos no home de um usuário com restrições de acesso apropriadas. O segundo script desmonta aquele diretório. \\
 +
 +Estes scripts são executados pelo gerenciador de login usado (e.g., GDM ou KDM) no servidor LTSP. Verifique a página-fonte para obter informações sobre como realizar a configuração adequada para o seu gerenciador de login. \\
 +
 +No GDM (caso corrente), depois de copiar os scripts para /usr/local/bin e atribuir permissões de execução, acrescentou-se as linhas: \\
 +
 +  /usr/local/bin/LDA-setup.sh em /etc/gdm/PostLogin/Default 
 +  /usr/local/bin/LDA-shutdown.sh em /etc/gdm/PostSession/Default
 +
 +''Observações:'' \\
 +
 +**(a)** Nesta instalação, substituiu-se o arquivo ///usr/ltsp-4.1/i386/etc/rc.localdev// pelo arquivo //rc.localdev// contido no pacote de atualizações em: 
 +[[http://wiki.ltsp.org/twiki/pub/Ltsp/LocalMedia/localdev-4.1.1-r1.tgz]]. \\
 +
 +Nesta atualização, o diretório dos dispositivos montados via samba tem permissão do usuário //nobody// ao invés do usuário //root//. \\
 +
 +**(b)** Nesta solução, os diretórios são montados mais de uma vez no diretório do usuário (//home//) via samba mais de uma vez caso a sessão gráfica não se encerre normalmente executando o //logout//. Para evitar isto, uma solução simples pode ser adotada. Edite o arquivo //LDA-setup.sh// e acrescente alguma linha que verifique se o diretório já está montado, algo parecido com (verifique se as variáveis shell do exemplo abaixo correspondem ao do script! (:-)): \\
 +
 +    ## verificando se já está montado
 +    df | grep ${MYNAME}
 +    ISMOUNTED=$?
 +    if [ $ISMOUNTED -eq 0 ] ; then
 +       umount ${HOMEDIR}/drives
 +       #echo "`date +%c`: desmontou ${HOMEDIR}/drives" >> /tmp/debug
 +    fi
 +
 +Adicionalmente, crie um script para o servidor LTSP desmontar automaticamente os pontos SMB "zumbis", ou seja, que estão montados mesmo com o cliente LTSP desligado. Como sugestão, este script pode ter um conteúdo similar às seguintes linhas:
 +
 +  !/bin/bash
 +  HOMEDIR=drives
 +  COMMAND=mount.smbfs
 +  for i in `ps -o "%a" x | grep $COMMAND | grep $HOMEDIR | cut -f2 -d " "`; do
 +   CLIENT=`echo $i | cut -f3 -d "/"`
 +   ping -q -c 1 $CLIENT > /dev/null 2>&1
 +   if [ $? -ne 0 ]; then
 +      umount $i
 +   fi
 +  done
 +
 +Depois, ponha este script no crontab para executar, por exemplo, de 1 em 1 minuto: \\
 +
 +  0-59/1 * * * *  root    <localização_do_script>
  
dispositivoslocais.txt · Última modificação: 2015/01/19 23:34 por mafra