imagen

Utilización RaspBerryPi en puestos de trabajo simples

23.Aug.2015 — Julio

Actualización septiembre 2017:

¡ NO UTILIZAR RASPBERRYS !

Si no quieres estar cada pocos meses con sustos porque dejan de funcionar debido a que se corrompen muy asiduamente el sistema de ficheros.

Con solo uso de telnet hacia el ERP, he tenido que reinstalar RASPBIAN en las microSD en muchas pi's.

Con tarjetas microSD casi todas de 16GB y de buena calidad, de varias marcas, Samsung, TDK, y otras.

Los modelos de raspberry da también lo mismo. Model B, 1 ,2 o 3.

En cambio en puestos con pcs antiguos con Linux Mint, o Ubuntu, sin problemas.

Mejor invertir en algo que no utilice microSD.


Edición en jul16:

  • forma rápida de configurar nueva raspberry
  • resumen de ficheros afectados
  • instalaciones y desinstalaciones recomendadas

Se trata de utilizar la Raspberry Pi 2 Model B para los puestos de almacén, que sólo requieren conexiones telnet hacia el servidor principal.

Por poco más de 50€ se tiene resuelto necesidades de esos puestos y sobre todo más controlados y con menos problemas de seguridad y administración que conllevan por ejemplo puestos Windows (administración, actualizaciones, antivirus, seguridad, etc..)

El usuario de estos puestos solo verán accesibles los puntos que necesite para su trabajo, eliminando así muchas opciones que no aportan nada en su dia a dia.

Se evita así también la cantidad de software innecesario cargado por defecto en los sistemas Windows.

Otro punto a su favor es el poco consumo (~5W), comparado con un puesto de sobremesa.

resultado

Esta guía me ha quedado larga pues incluyo algunas explicaciones, pero si se ejecutan directamante los pasos a seguir y copiando y pegando algunos ficheros, se puede configurar una raspberry completamente en menos de 5 minutos. Se trata de configurar e instalar:

  • menu persunalizado para nuestra empresa
  • putty
  • vnc
  • samba

INSTRUCCIONES INSTALACION RASPBERRY PI 2 MODEL B

  • seguir instrucciones para meter en una microSD compatible la imagen del raspbian en raspberrypi.org (no se trata en esta guía)
  • alimentador de 5V mínimo 700mA 1A
  • del menú raspi-config ejecutar los siguientes puntos

    1-Expand filesystem
    2-Change password
    3-Enable Boot to Desktop elegir graphical
    4-Internalitation Options correr todas a es-ES-UTF-8
    8-Advanced settings, ejecutar cambio de hostname y ssh enabled

Se puede volver a correr todo esto ejecutando $ sudo raspi-config

Con ello tendríamos un equipo con Raspberry completo que podría ya trabajar con Disfar, pero se trata de quitar más opciones (correo electrónico, juegos, cliente de email, etc..)

Menú personalizado para nuestra empresa con el entorno LXDE

Donde ponga MYMENU podéis poner el nombre de vuestra empresa.

1. Vamos a sustituir todo el menu por defecto que viene en Raspbian con el entorno LXDE por uno personalizado.

LXDE es un entorno gráfico que permite configurar a nuestro gusto el menú y las aplicaciones que cuelgan de él, simplemente editando ficheros de texto. Es como si en Windows, el botón Inicio hiciéramos visible solo los puntos que quisiéramos.

LXDE en la raspberryPi tiene los ficheros que definen los menús en una carpeta especial. Vamos a copiar ese fichero a una carpeta local del usuario pi, para que prevalezca sobre el general. Una vez copiado podemos modificarlo según nuestras necesidades.

```  
$ mkdir .config/menus  
$ sudo cp /etc/xdg/menus/lxde-pi-applications.menu ./config/menus  
$ nano .config/menus/lxde-pi-applications.menu (o el editor que se quiera)    
```  

```   
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"  
  "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">  
 <Menu>  
    <Name>Applications</Name>  
    <Directory>lxde-menu-applications.directory</Directory>  
    <!-- Read standard .directory and .desktop file locations -->  
    <DefaultAppDirs/>  
    <DefaultDirectoryDirs/>  
    <!-- Read in overrides and child menus from applications-merged/ -->  
    <DefaultMergeDirs/>  
   <Menu>  
       <Name>MYMENU</Name>  
       <Directory>mymenu.directory</Directory>  
       <Include>  
          <And><Category>MYMENU</Category></And>  
       </Include>  
    </Menu>  
    <Layout>  
        <Menuname>Development</Menuname>  
        <Menuname>Internet</Menuname>  
        <Menuname>Games</Menuname>  
        <Menuname>Accessories</Menuname>  
        <Merge type="files"/>  
        <Merge type="menus"/>  
        <Separator/>  
        <Menuname>Help</Menuname>  
        <Separator/>  
        <Menuname>DesktopSettings</Menuname>  
    </Layout>  
  </Menu> <!-- End Applications -->  
```

Con esto le hemos dicho que el único menú que queremos es el de MYMENU, pues hemos borrado todo lo demás.

2. Ahora vamos a crear la existencia de ese menú.__

Igualmente LXDE para raspberrypi tiene las entradas a los menús en la carpeta /usr/share/raspi-ui-overrides/desktop-directories En ella tiene las entradas de los menús. En LXDE standard están todas en /usr/share/desktop-directories.

Vamos a crear nuestra propia carpeta del usuario pi que una vez más prevalecerá sobre el standard de LXDE, y crearemos en ella el fichero mymenu.directory, nuestro único menú que queremos que aparezca.

```    
$ mkdir ./local/share/desktop-directories  
$ nano ./local/share/desktop-directories/mymenu.directory  
```  

```  
[Desktop Entry]  
Encoding=UTF-8  
Name=MYMENU  
Type=Directory  
Icon=mymenu.png  
```

Explicación breve. En Name= el nombre del menu, en Type= le decimos que es un menú nuevo.

3. Ahora los elementos que queremos de ese menú.

Cada punto dentro de los menús estan en LXDE en /usr/share/applications y en la raspberrypi en /usr/share/raspi-ui-override/applications y son ficheros con la extensión .desktop

Tal como hemos seguido hasta ahora no vamos a tocar los puntos generales de LXDE y vamos a crearnos los propios.

Para ello nos creamos nuesta carpeta, y allí pondremos nuestro puntos. Lo más fácil es copiar ficheros .desktop de las carpetas originales a las nuestras y modificarlos luego.
$ mkdir ./local/share/applications

Nos tenemos que crear tantos ficheros de texto como los que figuran abajo con la extensión .desktop

Pongo aquí un ejemplo para la conexión con servidor Disfar mediante el programa putty
$ nano ./local/share/applications/puttyGEO.desktop

```  
[Desktop Entry]  
Version=1.0  
Name=GEO  
GenericName=GEO  
Comment=Aplicacion para saber geo, existencias, pedidos, etc  
Type=Application  
Exec=putty -load "geo"  
Icon=putty  
Categories=MYMENU;  
```

Explicación breve. En Type le decimos que es una aplicación, en Exec se pone lo que queremos ejecutar, y en Categories en qué menú queremos que aparezca este punto.

Para aplicaciones ya existentes en LXDE lo mejor es copiarlas de su lugar de origen a nuestro menu personalizado de aplicaciones y modificar solo el concepto Categories

Pongo otro fichero en la misma carpeta a modo de ejemplo de esta guia. En este caso para que el usuario pueda utilizar la herramienta de la calculadora.

```    
$ sudo cp /usr/share/applications/galculator.desktop ./local/share/applications  
$ nano .local/share/applications/galculator.desktop  
```    

```  
[Desktop Entry]  
Version=1.0  
Name=zGalculator  
Comment=Perform simple and scientific calculations  
Exec=galculator  
Icon=galculator  
Terminal=false  
Type=Application  
Categories=MYMENU;  
StartupNotify=true  
```

Lo único que modificamos en Categories= a MYMENU;

Podemos actualizar el panel y menú con $ lxpanelctl restart

aunque es casi instantáneo ver los cambios según se hagan.

Referencias:

https://lkubaski.wordpress.com/2012/06/29/adding-lxde-start-menu-and-desktop-shortcuts/
https://lkubaski.wordpress.com/2012/11/02/adding-lxde-start-menu-sections/

FORMA RÁPIDA DE INSTALAR TODO LO ANTERIOR

Lo mejor es tener todos los ficheros resultantes de arriba en un puesto, y luego copiarlos a la nueva raspberry. Yo lo hago con el siguiente script

```  
cd ~/Documentos/09-HARDWARE/RASPBERRYPI/LXDE  
scp -r . pi@ip_nueva_raspberry:/home/pi  
```

Dentro de la carpeta LXDE tengo los siguientes ficheros que se necesitan:

```  
$ ls -aR  
.config  disfarputty.sh kbdisfar.sh .putty zacofarva.png  
disfarcolor.sh disfar.sh .local zacofarva logo color.png  
./.config:  
.  ..  autostart  menus  
./.config/autostart:  
.  ..  x11vnc.desktop  
./.config/menus:  
.  ..  adding_zacofarva_lxde-pi-applications.menu  lxde-pi-applications.menu  
./.local:  
.  ..  share  
./.local/share:  
.  ..  applications  desktop-directories  
./.local/share/applications:  
.  ..  galculator.desktop  leafpad.desktop  mimeapps.list  puttyDISFAR.desktop  puttyGEO.desktop  
./.local/share/desktop-directories:  
.  ..  zacofarva.directory  
./.putty:  
.  ..  sessions  
./.putty/sessions:  
.  ..  a  geo  zacofarva  zacofarvazamora  
```

PUTTY

Es el programa telnet que utilizaremos para conectarnos a Disfar (como el smarterm en simple) $ sudo apt-get install putty

Ya está instalado. Ahora podemos copiar los ficheros de las sesiones ya creadas (por almacén o para determiandas funciones) en la siguiente carpeta $ mkdir .putty/sesiones

Para que funcionen las teclas de función PF1, PF2, PF3 y PF4 de Disfar hay que añadir kbdisfar.sh para que se ejecute al inicio de sesión del usuario pi $ nano .profile sh ./kbdisfar.sh

Todo lo referente al Putty, sesiones y configuración de teclado aquí:
putty-configurar-teclado-para-que-funcionen-las-pfs.html

VNC

Para conectarnos al equipo por VNC aunque yo prefiero por SSH, reconozco que no he encotrado una forma más simple. Quizá probar con instalación de tightvnc

```    
$ sudo apt-get install netatalk x11vnc  
$ x11vnc -storepasswd  
```

Para que se arranque al comienzo de cada arranque de sistema, hay que crear el siguiente fichero texto:

```    
$ mkdir .config/autostart  
$ nano ~/.config/autostart/x11vnc.desktop  
```    

```  
[Desktop Entry]  
Encoding=UTF-8  
Type=Application  
Name=X11VNC  
Comment=  
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer  
StartupNotify=false  
Terminal=false  
Hidden=false  
```

Referencias:

http://dennistt.net/2013/09/15/raspberry-pi/

SAMBA

Es bueno poder disponer de una carpeta compartida en la red.

```     
$ sudo apt-get install samba  
$ sudo smbpasswd -a   (le pongo la misma)  
$ sudo cp /etc/samba/smb.conf ~  
```

Edit the file $ sudo nano /etc/samba/smb.conf

```  
[KERMIT]  
path = /home/pi/KERMIT  
available = yes  
(#valid users = <user_name> no lo pongo)  
read only = no  
browseable = yes  
public = yes  
writable = yes  
```

$ sudo service samba restart

VARIOS

Otras preferencias

  • deinstalaciones para que al hacer el apt-get update && apt-get upgrade no descargue cosas innecesarias:

    sudo apt-get remove mathematica*
    sudo apt-get remove minecraft-pi
    sudo apt-get remove sonic-pi
    sudo apt-get remove nodered
    sudo apt-get autoremove

  • vim y alias "l"

$ sudo apt-get install vim (mi editor de texto favorito)
$ vim .bashrc para alias l="ls -al"

  • Si se quiere instalar impresoras se necesitará

$ sudo apt-get install cups (tarda un huevo)
$ sudo usermod -a -G lpadmin pi

y luego con web browser localhost:631

  • Las contraseñas wifi se guardan en $ sudo vim /etc/wpa_supplicant/wpa_supplicant.conf

  • Establecer fondo de pantalla con el logo de la empresa.

Todo lo siguiente sobra para nuestra instalación. Lo dejo aquí por consultas.
Formas manuales para el autologin y arranque en entorno gráfic

Esto queda aquí por culturilla general pues con $ sudo raspi-config se consigue lo mismo

autologin

$ sudo nano /etc/inittab

comentar @1:2345:respawn:/bin/getty 115200 tty1
añadir para el usuario pi 1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1

autostart desktop LXDE

en /etc/rc.local añadir linea antes del exit 0 su -l pi -c startx

mejor:
$ sudo raspi-config
Enable Boot to Desktop/Scratch
Desktop Login as user pi at the Graphical Desktop
Finish y reboot

Tags: raspberry, setup, linux

Comments? Tweet