Translate

domingo, noviembre 18, 2018

How to access iPhone with iOS 11 in Linux

How to access iPhone (6s) with iOS 11 in Linux


A couple of years ago, I wrote a detailed tutorial on iPhone mount & use compatibility in Linux across multiple distributions. KDE/Plasma struggled with this the most, not seeing and/or not mounting the device automatically. But we did have a relatively neat solution in the form of idevice and ifuse utilities, with some command line hacking.
With the release of iOS 11 (and possibly one version earlier) things seem to have changed somewhat. And I have only run and tested iPhone 6 with iOS 8/9. To wit, here's another tutorial to help you work around this. At the moment, I have an iPhone 6s model for testing, and I cannot guarantee this method will work well with newer models, but overall, the procedure should be identical for the rest of the Apple smartphone range. Anyway, after me.
Teaser

Tools of the trade

This guide aims specifically at Plasma use, however, we will cover all angles. It is applicable across the distro range. The only difference is in the subset of libraries and tools you will need to install. This guide has been compiled working with Kubuntu 17.10, so it works for any Ubuntu-based (and maybe even Debian) system. If you're wondering how to achieve this in other distros, like Fedora, please take a look at my guide detailing exactly this - iPhone connectivity in Fedora KDE. The principles are identical.
Let's begin with the necessary extras - the set of libraries is very similar to what we did in the past, except some tools have new, incremented versions. Nothing too dramatic:
sudo apt-get install ideviceinstaller python-imobiledevice libimobiledevice-utils libimobiledevice6 libplist3 python-plist ifuse usbmuxd

Connect iPhone

The next step is to connect your device and make sure it's recognized. You can check this with dmesg, and look for an output similar to this:
[ ] usb 2-3: new high-speed USB device number 4 using ehci-pci
[ ] usb 2-3: New USB device found, idVendor=05ac, idProduct=12a8
[ ] usb 2-3: New USB device strings: Mfr=1, Product=2 ...
[ ] usb 2-3: Product: iPhone
[ ] usb 2-3: Manufacturer: Apple Inc.
[ ] usb 2-3: SerialNumber: 42aed16e758bde7cb268 ...
[ ] ipheth 2-3:4.2: Apple iPhone USB Ethernet device attached
[ ] usbcore: registered new interface driver ipheth

Open console

Now, let's try the pair command - which is most likely going to fail:
No device found
idevicepair pair
No device found, is it plugged in?
What you need to do next is run the usbmuxd command. This is a socket daemon to multiplex connections from and to iOS devices. Normally, it should run as a background service, which we will enable later, but for now, open a separate terminal, and as sudo or root, run:
usbmuxd -f -v
The console should fill in with text, which is good. Now, in a separate console window, let's go back to trying to pair the device. As before, we will need to unlock the iPhone and trust the laptop:
idevicepair pair
SUCCESS: Paired with device 421c580dfa7ba121f591b1aed14a657bde7cb268

Mount device

Now, create a mount point, something like media/iPhone. Make it accessible to everyone with chmod 777 or make your user the owner of the directory so you can access it without root permissions in the file manager. Then, mount with ifuse:
sudo mkdir /media/iPhone
sudo chown : /media/iPhone
ifuse /media/iPhone/
Open the file manager (Dolphin) and navigate to the mount point.
iPhone mounted

Cosmetics

For easier future access, you can now drag & drop the location shortcut into the sidebar, and even add a custom icon and/or name. Then, every time you mount an iPhone, you can easily go there, and if there's no device mounted, no harm done.
Shortcut
iPhone mounted, nice icon
You can script the mount and umount procedures if you wish. Likewise, the same applies to the usbmuxd service, which you may want to be running with your system. You can enable it to run on startup - and if you get an ugly systemd error, then just "manually" start it when needed or every time the desktop logs through Plasma settings. Either one is fine.

systemctl enable usbmuxd
systemctl start usbmuxd 


When you want to unmount, do the following two lines
fusermount -u /media/iPhone/
idevicepair unpair


lunes, septiembre 24, 2018

x96 tv box, instalar un servidor proxy squid

Configuración del proxy squid:

1.modificar /etc/squid/squid.conf:

#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 0.0.0.0/8 192.168.100.0/24 192.168.101.0/24
acl SSL_ports port 443
acl Safe_ports port 80   # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports

http_access deny to_localhost
icp_access deny all
htcp_access deny all

http_port 3128

#Aqui definimos la salida de los logs,
#podemos poner la salida a una MicroSD
access_log /etc/squid/log/access.log squid
cache_log /etc/squid/log/cache.log

#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3

# Allow all machines to all sites

http_access allow all


2.Crear el directorio  /etc/squid/log/ y cambiar de propietario a proxy:

chown -Rv proxy:proxy  /etc/squid/log/

3. Podemos reinicar el servicio squid "service squid restart" y configurar un navegador,
con  tail -f  /etc/squid/log/access.log vemos como funciona el proxy

3-para una vista visual de la navegacion en el proxy:
   primero instalar apache: apt install apache2
   segundo: seguir tutorial:
https://www.tecmint.com/sarg-squid-analysis-report-generator-and-internet-bandwidth-monitoring-tool/

4- Los logs generados pesan bastante sobre todo access.log, squid tiene una funcion para rotar los logs:
    4.1 :Editamos /etc/logrotate.d/squid y ponemos la hubicación correcta de los logs (/etc/squid/log/)
     4.2: Usamos crontab para llamar a logrotate y borrar logs de mas de 10 dias:
                #Rotado diario de logs squid
                #Todos los dias a las 23:55
                 55 23  * * *  su -l root -c '/usr/sbin/logrotate /etc/logrotate.conf  -f'
                 #Borramos todos aquellos logs *.gz que tienen mas de 10 dias


                55 23  * * *  su -l root -c '/usr/bin/find /etc/squid/log/*.gz -mtime +10 -type f -exec rm -f \{\} \;'

jueves, agosto 16, 2018

PiVPN: Configura una VPN casera en una Raspberry Pi utilizando OpenVPN



Esta nueva entrada del blog es relativa al grupo de publicaciones que pretenden demostrar que una Raspberry Pi se puede utilizar como una herramienta de seguridad. En ella vamos a crear un servidor VPN en nuestra Raspberry Pi, pero antes de nada vamos a explicar que es una VPN.
Una VPN (Virtual Private Network) es una tecnología de red que permite extender de forma segura una red LAN sobre una red pública (Internet), es decir, podemos conectarnos a la red local LAN de nuestra casa desde el exterior y a través de Internet, de la misma forma que si estuviésemos dentro de nuestra casa. Como se muestra en la siguiente imagen, gracias a esta tecnología se crea un tunel seguro entre el cliente VPN (Smartphone, Ordenador, etc.) y el servidor VPN para que toda la comunicación que existe sea segura.
Tanto el cliente VPN como el servidor VPN podrían ser routers con el objetivo de interconectar 2 redes de comunicaciones, pero en el caso que nos ocupa nos vamos a centrar en el esquema anterior.
Las principales ventajas que ofrece esta tecnología son las siguientes:
  • Permite interconectar redes geográficamente separadas sin necesidad de una línea dedicada.
  • Permite acceder a los recursos de la red de destino: impresoras, discos en red, carpetas compartidas, intranets, etc.
  • Asegura que la información intercambiada entre ambas redes es confidencial.
  • Permite la navegación segura a través de Internet aunque la red origen sea insegura, ya que todo el tráfico estará cifrado.
  • Permiten anonimizar direcciones origen, ya que va todo encaminado por la VPN y el origen de nuestras peticiones a diferentes servidores de Internet sería la red a la que nos conectamos donde está el servidor VPN.
Todas las ventajas son importantes, pero en este caso concreto nos vamos a centrar en la parte de navegación segura a través de Internet. Esto es muy importante, ya que a lo largo de la ciudad existen:
  • Redes abiertas.
  • Redes con un cifrado inseguro como WEP.
  • Redes vulnerables al tener configurado WPS.
  • Redes con un punto de acceso falso (fake AP).
Si navegáramos por estas redes sin una VPN toda la información podría ser obtenida por un atacante y descubrir cuáles son nuestras contraseñas, por qué paginas navegamos, cuáles son nuestros gustos de navegación o qué aplicaciones móviles utilizamos.
Por otra parte, los protocolos que se pueden utilizar para montar una VPN son:
  • PPTP (Point to Point Tunneling Protocol): Es un protocolo de capa 2 para crear conexiones VPN. Fué desarrollado en 1999 por un grupo de empresas entre las que se encontraba Microsoft. Este protocolo encapsula y encripta tráfico PPP. Actualmente no se recomienda su utilización, ya que han sido encontradas algunas vulnerabilidades relacionadas con la implementación de los algoritmos criptográficos utilizados y con la longitud máxima del tamaño de clave (128 bits).
  • IPSec/L2TP (Layer 2 Tunneling Protocol): Por un lado, L2TP se encarga de establecer un tunel entre el origen y el destino encapsulando una trama L2TP dentro de un datagrama UDP y que posteriormente irá encapsulado en un paquete IP. L2TP no proporciona por sí mismo ningún mecanismo de seguridad y utiliza IPSec para ello. Por otro lado, IPSec es un conjunto de protocolos utilizados para asegurar las comunicaciones en el nivel IP de la pila de protocolos TCP/IP.
  • SSTP (Secure Software Tunneling Protocol): Este protocolo encapsula tráfico PPP sobre una conexión SSL (actualmente SSL v3), por tanto, tiene la ventaja de poder atravesar firewalls con mayor facilidad. Fue introducido por Microsoft con la aparición del Windows Vista, pero actualmente tiene soporte para distintos sistemas operativos.
  • IKEv2: Es un tunel VPN basado en IPSec, el cual fue desarrollado por Microsoft y Cisco. No es tan extendido como IPSec/L2TP, pero es considerado tan bueno o incluso superior que IPSec/L2TP en términos de seguridad, rendimiento y estabilidad.
  • OpenVPN: Es una solución de software libre con licencia GNU (creada por Jame Yonan) que es capaz de crear VPNs, utilizando SSL/TLS para el intercambio de claves. Además, es capaz de atravesar NATs y firewalls. La librería criptográfica que utiliza este software es OpenSSL. Permite seleccionar entre 2 opciones de funcionamiento: TAP que es una VPN de capa 2 (la cual, encapsula tramas Ethernet 802.3), y TUN que es una VPN de capa 3 (que encapsula paquetes IP). Esta es la opción que se va a utilizar para configurar una VPN casera en una raspberry pi.
Para configurar nuestro servidor VPN vamos a utilizar un proyecto llamado PiVPN, el cual permite configurar OpenVPN de manera sencilla en una raspberry.
A continuación se muestran los pasos que hemos dado para montar OpenVPN en nuestra raspberry, utilizando el proyecto PiVPN:
  1. El primer paso para crear este proyecto será cargar el sistema operativo raspbian en una tarjeta micro SD (en este caso de 16GB), para ello es posible utilizar la siguiente publicación de éste mismo blog:
    Además, el sistema operativo raspbian se puede descargar de la página oficial de raspberry (la versión LITE será suficiente):
  2. A continuación, se deberá insertar la tarjeta micro SD en la raspberry, y asegurarnos que tenemos un cable de red conectado hacia el router y que por tanto, la raspberry tiene Internet. Además, será necesario conectar un cable HDMI a un monitor y el cable de alimentación de la raspberry.
  3. Tras iniciar la Raspberry Pi 3 será necesario realizar el login en el sistema con las contraseñas por defecto de raspbian:
    • usuario: pi
    • contraseña: raspberry
  4. En este punto, ya estaremos logados dentro del sistema operativo raspbian. Es importante tener en cuenta que el idioma del teclado es inglés, por tanto, en este punto tenemos 2 opciones: cambiar el teclado a español con el comando sudo dpkg-reconfigure keyboard-configuration y reiniciar para que se apliquen los cambios, o habilitar el acceso por SSH mediante el comando /etc/init.d/ssh start.
  5. Seguidamente, será necesario actualizar nuestro sistema operativo utilizando los siguientes comandos, de igual forma que se especifica en la página oficial de raspberry:
    • apt-get update
    • apt-get dist-upgrade
  6. Se deberá cambiar el password con el comando passwd, porque, como todos sabéis, es un gran agujero de seguridad dejar el password por defecto del sistema operativo instalado.
  7. Seguidamente, utilizaremos el siguiente comando para comenzar la instalación:
    • curl -L https://install.pivpn.io | bash 
    • NOTA: si da error ejecutar como root: 
    • curl -L https://install.pivpn.io | sed '2s/.*/set -x/' > install.sh; chmod a+x install.sh; ./install.sh
  8. Primero, el programa comprueba que el sistema operativo esté actualizado, pero como en nuestro caso estará actualizado, seguirá la instalación:
  9. En este punto nos informa que la aplicación transformará nuestra raspberry en un servidor OpenVPN:
  10. Además, nos indica que nuestra IP debe ser estática, lo cual es normal para que la dirección del servidor OpenVPN sea siempre la misma:
  11. En este momento, nos pide seleccionar una interfaz de red que será la que proporcione Internet:
  12. Y se asigna la IP que tiene la interfaz de red anterior como IP estática:
  13. Entonces, la instalación advierte que es posible que el router asigne esta IP a otro dispositivo y haya conflicto. En el caso de que haya problemas, puedes realizar la asignación de IPs manualmente:
  14. En este momento la instalación indica que será necesario seleccionar un usuario local. Por temas de seguridad, lo más recomendable es crear un usuario nuevo distinto del administrador.
  15. En nuestro caso, para realizar la prueba de concepto (PoC) utilizaremos el usuario que viene por defecto, aunque previamente hemos cambiado la contraseña del mismo:
  16. En este punto, nos informa de que sería recomendable habilitar las actualizaciones no-atendidas manualmente, ya que el servidor estará expuesto a Internet:
  17. Como es lógica la recomendación que nos da la instalación, habilitamos las actualizaciones no-atendidas:
  18. Ahora nos indica si el protocolo que queremos utilizar es TCP o UDP. Cada protocolo tiene sus ventajas y sus desventajas. En nuestro caso, hemos utilizado TCP porque asegura la entrega de paquetes y puede llegar a ser más recomendable para navegar por Internet que es lo que pretendemos. Si el objetivo fuese mejorar la velocidad, intercambiado vídeo, audio o ficheros pesados, lo más recomendable sería UDP:
  19. Seguidamente, tenemos que seleccionar un puerto donde se pondrá a la escucha el servidor OpenVPN. El puerto por defecto es el 443, pero como queremos que esté algo oculto y no sea un puerto conocido, seleccionaremos otro puerto (en nuestro caso 44344):
  20. Nos pide que confirmemos el puerto seleccionado para que no haya ningún error:
  21. En este punto, la instalación nos solicita seleccionar un tamaño de clave y seleccionamos 2048-bits:
  22. Seguidamente, la instalación nos indica que va a generar las claves necesarias:
  23. Y a continuación inicia la creación de las claves, el cual, es un proceso que tarda un rato:
  24. Cuando acaba de realizar la generación de claves, el programa pregunta la forma de acceder al servidor de VPN. En nuestro caso para la Prueba de Concepto (PoC), seleccionaremos la IP pública que nos proporciona nuestro proveedor de Internet (ISP), aunque la forma más correcta de hacerlo es utilizar un servicio como No-IP para que aunque cambie la IP nuestro proveedor de Internet (ISP), no se vea afectado el acceso:
    Cuando acaba de realizar la generación de claves, el programa pregunta la forma de acceder al servidor de VPN. En nuestro caso para la Prueba de Concepto (PoC), seleccionaremos la IP pública que nos proporciona nuestro proveedor de Internet (ISP), aunque la forma más correcta de hacerlo es utilizar un servicio como No-IP para que aunque cambie la IP nuestro proveedor de Internet (ISP), no se vea afectado el acceso:
  25. Seguidamente, seleccionamos el servidor DNS que utilizaremos para conectarnos a Internet. En este caso para la Prueba de Concepto (PoC) hemos seleccionado Google:
    Para la gente que esté interesada en seleccionar un DNS propio os remito a otra de las publicaciones de este blog donde enseñamos a montar Pi-Hole en una raspberry:
    En la siguiente imagen se muestra cómo seleccionar un DNS propio.

    Además, será necesario modificar el fichero /etc/dnsmasq.conf y añadir la siguiente línea para permitir la resolución DNS a la interfaz VPN:
    listen-address=127.0.0.1, 192.168.1.2, 10.8.0.1
    La primera IP es localhost, la segunda IP corresponde a la IP local donde está instalada la Pi-Hole (que puede ser la misma donde está instalado este mismo proyecto), y la tercera IP corresponde a la IP de la interfaz VPN en la parte del servidor.
    De esta forma, conseguimos el filtrado de publicidad y páginas fraudulentas a la hora de navegar, lo cual, en este proyecto concreto que estamos montando puede ser muy recomendable.
  26. A continuación muestra la forma de crear usuarios, cómo se accede a la ayuda y dónde se almacenan los logsgenerados:
  27. El último mensaje de instalación pide reiniciar el sistema operativo:

  28. A continuación, será necesario crear, al menos, un cliente para que se conecte al servidor. En la siguiente imagen se muestra un ejemplo de creación de un cliente con el nombre client:
  29. Tras insertar el comando anterior en un terminal, pedirá el nombre del usuario y la contraseña para completar la creación del usuario. Además, paralelamente se creará un fichero con la extensión ovpn (en nuestro caso, client.ovpn), el cual se encuentra en la carpeta /home/pi que es el usuario del sistema seleccionado previamente. Éste es el fichero que deberemos cargar en el cliente OpenVPN para conectarnos a nuestro servidor. Si no lo queremos con password (mejor para el iphone pero menos seguro) ejecutar el comando pivpn add nopass
  30. Además, en el NAT de nuestro router casero deberemos añadir una regla para que todo el tráfico que nos llegue al puerto 44344 nos lo dirija al mismo puerto, pero de la ip interna configurada previamente (192.168.1.2).
  31. Por último, ya podemos probar que el servidor OpenVPN está correctamente configurado, utilizando un cliente OpenVPN.
Conexión de cliente OpenVPN en Windows
  1. En Windows será necesario instalar la aplicación openvpn-install-2.X.0.exe, de la siguiente página Web:
  2. Se importa el fichero de configuración obtenido previamente en el paso 29:
  3. Pulsamos en Connect:
  4. Introducimos la contraseña previamente introducida en el paso 29:
  5. Y ya estaríamos conectados a nuestro servidor VPN, y por tanto a nuestra red doméstica. Si verificamos la IP, podemos ver que es una de las IP de nuestra red doméstica, y que además podemos acceder a todos nuestros periféricos: impresoras, discos duros en red, etc.
  6. Para probar que realmente tenemos otra IP que es capaz de conectarse a nuestra red local, podemos utilizar el comando ipconfig de Windows como vemos en la siguiente imagen:
  7. Por último, para estar seguros que todo el tráfico está saliendo por la VPN y no por la otra interfaz de red, probamos el comando tracert que nos muestra los saltos hasta una dirección IP destino, y como se puede ver el tráfico va por la VPN:

Conexión de cliente OpenVPN en Linux
  1. Si utilizamos un sistema operativo Linux también podemos conectar un cliente OpenVPN a nuestro servidor:
  2. En la siguiente imagen se puede ver que se crea una nueva interfaz de red conectada a nuestra VPN:
  3. Además, se puede eliminar la conexión VPN únicamente cerrando el terminal abierto con la conexión o mediante el comando killall para eliminar el proceso:

Conexión de cliente OpenVPN en Iphone
  1. Por último, también se puede conectar un cliente de OpenVPN desde un terminal iphone al servidor configurado previamente. Primero será necesario descargar e instalar la aplicación OpenVPN desde Apple Store:
  2. Además, será necesario transferir mediante itunes el fichero ovpn generado anteriormente en el paso 29. La forma de incluir el fichero se realizará seleccionando la aplicación como se ve en la imagen inferior y utilizando el botón Añadir archivo…:
  3. Finalmente, pinchamos en el botón conectar dentro de la app OpenVPN instalada en el paso 1 e introducimos la contraseña. De esta forma, ya estaremos conectados al servidor VPN y podremos navegar de forma segura con nuestro terminal iphone, sin preocuparnos de estar conectado a una red wifi insegura.

miércoles, agosto 08, 2018

TV box x96 - Instalacion S.O, servidorVPN, libreelec `kodi + hyperion + domoticz

Mi x96 box tiene 2gb de ram y 16GB, tiene una CPU amlogic s905w.

-Descargar arbian para s905w:
https://mxqproject.com/tutorial-s905s905xs912-linux-ubuntu-mate-install-tutorial/

Una vez flasheada la SD (he usado de 16GB):

  -Usar fichero gxl_p212_2g.dtb, cogerlo de la freeelect, es el unico que nos deja arrancar desde la NAND y renombrarlo en la carpeta raiz como dtb.img.

  -Desconectar de la corriente el box, insertas la SD/Pen, metes un palillo por el agujero de reset y conectas     la fuente renuevo y debería iniciar el armbian(No sueltes el reset hasta que salga la pantalla de instalación     de libreelec)

-Boot: primero apretar con un palillo el boton que esta en el agujero AV
-Iniciar sesion con root, pass 1234
-el wifi esta desactivado iniciarlo con sudo modprobe wifi_dummy, tambier editar /etc/modules y agregar wifi_dummy
-para instalar en la NAND, como root ejecutar /root/install.sh


1 Configuración del proxy squid:

He creado la guía en el siguiente link:
http://surfero.blogspot.com/2018/09/x96-tv-box-instalar-un-servidor-proxy.html

2- Instalación domoticz y apple homebridge:

    2.1.Domoticz:
`sudo curl -L install.domoticz.com | bash'

Con este comando tendremos instalado domoticz y estará disponible tras el boot (url :8080, 443)
Podemos agregar un controlador esp8266 con dispositivos (dht22, sensor humedad, etc..).
Agregamos el firmware EspEasy en el dispositivo esp8266, configuramos los dispositivos a usar, y en config--> seleccionamos "protocol domoticz http" puerto 8080. Desde domoticz en setup--> hardware agregamos el controldor esp8266 como "Dummy does nothing..)"., en "setup--> devices" devemos anotar el IDX del dispositivo nuevo, es importante porque va a ser la unica forma de comunicar entre domoticz y easyesp el dispositivo nuevo.
Desde el firmware en "Devices" devemos agregar el IDX del despositivo que queremos agregar, pulsar "send" y aplicar, con esto domoticz ya recoge dsatos de nuestro sensor en esp8266.


   2.2 apple homebridge para domoticz

Seguir este tutorial y tendremos los dispositivos conectados a domoticz en nuestro iphone, ipad, etc..:
https://www.domoticz.com/wiki/Homekit_Siri

Si queremos meter nuestros dispositivos de domoticz deberemos crear un plan con todos ellos (setup -->more options-->plans)

3-Instalar un servidor vpn doméstico
Seguir este tutorial:
http://surfero.blogspot.com/2018/08/pivpn-configura-una-vpn-casera-en-una.html

4-: como alternativa a armbian podemos instar libreelec, funciona perfectamente como mediacenter kodi y Linux:

https://androidpc.es/tutorial-libreelec-guia-instalacion-tv-box-android/
https://medium.com/@tomac/how-to-install-libreelec-linux-on-cheap-android-tv-box-51f82cdf10c1

  4.1 Instalar ambilight casero , x96 + arduino leds ws2801
      -Comprobar el funcionamiento  de leds WS8201
       http://soloelectronicos.com/2017/02/20/como-probar-una-tira-de-leds-ws2801/
      -Guia howto: https://libreelec.wiki/hyperion
      -Habilitar "Allow remote control by programs on this system"
       y "Allow remote control by programs on other systems" (necesitamos ambos)
      -Configurar Arduino, sketch:
       https://hyperion-project.org/threads/diy-amblight-project-guide-hyperion-ws2801-ws2812b-apa102.8/
      -Instalar Hyperion en Libreelec para x96 (software que conecta kodi con arduino+leds):
          En libreelec hay que instalar el servicio de hyperion desde el repositorio de libreelec, despues                        deberemos configurar el siguente dfichero :
           /storage/.kodi/userdata/addon_data/service.hyperion/hyperion.config.json
                    Aqui decimos el driver de leds que usamos (adalight) el puerto que usa nuestro arduino (/dev/ttyUSB0) , la velocidad de conexion 115.200. Esta información sale del skecth que hemos progamado en nuestro arduino.

        "device" :
        {
                "name"       : "MyHyperionConfig",
                "type"       : "Adalight",
                "output"     : "/dev/ttyUSB0",
                "rate"       : 115200,
                "colorOrder" : "rgb"
        },


Posibles errores de hyperion, en codi y libreelec (util):

ver el log: cat /storage/logfiles/hyperion.log
In Kodi
navigate ->System->Services->Remote control

EDIT: Your Hyperion won´t run? You can´t access USB too,
Change hyperion user "osmc" to "root" and Group too under:
nano /etc/systemd/system/hyperion.service
reload servcie config after change
systemctl -q daemon-reload
and restart hyperion
service hyperion restart
You could scroll with up and down arrows on your keyboard through the log for control purposes
journalctl -u hyperion.service