Archivo de categoría Posts

PorLeón Ramos

Script para hacer respaldos automáticos de mongodb

A principios de este año 2017 se presentó un tipo de «Ransomeware» que atacaba bases de datos no relaciones MongoDB, <<Ransomeware es un tipo de software malicioso que codifica tu información sensible y cobra un rescate para devolverte el acceso a la misma, proviene del inglés «Ransome» que significa secuestro y «Software»>>  y digo un tipo de Ransomeware porque en realidad no codificaba tu información, simplemente ejecutaba una sentencia de borrado y aún así te pedía rescate. Para los que alguna vez jugamos con bases de datos relacionales, su equivalente sería un «delete database» ejecutado de forma remota sobre servidores mal asegurados.

Dicho lo anterior, ese hecho dejó bien claro que era momento de tener respaldos frecuentes y bien almacenados. Si, como yo, tienes una aproximación muy práctica a las cosas, aquí te dejo un script que puede ayudarte con ese cometido.

Realizar un respaldo de bases de datos mongodb programado y, después borrar los respaldos mayores a un número de días para evitar saturación de disco duro.

No está demás mencionar que el script puede modificarse para respaldar casi cualquier cosa y, como lo estoy liberando bajo la licencia GPLv3, te invito a que lo modifiques a tu antojo. Sólo recuerda compartirlo una vez que lo cambies. Puedes realizar una derivación de mi repositorio.

El archivo readme.md tiene las instrucciones básicas de su uso, pero si tienes alguna duda posterior, no vaciles en contactarme.

Aquí la liga de acceso al repositorio: https://goo.gl/wKfiVK

¡Que la paz mental te acompañe con respaldos completos!

Hasta la próxima,

PorRafael Sobrevilla

Robot, Actualmente, ¿Qué es un Robot y qué no es?

Robot es un término que apareció por primera vez en la novela R.U.R. (Robots Universales Rossum) del dramaturgo checo Karel Čapek, que se estrenó en 1920.1 La palabra se escribía como «robotnik»[1].

 

La palabra Robot, hace referencia a sirviente o trabajador. La autoría del término Robótica, fue desarrollado en varias novelas de Isaac Asimov donde se plantea el estudio, el diseño y la generación de inteligencia artificial, necesarios para estos tipos de dispositivos y el problema de su interacción con los seres humanos.

Este término ha tenido una evolución, en los años 60’s en la industria, se planteó a las universidades el desarrollo de manipuladores que permitieran realizar tareas complicadas y/o peligrosas para los seres humanos. Por lo que la creación de manipuladores  caracterizó a la década de los sesentas. Utilizando principios de mecánica, permitían levantar cargas más pesadas, mantenerse a una distancia segura en caso de manipulación de químicos u objetos calientes. Esto nos lleva una de las tres partes principales de un robot.

– Estructura Mecánica [3]

En la década de los 70’s, la industria solicitó a las universidades/fabricantes, que el desarrollo se orientara a la implementación de motores eléctricos e interruptores para poder controlar las estructuras de los robots industriales. El potencial de la producción en cadena, planteado por Henry Ford, al emplear manipuladores mecánicos eléctricos controlados por interruptores y por operadores dentro de las fábricas, fue alto y sigue vigente hasta en la actualidad. Los motores eléctricos, requieren mucho menos mantenimiento que los motores a combustibles fósiles, son más silencios, eficientes, fáciles de reparar y al ser controlados con interruptores versátiles, nos introduce a la segunda parte fundamental de un robot: Su sistema eléctrico de control.

– Sistema Eléctrico de Control

En los años 80’s del siglo pasado, en los manipuladores industriales, tomó importancia el uso de sensores. Con la incorporación de las mini-computadoras programables,  en las cuales se podían generar rutinas con los movimientos repetitivos que caracterizan a la producción en serie. Los problemas de desgaste en las juntas de este tipo de maquinaria, no permitían automatizar por medio de un programa de secuencias repetitivas a los manipuladores, pues las posiciones a las que tenían que llegar los elementos del manipulador, cambiaban con el tiempo, por el efecto de fricción y desgate mencionado. Por lo que los avances en el ramo de la robótica, se centran en la automatización, basada con la retroalimentación de los sensores de posición, velocidad, distancia y presencia. Estos aportes permitieron que los Manipuladores Industriales pudieran tener programaciones que con retroalimentación del mundo exterior, que asegura si las tareas se realizaban dentro de los rangos esperados, o bien, avisar que requerían un ajuste los movimientos, incluso ser ajustados automáticamente por los programas contenidos en su microcomputadora.

Actualmente la definición de robot actual es:

Dispositivo con un sistema de computo, que contiene un programa para controlar los movimientos de los actuadores mecánicos y eléctricos, utilizando la información recopilada de su medio ambiente, por medio de sus sensores, para tomar decisiones.

Partes de un robot

a) Actuadores mecánicos

b) Sistema eléctrico y Sistema electrónico

b) Con un sistema de computo, con un programa

c) Sensores, para tener una retroalimentación de su medio ambiente

Referencias

[1] https://es.wikipedia.org/wiki/Robot

[2] http://www.jotdown.es/2013/02/detroit-asi-se-hundio-el-titanic-del-capitalismo-estadounidense/

[3] http://davidentrablog.blogspot.mx/2012/12/transformaciones-del-sxix-y-su.html

PorLeón Ramos

¿Cansado de hacer tuit? ¡Prueba hacer un toot!

Para como están las cosas hoy, muchos sabemos cómo usar las redes sociales, pero hay preguntas importantes que preferimos no contestarnos.

  • ¿Quién es el dueño de mis fotos cuando las publico en redes sociales?

¿Son mías? No para nada, los términos de licenciamiento pueden cambiar y lo harán con el tiempo, pero básicamente dicen que al subir tus fotografías a dichas redes, aunque conservas la propiedad de las mismas, estás otorgando una licencia de uso sin costo a twitter, facebook y a todas sus redes emparentadas. Básicamente, pueden usar tus fotos para lo que quieran, venderlas si les da la gana, y tú no recibirás una retribución por ello.

  • ¿En dónde vive mi información?

Bien, pues en los servidores del dueño de la aplicación, si es facebook, en la granja de servidores de facebook, que bien pueden estar en suelo americano y ser susceptibles a la ley patriota (que el gobierno americano pueda pedir sin restricción ver todo tu perfil si así lo desea), o bien, repartidos por el globo terráqueo.

  • Si  borro todo mi contenido, ¿qué pasará con mis datos?

Si el contenido fue compartido con otros usuarios, las redes sociales ya no pueden asegurarte su eliminación. Básicamente tu información ya fue redistribuída y no podrás detenerla (excepto con algún fallo de la corte americana de derecho al olvido). Por otro lado, aunque tu información no haya sido compartida por otros usuarios, twitter y facebook se reservan el derecho de tener respaldos completos y almacenarlos durante el tiempo que ellos consideren necesario.

  • ¿Puedo ver lo que hace su código?

Pero por su puesto que no, su código es lo más secreto que tienen y su único valor, por ende, los usuarios de éste tipo de servicios no tenemos la facultad de saber qué hacen o cómo lo hacen. ¿Te habrás preguntado por qué la publicidad que te aparece está tan bien estudiada para ti? Bien, sus algoritmos de inteligencia artificial hacen la chamba de perfilar tu segmento y, más interesante, tus gustos.

¿Qué opciones tenemos?

Bien, pues como lo anunciamos con bombo y platillo, este artículo tratará sobre Mastodont, una red social federada de código abierto y que se plantea como una opción viable para reemplazar a twitter.

Pero, ¿qué ventajas reales tiene?

  1. Según la página de términos del sitio, Mastodont, únicamente utilizará tu información para mejorar la experiencia de uso del sistema. Además, se comprometen a no lucrar con su información y a no compartirla con terceras empresas.
  2. El servicio es federado, es decir, no existe una única entidad que se encarga de administrar todos los equipos. Tu mismo puedes montar tu servidor de Mastodont y convertirte en un nodo más de la federación.
  3. Es código abierto, podemos revisar lo que hace y cómo lo hace. Eso nos asegura que no estás corriendo scripts que te rastrean o que intentan algo malicioso contigo.
  4. No más publicidad molesta en el servicio. Su página es limpia y, aunque admito ser neófito en la red, sus funciones parecen ser muy sencillas.

Son cuatro razones importantes de peso ¿no creen? Bienvenidos a Mastodont.

Nuestra cuenta es: @creadoresdigitales y estamos en mastodont.social

 

PorLeón Ramos

Hacer un cable de audio plug 6.3mm

Hola amigos:

Para los que están buscando cómo conectar su consola, mezcladora de audio, guitarra eléctrica, amplificador, audífonos, eccétera.

Aquí el video que les dice paso a paso la forma de realizarlo:

Para los que quieren las instrucciones paso a paso, aquí las mismas:

  1. Abre los conectores girando el capuchón
  2. Opcionalmente lija suavemente las terminales en donde se soldará el cable
  3. Estaña con un punto de soldadura las terminales del conector
  4. Ensarta el capuchón de plástico y la cubierta de rosca en el cable
  5. Con unas pinzas de corte o pelacables, pela la cubierta exterior del cable
  6. Selecciona el hilo o los hilos que usarás y pela sus respectivas puntas
  7. Mide una o varias veces la distancia del conector para que el cable quede apropiadamente protegido
  8. Corta los excesos
  9. Suelda las puntas al cable apoyándote de un atril
  10. Coloca la protección de plástico y enrosca la tapa
  11. Con el multímetro, prueba continuidad del cable

Espero que les haya servido y que puedan complementar muy bien su instalación de audio.

 

PorLeón Ramos

Problemas con un módulo DS1302

Hola amigos:

Quiero compartirles los problemas que tuve con un módulo DS1302 que pedí a China. Pues lo conecté y, aunque todo se veía bien, con un programita sencillo que imprimía la hora al monitor serial, tenía lecturas erróneas. Por ejemplo:

  1. 23:34:04 <- buena lectura
  2. 23:34:05 <- buena lectura
  3. 01:01:10 <- mala lectura
  4. 01:10:11 <- mala lectura
  5. 23:34:08 <- buena lectura

Pues pasé horas, ¡horas! revisando las bibliotecas que usé. Descargué varias, las revisé parte por parte, descarté las que no me gustaban. También cambié puertos, cables, y todo era en vano. Bien, pues les comparto una receta de cocina para que no sufran lo mismo que sufrí yo y se den de golpes contra la pared cuando prueben lo siguiente:

  1. Toma el módulo y revisa que tu integrado esté orientado como viene en la placa impresa. ¡Uno de mis módulos tenía el porta integrados volteado! Asegúrate de que sea como la placa lo dice.
  2. Con unas pinzas de punta, saca y endereza correctamente los pines del DS1302. Vuélvelo a conectar y asegúrate de que la panza del integrado toque el porta integrados. (Esto era lo que me causaba ruido).
  3. Coloca la pila CR-2032 en el porta pilas y asegúrate de que no tiene «juego», es decir, que está floja. Si lo está, retírala y con unas pinzas baja un poco el seguro para que haga mayor fuerza y sostenga la pila.
  4. Cambia tus cables, yo estaba usando los cables para pines arduino, unos hembra-macho. Lo que hice fue encajar el módulo directamente en la protoboard y usar cable telefónico o el del cable ethernet.
  5. Usa una biblioteca robusta de interconexión y pon atención a los tiempos de lectura. La mejor biblioteca que encontré es la de Timur Maksimov 2014. Aquí la liga a la página.

Aquí adjunto una foto de stock en donde pueden ver que el integrado está meramente sobrepuesto en el porta integrado. Así vienen por lo general estos módulos, asegúrate de que corriges ese punto.

Aquí una foto de los cables que retiré. Repito, RETIRÉ.

Aquí una foto de los cables que usé:

Espero que estos tips les ayuden y en menos de quince minutos estén arriba con su reloj.

Hasta la próxima,

PorLeón Ramos

Proyecto de restauración de tornamesa

¡Hola y bienvenidos a la magia del vinil!

Pues si, así como lo leen, heredé una tornamesa de mi padre y me comprometí conmigo mismo a restaurarla. Dentro de todos los pasos que involucraron bastante arreglo físico, también hubo una etapa en donde realicé un preamplificador para el tocadiscos.

Verán, el audio que el tocadiscos produce es muy débil y debe de ser preamplificado, obviamente antes de conectarlo al amplificador real de las bocinas de tu elección. Es por ésto que me decidí a crear este post para advertir sobre varias cosas que los ingenieros electrónicos de nuestra época no contemplan.

Primero lo primero, los cables que salen de la tornamesa y van al preamplificador, o me los compras nuevos y de buena calidad o de plano no te quejes de la calidad del sonido. Pasé varios meses haciendo y deshaciendo el preamplificador para eliminar un ruido llamado «hum», que es un zumbido constante en el fondo y es muy notorio cuando todo está en silencio.

Bien, pues el problema resultó ser los malditos cables y un concepto que los digitales no entendemos. Las tierras no son lo mismo en los equipos de audio, existe el concepto de ground loop, que es un problema con la diferencia de tierras.

En el siguiente video pueden ver el proceso que seguí para la restauración y, en el presente blog hablaré un poco sobre el proyecto del preamplificador.

Pues si, resulta que las tierras no son únicas, debes de evitar tener ground loops, aquí mis recomendaciones:

  • Usa cables de audio nuevos
  • Conecta todos los equipos a una misma fuente de alimentación de preferencia
  • Si no es posible y debes de conectar tus equipos en tomas diferentes con diferente tierra física, o pero tantito, sin tierra física, usa dos transformadores de audio para desacoplar el ruido. Éstos los puedes comprar en boutiques para audio de autos.

Pasemos a la primera etapa, la fuente de alimentación, realmente los circuitos 7815 y 7915 son muy buenos, por lo que yo decidí hacer mi fuente con ellos. Seguí el siguiente esquema (ojo, en el video aparece otro, pero al final me decidí por este porque tiene un par de capacitores extra que ayudan a eliminar ruido proveniente del transformador, gracias a nuestros amigos de eleccircuit.com):

En este punto no deberías de tener problemas, sólo checa bien tu manufactura, además te sugiero que coloques un led indicador de encendido. En el diagrama no está indicado, pero puedes conectar del +15V una resistencia de 2.2kohm al led y éste a su vez a tierra del transformador. Recuerda agregar tu switch y un fusible para evitar cualquier problema. Yo estoy limitando en consumo de a 1A de corriente.

El siguiente paso es el bueno, el que me hizo sufrir un bastante. Construye el preamplifador tal y como viene en el diagrama. Ojo, repito ¡OJO! la tierra que provee el transformador NO debe de estar conectada a la tierra que viene del tocadiscos. Te recomiendo que coloques un switch que separe ambas tierras en el preamplificador, así, si tienes un caso grave de ground loop deberás abrir el switch y, si tu equipo te lo requiere, puedes unificar las tierras de nuevo.

Anexo el diagrama del preamplificador, gracias a nuestros amigos de .

Nuestros amigos de recording magazine. De hecho en la misma liga, publican el esquemático para que puedas revisarlo y plancharlo si así lo decides.

En mi caso, tuve que unir las tierras de todos los equipos, pero creo que es algo atípico porque realmente cuento con tierra física en la clavija en donde todos los equipos de audio están conectados.

Espero que estos tips te sean de utilidad.

Cualquier duda mándame un twit @fulvous 🙂

PorLeón Ramos

¿Adiós al teléfono empresarial?

Ciudad de México, 23 de diciembre del 2016.

¿Adiós al teléfono empresarial?

Salvador Elizondo en su “estanquillo con mexicana”, nos lleva a conocer los años cuarenta en México, en donde dos compañías telefónicas competían entre sí: Mexicana y Ericsson.

Ambas eran incompatibles y, como Elizondo lo comenta, una pareja con diferente sistema telefónico estaba destinada al fracaso.

Hace más de diez años (2002~2003), montar un conmutador IP con asterisk podría demandarme hasta cinco días de consultoría para ajustar valores en los archivos de texto “/etc/asterisk”. Migrar a un cliente de un sistema analógico a un sistema IP basado en asterisk, requería de una convicción personal importante. Incluía la explicación del cambio a una tecnología de punta y la debida capacitación en sitio: Explicar que los teléfonos ya no se conectarían al cable chico (el del teléfono), sino al cable gordo (el ethernet). Finalmente hacer entender que un teléfono IP ya no necesariamente debe de “dar línea” para funcionar.

Recuerdo un libro que adquirí hace como 9 años: “Asterisk: the future of telephony”. Y al ver la flexibilidad del sistema, me convencí de que sería el inicio de un negocio próspero. Luego mejoró, en marzo del 2006 vimos nacer a Elastix, una herramienta de rápida instalación y fácil administración. Un esfuerzo ecuatoriano basado en software libre, un ejemplo de democratización de la tecnología, y sobre todo, del éxito económico internacional. Debo confesar que al principio me resistí completamente a usarlo, ya que internamente desarrollábamos una herramienta llamada Kontrolli, que nos servía exactamente para lo mismo; sin embargo, el alto costo de desarrollo y el no haberlo liberado como software libre, nos cobró factura. Aunado a ello, en el Festival de Software Libre de Puerto Vallarta, Jalisco, conocí a Rafael Bonifaz, community manager, en aquel entonces, de Elastix, quien terminó por convencernos, a mi y a mi socio de cambiarnos a su plataforma.

Regresando a los años cuarenta, los números telefónicos inclusive se asignaban de forma distinta por las compañías, en Mexicana se usaba una letra y dos pares de números (P-34-63 un número en la Colonia del Valle), en Ericsson sóĺo se usaban números (19-56-44 número de Salvador Elizondo). Con la aparición de herramientas como Skype, Hangout y Facebook, ahora volvimos a marcar contactos con letras nuevamente. Este cambio, aunque pareciera menor, sería un gran retroceso para la telefonía fija. ¿Quién tiene tan buena memoria para acordarse de su propio número?

El 2016 fue un año de altibajos, muchos de ellos imprevisibles, otros un tanto escandalosos. Ya se que muchos habrán pensado de forma inmediata en las elecciones presidenciales de EEUU, pero yo en realidad me refiero a la compra de Elastix por parte de la compañía 3CX. Una compra que, a diferencia de la adquisición de Sun Microsystems por parte de Oracle, se antoja más abrupta. Según varias fuentes, inclusive el mismo sitio elastix.org, la nueva versión de Elastix dejará de ser software libre y se convertirá en una subrama de 3CX. Aunque se esté formando recientemente “Issabel.org” como el próximo fork de Elastix y que aún se mantengan varios sistemas VoIP opensource como: FreePBX, FreeSwitch y el mismo Asterisk; el panorama de las comunicaciones telefónicas empresariales es algo oscuro, no únicamente por la competencia en el sector, sino por el sector mismo.

Según el Instituto Federal de Telecomunicaciones (ift) de México, el aumento de líneas telefónicas fijas el primer trimestre del 2015 fue apenas de 2.4%, Telmex-telnor presentó una pérdida de -3%. Con la aparición del smartphone, las líneas móviles se convirtieron en una herramienta de productividad personal. Aplicaciones como Whatsapp, sustituyen las conferencias telefónicas, permitiendo mensajes grupales, mensajes de audio, y llamadas sin costo por minuto. Así mismo, las nuevas generaciones prefieren empleos que permitan pasar más tiempo en casa (work@home), además presentan displicencia a largas horas de viaje a la oficina. Cada día, nuevas compañías prefieren contratar un paquete de telefonía móvil con un buen smartphone para cada empleado, que un conmutador de última generación y un contrato de líneas telefónicas fijas.

Salvador denunciaba el surgimiento de un nuevo género de crítica: La crítica del teléfono. Una forma de comunicación, hasta entonces desconocida en la vida cotidiana de la Ciudad de México, que desató parte de la modernidad. Hoy, estamos de nuevo, frente a un cambio, el surgimiento de “la crítica por chat”. Un medio de comunicación que no nos permite andarnos con rodeos, que necesita ser inmediato, pocas líneas de texto con mucho corrector ortográfico, nuestro mejor aliado productivo y nuestro peor patrón abusivo. El smartphone probablemente destruirá al sistema telefónico tradicional y, sin embargo, nos permitirá ser los mismos críticos de siempre.

León Ramos

PorLeón Ramos

¿Sabes cómo te espía el gobierno en Internet?

Desde el 2013, las filtraciones realizadas por Edward Snowden sobre la vigilancia en Internet de la NSA, cambiaron la forma en la que muchas personas piensan de seguridad informática; sin embargo, no todos los informáticos han sido impactados con dicha información, el presente ensayo es un ejercicio mínimo, generador de consciencia, para divulgar lo que ha estado ocurriendo en Internet.

Me tomó cerca de tres semanas recuperar, analizar y generar un ensayo con información básica sobre los principales documentos liberados por Edward Snowden. Te invito a que te sumerjas un poco y que, o bien reafirmes, o bien descubras las prácticas de espionaje que, Edward revela sobre la NSA, pero que sin lugar a dudas, son compartidas con otras agencias de inteligencia a nivel mundial.

ObservacionesdelespionajeenInternetdelaNSAdeEEUU

Porcreadores

Ingeniería inversa en Arduino Uno

Una de las grandes preguntas sobre Arduino que tenía desde hace tiempo, era la posibilidad de hacerle ingeniería inversa, específicamente, obtener el código de un Arduino programado. Les adelanto la sorpresa, la respuesta corta es que si, si es posible obtener código de un Arduino programado, sin embargo, no será lenguaje de alto nivel. Lo más cerca que tendremos será un paso intermedio entre lenguaje ensamblador e instrucciones en hexadecimal.

Lista de equipo

  • Arduino Uno (yo usé un Arduino Uno R3 con chip desmontable)
  • Tarjeta lectora/escritora de chips AVR. (Yo usé la conocida stk500 de Atmel)
  • Adaptador usb-serial
  • Cable usb con terminal tipo A
  • PC con la suite de Arduino instalada

Proceso de ingeniería inversa

Grabar el código original

Este paso ya lo has hecho una y otra vez, sólo carga el sketch al arduino. En mi caso voy a usar un sketch muy sencillo para efectos didácticos como el que podemos encontrar dentro de la carpeta de «Ejemplos», el famoso Blink. Lo modifiqué un poco para que el led 13 parpareada cada 7 segundos en lugar de 1, esto para poder identificar fácilmente el resultado.

void setup() { 
 // initialize the digital pin as an output.
 pinMode(13, OUTPUT); 
}

// the loop routine runs over and over again forever:
void loop() {
 digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) 
 delay(7000);// wait for a second
 digitalWrite(13, LOW); // turn the LED off by making the voltage LOW 
 delay(7000);// wait for a second
}

mci-tdd-00756_arduino_uno_r3_2

Extraer el chip atmega328p

Este modelo nos permite extraer el chip atmega328p, para poderlo colocar en el lector stk500.

atmega328p-pustk500

Extraer el binario en hexadecimal

Para extraer el binaro en formato hexadecimal de Intel, usa el siguiente comando:

avrdude -F -v -pm328p -cstk500 -P/dev/ttyUSB0 -D -Uflash:r:reverse.hex:i

/dev/ttyUSB0 es el puerto que usa el convertidor usb-serial, en tu caso puede cambiar, revísalo con el comando dmesg inmediatamente después de conectar el usb-serial.

El resultado será un archivo con el nombre reverse.hex, si lo abres, encontrarás algo como lo siguiente:

:200000000C945C000C946E000C946E000C946E000C946E000C946E000C946E000C946E0082
:200020000C946E000C946E000C946E000C946E000C946E000C946E000C946E000C946E0050
:200040000C9488000C946E000C946E000C946E000C946E000C946E000C946E000C946E0016
:200060000C946E000C946E000000000700020100000304060000000000000000010204083E
:200080001020408001020408102001020408102004040404040404040202020202020303C0

Descompilar el hexadecimal

Para poder entender el código hexadecimal, lo pasaremos por un descompilador que convertirá los códigos en instrucciones legibles.

avr-objdump --no-show-raw-insn -m avr --prefix-addresses -D reverse.hex > reverse.assembler

El resultado de ese comando, nos entregará un pseudocódigo parecido al ensamblador, claro que habrá que hacer bastante trabajo estético para poderlo leer, pero el siguiente extracto muestra llamadas las funciones que prenden y pagan el pin 13.

0x000000e8 ldi r22, 0x01 ; 1
0x000000ea ldi r24, 0x0D ; 13
0x000000ec call 0x37a ; 0x0000037a Llama a la función que cambia el pin a alto
0x000000f0 ldi r22, 0x58 ; 88
0x000000f2 ldi r23, 0x1B ; 27
0x000000f4 ldi r24, 0x00 ; 0
0x000000f6 ldi r25, 0x00 ; 0
0x000000f8 call 0x1ee ; 0x000001ee Llama la función de delay
0x000000fc ldi r22, 0x00 ; 0
0x000000fe ldi r24, 0x0D ; 13
0x00000100 call 0x37a ; 0x0000037a LLama la función que cambia el pin a bajo
0x00000104 ldi r22, 0x58 ; 88
0x00000106 ldi r23, 0x1B ; 27
0x00000108 ldi r24, 0x00 ; 0
0x0000010a ldi r25, 0x00 ; 0

Claro que hay que hacer mucho trabajo para entender el funcionamiento correcto del equipo, sin embargo, es completamente viable realizarlo.

¿Cómo evitar que lean código de mi chip?

Existe una sección de fusibles o bits de cerrado que impedirán el proceso anterior. Sólo tienes que seguir correctamente la receta. Adjunto este sitio con información al respecto.

Happy reverse engnineering!!

 

 

Porcreadores

Mediaserver en un Cubieboard A10

Objetivo

En mi caso estoy buscando compartir algunos videos, música y libros digitales utilizando un servidor web y dlna. Además usaré este tipo de instalación como base para el desarrollo de nuestra plataforma para IoT (Internet of Things).

Lista de materiales

  • Cubieboard A10
  • Disco duro SATA de espacio a elegir (yo estoy usando 1TB)
  • Cable SATA + 5V breakout
  • Adaptador o fuente de alimentación de 5V a 2A
  • Wifi DWA-131E1 marca D-Link

sata-cable-5v-2a-dc-power-adapter

Instalando la plataforma

Descarga la imagen

Primero hay que descargar la imagen. La que estoy utilizando y me funcionó muy bien es la Cubian-nano-x1-a10-hdmi.img. Aquí el torrent para descargarlo.

Si no tienes 7z, lo puedes descargar en ubuntu así:

sudo apt-get install p7zip

Una vez descargado, puedes descomprimir el archivo así:

7zr x Cubian-nano-x1-a10-hdmi.img.7z

Copia la imagen a la memoria uSD

Coloca tu memoria sd en el lector y copia la imagen a la misma. Yo estoy usando micro sd’s de 8GB y me han funcionando muy bien.

micro_sd_8gb

sudo dd if=Cubian-nano-x1-a10-hdmi.img of=/dev/mmcblk0

Nota que en mi caso la memoria sd se detecta como /dev/mmcblk0 y así como aparece lo uso. NUNCA uses la partición /dev/mmcblk0p1.

Configurando el sistema

Inicia el sistema

Arranca tu sistema conectando un monitor y un teclado. Sigue el wizard para realizar la configuración inicial y reinicia el sistema.

cubieboard

Actualiza el sistema

Actualiza los paquetes y el sistema para tener la última versión.

sudo su -
apt-get install aptitude
aptitude update
aptitude upgrade

Wifi

Instalando el módulo

Estoy usando una tarjeta DWA-131E1 de D-Link, su módulo no está incluido en la distribución, así que lo voy a compilar. Es relativamente fácil encontrar este hardware en México y también es económico, por eso lo incorporé al diseño.

dwa-131e1

aptitude install usbutils
aptitude install firmware-realtek firmware-linux

aptitude install build-essential git
aptitude install linux-headers
aptitude install linux-headers-3.4.79-sun4i

git clone https://github.com/romcyncynatus/rtl8192eu.git

Ya que tenemos todos los paquetes necesarios, ahora sí lo compilaremos.

cd rtl8192eu

Comenta la siguiente línea  en el archivo Makefile anteponiendo el numeral #

#EXTRA_CFLAGS += -Wno-error=date-time

Guarda el archivo y comienza la compilación,  posteriormente instala los binarios

make ARCH=arm KVER=3.4.79-sun4i
make ARCH=arm KVER=3.4.79-sun4i install

Agrega las opciones del módulo, no estoy muy claro si las debería de llevar o no, si alguien ha hecho más pruebas, me vendrían muy bien sus comentarios.

Crea el archivo /etc/modprobe.d/8192eu.conf

options 8192eu rtw_power_mgnt=0 rtw_enusbss=0

Edita el archivo que carga los módulos al arranque para que esté presente cuando inicies la cubieboard. /etc/modules

#wifi
8192eu

Reinicia y prueba que se cargue el módulo correctamente. Una forma sencilla es ejecutar el comando:

lsmod | grep 8192eu

Configurando el SSID

Ejecuta el siguiente comando, reemplazando Mi_SSID por el nombre de tu red.

wpa_passphrase Mi_SSID

La salida será parecida a esto:

network={
   ssid="Mi_SSID"
   #psk="my_very_secret_passphrase"
   psk=ee80f3ecd6496a956e76f7c0332960326951f8edee80f3ecd6496a956e76f7c0332960326951f8ed
}

Para que se configure al inicio del sistema tenemos que editar /etc/network/interfaces.

auto wlan0
iface wlan0 inet dhcp
   wpa-ssid Mi_SSID
   wpa-psk ee80f3ecd6496a956e76f7c0332960326951f8edee80f3ecd6496a956e76f7c0332960326951f8ed

Prueba que funcione levantando la interface y revisando que se haya configurado correctamente con ifconfig.

ifup wlan0 && ifconfig wlan0

Almacenamiento

disco_duro_2-5

Preparar el almacenamiento

Apaga el sistema y conecta el disco duro de 2.5″, seguramente el sistema le asignará el descriptor /dev/sda1, lo puedes checar con un dmesg.

Formatea con ext4

mkfs.ext4 -I 256 /dev/sda1

Móntalo permanentemente

Edita el archivo /etc/fstab, es el lugar en donde el sistema guarda la tabla para montar sistemas de archivos automáticamente. Agrega al final la siguiente línea.

/dev/sda1  /archivos  ext4  noatime,dealloc  0  0

Arregla los locales

Encontrarás errores sobre los locales si cambiaste el idioma de inglés a español. Aquí algunos tips de como arreglarlo:

locale-gen
dpgk-reconfigure locales

Instalando el miniDLNA

Ahora configuraremos el servidor miniDLNA que nos ayudará a compartir la música y los videos con smartTVs y consolas.

aptitude install minidlna

Edita el archivo /etc/minidlna.conf y cambia las siguientes líneas:

media_dir=/mi_ruta
presentation_url=http://mi_ip:8200

Cambia /mi_ruta por el directorio en donde están tus archivos a compartir, también cambia mi_ip por la IP que tu sistema usará. (también sería recomendable configurar tu interface wlan0 con una dirección estática para que nunca cambie).

Instalando el servidor web

Un servidor web muy ligero y rápido es nginx, en lo personal lo prefiero a apache para aplicaciones pequeñas. No viene preeinstalado en el sistema, así que hay que instalarlo y configurarlo.

aptitude install nginx

Edita el archivo /etc/nginx/sites-enable/default, encuentra la sección que comienza con «location /» y agrega esto entre las llaves:

autoindex on;

La línea anterior te permitirá ver todos los archivos y navegar entre ellos.

Aquí puedes agregar un sistema sencillo de autenticación como un htaccess o similar.

Happy sharing!!