Mostrando entradas con la etiqueta sistema operativo. Mostrar todas las entradas
Mostrando entradas con la etiqueta sistema operativo. Mostrar todas las entradas

lunes, 2 de marzo de 2015

Conexións remotas a Raspberry Pi


Usar a Raspberry Pi sen teclado e pantalla


Conectarse mediante SSH


Para traballar coa Raspberry Pi, como en calquera outro equipo, se pode acceder remotamente a ela. No caso da Raspberry, non é necesario tela conectada nunha lan, con portos abertos redireccionados, co firewall aberto ou conectado nunha DMZ. Xa que co seu pequeno tamaño se pode levar no peto e conectala o noso ordenador a través do porto ethernet ou con algo de hardware a través do USB.  Tamén é posible conectala ao conmutador da nosa lan.

 Se pode usar a Raspberry Pi sin conectala en unha pantalla e teclado, para executar un programa ou script. Isto é posible usando "Putty" en windows ou a consola de linux, por medio de SSH para acceder al terminal da Raspberry PI.

SSH (Secure Shell) é un protocolo de rede usado para transferir datos nun sentido e outro, para executar comandos remotamente en outra máquina, a través da rede utilizando un enlace serie.

Independentemente da conexión usada (seleccionada coa IP ou porto serie), Putty ou un programa similar pode usase para conectarse a Raspberry Pi e executar a maioría dos programas que normalmente se poden executar co terminal.

Para activar (ou desactivar) o servidor SSH pódese acceder o programa de configuración da Raspberry (tecleando na consola "
sudo raspi-config”) e seleccionar SSH no menú (pode estar activada nalgunhas distros por defecto).

Entón se pode introducir a dirección Ip da túa Raspberry Pi (si te conectas a través da rede), o cal ti podes coñecer tecleando
“hostname -I”.

Unha vez configurado o servidor de SSH, e previamente configurada a rede se pode acceder mediante unha consola do equipo que utilicemos como cliente (ou putty en windows) da seguinte forma:


 manuel@portatil:~$ ssh ken@10.0.5.150
 
O que abrira unha sesión remota na Raspberry que nos permitirá teclear comandos como si estiveramos fisicamente trallando con ela. Este enlace resume o proceso para conectarse por medio da rede da rede. http://learn.adafruit.com/adafruits-raspberry-pi-lesson-6-using-ssh

 

Unha alternativa: Escritorio Remoto


Outra alternativa para aplicacións que precisan usar o interface gráfico e conectarse mediante un escritorio remoto. Para iso unha alternativa é usar VNC.

VNC é un sistema de acceso a un escritorio remoto que permite o control del interface do escritorio de un ordenador en outro. VNC transmite os eventos do teclado e rato o controlador e recibe actualización da pantalla a través da rede do equipo remoto.

Isto permite ver o escritorio da Rasberry Pi dentro dunha fiestra no noso computador. Permitindo o control como se ti estiveras traballando sobre a mesma Raspberry Pi. 


Para instalar o servidor VNC (neste caso instalaremos TightVNC) hai abrir un terminal e teclear: 

sudo apt-get install tightvncserve
 
A continuación executamos o servidor TightVNC o cal nos pedira introducir un contrasinal e un contrasinal para so lectura opcional.


tightvncserver

Arrincamos o servidor VNC dende o terminal. Por exemplo, arrincamos unha sesión sobre o VNC no dispositivo 0 con resolución en alta definición:

 

vncserver :0 -geometry 1920x1080 -depth 24

Despois, sobre o noso ordenador instalamos  e executamos o cliente VNC:
  •  Sobre unha máquina linux instalamos o paquete xtightvncviewer: sudo apt-get install xtightvncviewer 
  • En calquera outro caso, TightVNC se pode descargar dende tightvnc.com
 Finalmente xa estamos en disposición de conectarnos a Raspberry Pi a través do noso cliente por medio do  VNC.
 

domingo, 28 de abril de 2013

Compilación e instalación de Freertos na Raspberry Pi

Freertos e un sistema operativo en tempo real que pode ser instalado sobre a Raspberry Pi. A diferencia fundamental con respecto a outros sistemas operativos como por exemplo o Raspibian é que nos sistemas operativos de tempo real podes saber que o tempo de proceso do programa vai a ter unha duración dentro dun límite de tempo, o cal permite unha resposta adecuada para unha automatización dun proceso crítico. Nun sistema operativo multitarefa, de propósito xeral, o tempo de proceso non se pode asegurar, depende da prioridade da tarefa, do número tarefas en execución, etc.

Para elo é necesario baixarse unha serie de ferramentas e arquivos que dependen do sistema operativo onde se compilen. Os arquivos necesarios para a compilación se poden encontrar neste repositorio https://github.com/jameswalmsley/RaspberryPi-FreeRTOS. O programa proposto é simplemente un "Ola mundo" pero en harware (un led que parpadea). Hai que baixar os arquivos do repositorio, facendo un git clone.

Como é probable que compilemos os arquivos en un dispositivo distinto da Rasberry pi é necesario utilizar o "toolchain" (non se me ocorre como traducilo) para que a compilación non sexa co xogo de instruccións do procesador do equipo no que imos facer o proceso. O meu procesador, un x86 compila código para outro procesador, un ARM. De non facelo así, o compilar co make nos dará un erro de código 127 por que non encontra o gcc adecuado para compilar o código.

usuario@equipo:/datos/robotica/RaspberryPi-FreeRTOS$ make
 Dark Builder - Unified Build Environment
 Version (1.0.0 - Armstrong)
  [CC]    [RaspberryPi BSP] port.o
make: arm-none-eabi-gcc: Comando non atopado
make: *** [/datos/robotica/RaspberryPi-FreeRTOS/build/FreeRTOS/Source/portable/GCC/RaspberryPi/port.o] Erro 127



A Raspberry utiliza un procesador Broadcom BCM2835 SoC, que a súa vez está formado por varios módulos. O módulos máis importante é o procesador da CPU, un ARM1176JZF 700 MHz. Temos que instalar o compilador adecuado para este procesador que se pode obter do seguinte enlace https://launchpad.net/gcc-arm-embedded/. Ademais temos que especificarlle no makefile o camiño para que encontre os arquivos que precise. A continuación podedes ver como exemplo a ruta que eu tiña no meu equipo.

kernel.elf: LDFLAGS += -L"/datos/robotica/gcc-arm-none-eabi-4_7-2012q4/lib/gcc/arm-none-eabi/4.7.3/" -lgcc
kernel.elf: LDFLAGS += -L"/datos/robotica/gcc-arm-none-eabi-4_7-2012q4/arm-none-eabi/lib/" -lc


Unha vez executado o comando make créase no directorio un arquivo chamado kernel.img. Para poder utilizar ese kernel o máis fácil é nunha instalación de calquera distribución para a Raspberry sustituir o kernel orixinal polo kernel do Freertos. Neste documento podedes consultar como arrinca a Rasberry e o proceso de instalación do Freertos https://abacus.abo.fi/ro.nsf/141b8735bd22ff31c225700600473a01/6bb4b57f4db82685c2257aec0052581e/$FILE/ex5_2013.pdf

Unha vez feito isto, poderedes desfrutar do marabilloso chiscar do led verde  da Raspberry pi.