La aventura de compilar GNU NeonatoX en Lemote Yeelong

En el primer trimestre de 2010, tenía un Lemote Yeelong en mis manos (como un préstamo de GNU Venezuela) con el propósito de desarrollar un nuevo sistema operativo basado en GNU/Linux que funcionaría de manera óptima en la arquitectura MIPS, acepté el desafío.

La siguiente es una serie de 4 vídeos, Sigue leyendo

Ripeando dvds con restricción (debianes y derivados)

mac-dvd-ripper-3 Buenas.

He tenido ganas de escribir de hace tiempo pero no conseguía nada interesante, particularmente me gusta compilar cosas para entender bien de que van las cosas, especialmente en los *nixes. El tema en cuestión para no marear mas es ripear dvds en debian o en sus derivados como *buntus xD. La cosa es que tenia tiempo sin hacerlo, y por cuestiones legales en algunos países sino todos, la copia de dvd con restricción de copia (aunque suena raro esto) es ilegal, Sigue leyendo

Mis aventuras con flashrom

Hola.

IMG_20140325_131030

Hoy les vengo con un tema algo diferente a los últimos meses, resulta que hace un par de años, estaba en mis experimentos de costumbre cuando un molesto problema de con el arranque desde dispositivos usb inhibía el uso del teclado, por lo que decidí investigar un poco sobre la actualización de los bios en placas madre y esas cosas, luego de investigar Sigue leyendo

Rooteando el Alcatel OT-fire (método recovery)

firefox_root

Bien aunque las imágenes de http://b2g.vegnux.org.ve ya están rooteadas, habrá el caso de que no querramos deshacernos de nuestra querida y estable rom stock aunque estemos hartos del logo de nuestra operadora xD. sin embargo por la razón que sea siempre deseamos tener el control absoluto de nuestros dispoditivos.

Anoche terminé de ver de que forma no tan cracker o exploiter (que no conseguí por cierto) Sigue leyendo

Backups del sistema entero en FirefoxOS (alcatel ot-fire)

cwm

Es divertido probar cuanta versión de FirefoxOS vaya saliendo, sin embargo, llega el momento en que te cansas de tener que hacer todo de nuevo, ya sea reestablecer tus contactos, tus apps y juegos favoritos sin mencionar que tienes que comenzar a jugar desde el primer nivel o reconfigurar todo a tu gusto. Aquí tenemos una solución que ha venido bien para quienes usan android, ahora disponible para los que usan Firefox OS en el Alcatel OT-Fire es el Clockworkmod recovery.

Para poder tener este recovery en nuestro teléfono debemos seguir los siguientes pasos: Sigue leyendo

Instalado las roms de Firefox OS

simpifox

Yo de nuevo por aqui en mis andanzas de FirefoxOS, desde que me hice de mi Alcatel con Firefox OS, los experimentos han sido muchos y los resultados los he publicado aquí para compartirlo con todo el mundo. En los diferentes sitios donde lo he difundido, me han pedido que explique cómo usar las imágenes que están allí. Antes de comenzar deben tener en cuenta almenos un par de puntos: Sigue leyendo

Mis comienzos con firefox OS (modo desarrollador) (Actualizado)

¡Hola de nuevo!

alcatel-one-touch-fire

La forma en la que podemos entrar a explorar las entrañas de nuestro FirefoxOS (Alcatel One Touch Fire), es de la siguiente manera:

Requisito:

Tener Instaladas las Android Tools, especificamente el comando “adb” (Android Debug Bridge) sin las comillas, si estas en Windows, necesitarás una que otra cosa más como los drivers para cada modelo de teléfono, etc.  A partir de este post, asumiré que estas usando una de las tantas distros del ecosistema  GNU/Linux:

  • Damos un toque en ajustes >> Información >> Más Información >> Desarrollador >> Depuración Remota :     all_post
  • Iniciamos adb de la siguiente manera.

$> adb start-server

  • Listamos los dispositivos.

$> adb devices

De salir todo bien, visualizaremos a nuestro Alcatel One Touch Fire, que no es más que un equipo con el procesador MSM7627A:

006_post

Actualización (18-09-2013):  En caso de presentar el error “????????????    no permissions” en ubuntu, como usuario root ejecute lo siguiente:

sudo adb kill-server
sudo adb start-server
adb devices

Adicionalmente la opción de Desarrollador “Consola habilitada“, nos será útil para flashear con fastboot si nos compilamos nuestras propias imágenes desde el código fuente, lo cual es probable que explique en otro post.

En una próxima entrada veremos en que podemos cotillar.

Se despide.-

¡ Feliz Hacking!!

Crear parches con diff

Normalmente al compilar nuestros paquetes desde el código fuente debemos verificar que contamos con las dependencias necesarias y algunas veces sin son las versiones adecuadas de cada una de ellas, una vez comprobado esto, procedemos de manera confiada a ejecutar nuestros comandos de compilación.

./configure --prefix=/usr
make

Pero de manera inesperada nos da el siguiente error:

/usr/include/glib-2.0/glib/deprecated/gthread.h:165:4: aviso: la declaración no declara nada
In file included from shape_typeinfo.c:30:0:
/usr/include/glib-2.0/glib/gstrfuncs.h:28:2: error: #error "Only can be included directly."
make[3]: *** [shape_typeinfo.lo] Error 1
make[3]: se sale del directorio `/media/datos/sources/pnavarro/dia-0.97.1.orig/objects/custom'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio `/media/datos/sources/pnavarro/dia-0.97.1.orig/objects'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/media/datos/sources/pnavarro/dia-0.97.1.orig'
make: *** [all] Error 2

Gracias al mensaje de error, podemos determinar que es lo que está mal (no siempre es así) en este caso el fichero “shape_typeinfo.c” tiene declarado una cabecera que esta obsoleta y debe ser sustituido por la correcta que es “glib.h” en lugar de “glib/gstrfuncs.h“, esto debemos hacerlo a mano, pero antes debemos desempaquetar el codigo fuente en dos directorios, en este caso he creado dos con los sufijos .new y .orig, en el .new, haremos las modificaciones necesarias, el .orig lo dejamos tal cual.

tar xvf dia-0.97.1.tar.bz2
mv dia-0.97.1 dia-0.97.1.orig #renombramos dia-0.97.1 con el sufijo .orig
cp -r dia-0.97.1.orig dia-0.97.1.new # hacemos una copia identica con el sufijo .new

Dentro del código fuente vamos a modificar manualmente con un editor de texto de preferencia los siguientes ficheros conflictivos:

nano dia-0.97.1.new/objects/custom/shape_typeinfo.c
nano dia-0.97.1.new/tests/test-boundingbox.c
nano dia-0.97.1.new/tests/test-objects.c

En cada uno de los anteriores sustituimos “glib/gstrfuncs.h” con “glib.h

Entra en juego el comando diff:

Un poco de teoría:
La wikipedia lo define como:

Una utilidad para la comparación de archivos que genera las diferencias entre dos archivos o los cambios realizados en un archivo determinado comparándolo con una versión anterior del mismo archivo”

Ahora que ya entramos en materia, vamos a lo tanto esperado, crear el parche con las correcciones que hicimos en dia-0.97.1.new:

diff -Naur dia-0.97.1.orig dia-0.97.1.new > parche.patch

Donde:
-N Trata los ficheros que no existan como vacíos.
-a Trata todos los ficheros como de tipo texto.
-u Muestra NÚM (3 por omisión) líneas de contexto unificado.
-r Compara recursivamente todos los subdirectorios.

diff no hace más que comparar dia-0.97.1.orig con dia-0.97.1.new y envía la salida a el fichero de texto parche.patch el cual se ve de esta forma:

patch_dia

Para aplicarlo al código fuente en futuras ocaciones, se escribe lo siguiente dentro del directorio del código fuente original:

patch -Np1 -i ../parche.patch

de ser exitoso nos da la siguiente salida:

patching file objects/custom/shape_typeinfo.c
patching file tests/test-boundingbox.c
patching file tests/test-objects.c

Cualquier duda, pueden expresarlo mediante los comentarios.

Happy Hacking.

Entendiendo permisos de ficheros y derechos de acceso en Linux

Hola a todos, regreso de nuevo a las actividades blogueras con la traducción de artículos muy
buenos a mi juicio que solo he visto en la lengua anglosajona. Espero disfruten…

En linux todo es un fichero. Para establecer derechos de acceso en en ficheros específicos
usaremos el comando chmod. Para ver cuales son los derechos de acceso de un fichero específico
usaremos el comando ls -l. Antes aprenderemos cómo ver y cambiar los permisos de un fichero.

Nota: Para cambiar los permisos de un fichero debe iniciar sesión como usuario root.

Suponga que tiene un fichero llamado linuxstall.txt en un directorio llamado LinuxStall que está
en /tmp. Use el comando ls -l para ver los permisos de este:

ls -l /tmp/LinuxStall/linuxstall.txt

La salida sería algo así:

-rwxr- -r- -. 1 root root 0 Jan 5 15:39 /tmp/LinuxStall/linuxstall.txt

Primero vamos a entender lo que la línea anterior significa
descomponiendola en diferentes partes.

El bit del extremo izquierdo puede ser de dos tipos d o –
si es d significa que es un directorio
si es – significa que es un fichero

Aquí en nuestro ejemplo es – osea que es un fichero.

Parte 1: rwx (Ver derechos de acceso de propietario)
Explicación:
El primer bit es – significa que es un ficehro, si es d significa que es un directorio.
El segundo bit es r significa lectura asi que el propietario puede abrir este fichero.
El tercer bit es w significa escritura asi que el propietario puede editar este fichero.
El cuarto bit es x significa ejecutable asi que el propietario puede ejecutar este fichero.

Parte 2: r- – (Ver derechos de acceso de grupo)
Explicación:
El primer bit es r significa lectura asi que los miembros del grupo pueden abrir este fichero.
El segundo bit es – significa que los miembros del grupo no pueden editar este fichero.
El tercer bit es – significa que los miembros del grupo no pueden ejecutar este fichero.

Parte 3: r- – (Ver otros usuarios que no son propietarios, ni miembros de grupos)
Explicación:
El primer bit es r significa que otros usuarios pueden abrir este fichero.
El segundo bit es – significa que otros usuarios no pueden editar este fichero.
El tercer bit es – significa que otros usuarios no pueden ejecutar este fichero.

Cambiando permisos de ficheros usando el comando chmod

Aqui están dos métodos de cambio de permisos de un fichero usando el comando chmod:

Sintaxis: chmod permisos /ruta_al_fichero_o_directorio/

Método 1: Numérico

En este método usaremos bits numéricos que corresponden a rwx. Los valores numéricos
para estos son:

r=4, w=2, x=1

chmod 444 /tmp/LinuxStall/linuxstall.txt

Esto cambiará los permisos del fichero linuxstall.txt a

-r- -r- -r- – que significa que el propietario, grupo y otros solo pueden leer el fichero.

chmod 555 /tmp/LinuxStall/linuxstall.txt

-rx-rx-rx- que significa que el propietario, grupo y otros pueden leer y ejecutar el fichero.

chmod 666 /tmp/LinuxStall/linuxstall.txt

Esto cambiará los permisos del fichero linuxstall.txt a

-rw-rw-rw- que significa que el propietario, grupo y otros pueden leer y editar el fichero.

chmod 644 /tmp/LinuxStall/linuxstall.txt

Esto cambiará los permisos del fichero linuxstall.txt a

-rw-r- -r- – que significa que el propietario puede leer y editar el fichero, grupo y otros solo pueden leerlo.

Por lo tanto dijimos que el primer bit numérico es para el propietario, el segundo bit numérico para grupos
y el tercero es para otros usuarios. Puede utilizar los bits numéricos 1,2,4 con el propósito de ejecutar,
escribir y editar respectivamente.

Método 2: Alfabético

Estas son las 4 letras asociadas, u,g,o y a.

u significa propietario

g significa grupos

o significa otros

a significa todos

Para añadir permisos utilizamos + y para remover permisos usamos –

Ejemplo 1: Conceder permisos a todos los grupos de usuarios

chmod g+r /tmp/LinuxStall/linuxstall.txt

Ejemplo 2: Remover permiso de lectura a grupos de usuarios

chmod g-r /tmp/LinuxStall/linuxstall.txt

Ejemplo 3: Conceder lectura, escritura y ejecución al propietario

chmod u+rwx /tmp/LinuxStall/linuxstall.txt

[…]

Fuente: http://www.linuxstall.com/linux-file-permissions-chmod/ (inglés)