martes, 24 de febrero de 2009

Guía para instalar el CHDK

El CHDK es un programa que corre sobre el firmware de fabrica de varios modelos de cámaras canon. Por su naturaleza el CHDK no es destructivo y en caso de que no se quiera mas en la cámara que se instalo es fácil desinstalarlo.
Los materiales para instalar el CHDK son:
Φ Tarjeta SD
Φ Cámara Canon powershot compatible. (aqui)
Φ Lector de tarjetas SD
Φ El programa CARDTRIKS para usuarios Windows
Φ El editor hexadecimal de tu preferencia
Lo primero que se tiene que hacer es checar la versión de FIRMWARE que tiene nuestra cámara. Para esto creamos un archivo Dummy llamado vers.req el cual no necesita ningún contenido especial (es decir puede ser un archivo de 0kb). Es importante que para este paso como todos los demás se útiles un lector de tarjetas que nos reconozca nuestra memoria como un disco externo (o como una memoria usb estandar) pues si se usa el cable usb que trae la cámara no se tiene acceso al directorio de mas alto nivel de la tarjeta, solo a la carpeta de fotos.
El archivo vers.req se copia a la tarjeta y después colocamos la tarjeta en la cámara. Prendemos la cámara en el modo de reproducción de fotografías y presionamos el botón de SET por un segundo. Después de esto se presiona el botón de DISP sin haber soltado el de SET, esto provocara que se despliegue una pantalla con la versión de FIRMWARE que tenemos, en nuestro caso es el GM1.00A.
Una vez que se conoce la versión de firmware bajaos el CHDK para nuestra cámara bajamos la versión adecuada del CHDK (http://mighty-hoernsche.de/)
Antes de instalar el CHDK en la tarjeta tenemos que prepararla como un disco de arranque. Los usuarios Windows deberán usar el programa que se menciono al principio. Los usuarios de mac y linux (entre otros OS basados en unix) pueden usar la línea de comandos para realizar el procedimiento. En este caso se formatea la tarjeta como FAT16 (es importnate notar que esto solo es para tarjetas menores a 4 gigas),.
Después en la línea de comandos de la terminal (para usuarios mac) usas el comando de dd if=/dev/diskXsX of=BootSector.bin bs=512 count=1 donde diskXsX se cambia por el identificador de la tarjeta (algo como disk1s1) y esto copia a tu computadora el sector de arranque de la tarjeta. El comando en ubuntu seria dd if=/dev/sdx1 of=BootSector_G9.bin bs=512 count=1 donde sdx1 es el identificador de la tarjeta. Esto crea el archivo Bootsector.bin en la carpeta “home” del usuario que estés usando en ese momento.



Después de este paso se abre el archivo que se copio al disco duro con un editor hexadecimal y en el sector 40 hexadecimal (64 decimal) agregas la palabra BOOTDISK, salvas el archivo y ahora realizas el procedimiento inverso, copias el archivo a la memoria (al sector de arranque) en Windows se puede usar un programa para esto, en mac se usa una línea de comando en terminal muy parecida a la anterior. dd if=BootSector.bin of=/dev/diskXsX bs=512 count=1 donde diskXsX se remplaza por el identificador del disco como es disk1s1. La línea de comando en ubuntu dd if=BS.bootable of=/dev/sdx1 bs=512, donde sdx1 es el identificador de la tarjeta.
IMPORTANTE en caso de que alguno de los comandos de terminal te marque un error como “dd: /dev/disk1s1: Resource busy” significa que la tarjeta esta siendo usada por el sistema operativo, así que debes “desmontarla”, en UBUNTU se puede hacer desde la línea de comandos, en MAC entras a DiskUtility y seleccionas UNMOUNT, es importante notar que esto no es lo mismo que expulsar el disco, si se expulsa la tarjeta esta pierde toda conexión con la computadora, en este caso lo que hacemos es solo desconectar el controlador que permite que el sistema operativo realice acciones sobre la tarjeta (como copiar archivos o explorar el contenido de la tarjeta) pero la tarjeta sigue teniendo comunicación con la computadora.

Una vez que nuestra tarjeta esta lista se puede instalar el CHDK, lo primero que se hace es descomprimir el archivo que se descargo y lo colocamos en la tarjeta, todo el programa va dentro de una tarjeta conocida como CHDK en el root de la tarjeta. Una vez que se hizo esto se inserta la tarjeta a la cámara pero teniendo cuidado de que el switch de LOOK este activado, este switch indica que no se permite escribir archivos en la tarjeta y es necesario pues en teoría no se puede escribir sobre el disco que usas como arranque, pero el CHDK sobrescribe por software esta función para que la tarjeta se puede usar para tomar fotos.

Finalmente solo nos queda prender la cámara y disfrutar las funciones del CHDK.
Si se quiere usar un programa extra se puede ir a
http://chdk.wikia.com/wiki/UBASIC/Scripts
donde existe una serie de fundones extras programadas para el CHDK. Uno muy interesante es el script que detecta movimiento, la demostración del mismo se hará en clase.
http://chdk.wikia.com/wiki/UBASIC/Scripts:_Multipurpose_Motion_Detection
Para usar estos scripts solo basta copiarlos a la tarjeta y cargarlos desde el menú del CHDK.

4 comentarios:

  1. Muy buena onda la info, al fin encuentro algo que me funca y q esta todo en español. ando medio duro todavia conel ingles. jeje.

    Saludos. Y gracias por compartir.

    Francisco

    ResponderEliminar
  2. Hola, he formateado la SD con CARDTRICKS y le he cargado el CHDK, pero al aceptar cambiar el firmware, el display de la cámara se apaga y ésta queda bloqueada. ¿qué estoy haciendo mal?
    Agradeceré tu ayuda. Gabriel

    ResponderEliminar
    Respuestas
    1. Se que es llegó tarde pero, pudiste solucionarlo a eso ?

      Eliminar
  3. Hola!
    He hecho todo lo que indicas, y he llegado hasta la parte de actualización de firmware, el problema es que al tener la SD en 'lock' solo puedo ver el menú de imágenes, no puedo tomar fotos, ¿falta algún paso?
    Mi cámara es una SX130 IS.

    Saludos.

    ResponderEliminar


R2BEER2 !!!!!!!!!!