jueves, 26 de enero de 2012

Actualizar BOSS GT-8 desde linux

Este es mi procesador de efectos para guitarra eléctrica, el BOSS GT-8. Lo tengo hace unos años y actualmente lo uso conectado a una mesa de mezclas para tocar en casa.
El problema es que con el tiempo he ido modificando los programas y bancos de efectos hasta el punto de necesitar un reinicio completo.
Para ello, la mejor opción es volver a cargar los programas via midi. Actualmente en la página de BOSS solo aparecen para descargar unos parches de un tal Paul Hanson. No obstante yo tengo, supongo que conseguida anteriormente, la versión 1.03 de la programación de la pedalera. Lo puedes descargar aquí. 
Como verás el archivo contiene una serie de archivos midi, un archivo llamado midi_sum.list que no nos interesa y dos archivos pdf. Lo importante son los archivos midi numerados desde el GT8_01.mid hasta el GT8_16.mid que son los que hay que hacer "sonar" desde el ordenador para actualizar la pedalera (En realidad no se hace sonar nada puesto que un archivo midi no es mas que un archivo de datos que se pueden interpretar de muchas maneras).
Interfaz midi M-AUDIO UNO
Necesitamos un interfaz midi, para conectarlo a la pedalera en los conectores MIDI-IN y MIDI-OUT. Las  tarjetas de sonido integradas actuales no tienen conector midi, si tienes una tarjeta profesional o incluso alguna vieja soundblaster y el cable correspondiente podrás usarlo. Yo tengo este interfaz midi, el de la imagen de la derecha.
Bueno, una vez tengamos todo lo necesario vamos manos a la obra. Los pasos a seguir son:

  • Instalar un software para reproducir archivos midi, en mi caso he usado pmidi. Si usas un sistema debian lo puedes instalar facilmente desde los repositorios con: apt-get install pmidi
  • Inicia la pedalera en el "modo actualización". Para ello pulsa los botones [CTL/EXP] , [NAME] y [MANUAL] y enciende la pedalera sin soltarlos. Te aparecerá en la pantalla un mensaje como este: 
  • Ahora debemos reproducir todos los archivos midi en orden, pero debemos saber el interfaz midi correspondiente para ello usamos pmidi -l que en mi caso devuelve lo siguiente: 
 Port     Client name                       Port name
     14:0     Midi Through                      Midi Through Port-0
       20:0     USB Uno MIDI Interface            USB Uno MIDI Interface MIDI 1
        128:0     TiMidity                          TiMidity port 0
          128:1     TiMidity                          TiMidity port 1
            128:2     TiMidity                          TiMidity port 2
              128:3     TiMidity                          TiMidity port 3
                El interfaz midi es el 20:0
                • Nos situamos en el directorio donde están los archivos midis y procedemos a programar la pedalera, con el comando pmidi -p 20:0 GT8_*.mid ( 20:0 es el cliente:puerto correspondiente a mi interfaz, que he obtenido en el punto anterior). Cuando empieza a actualizar veremos algo como esto: 

                • Una vez haya finalizado aparecerá este mensaje en la pantalla:
                “All completed.
                Sum=3D6D”

                Y ya lo teneis, ahora apaga y enciende la pedalera y a disfrutar!

                sábado, 11 de diciembre de 2010

                Crear imagen ISO de un CD/DVD desde terminal

                Un pequeño truco para hacer una imagen de un CD/DVD desde el terminal con la magnifica utilidad dd:
                dd if=/dev/cdrom of=/ruta/imagen.iso
                Tan simple como esto.

                lunes, 18 de enero de 2010

                Utilidades linux en Mac

                Una de las cosas que mas agradecemos del sistema OSX los que venimos de linux, es la existencia del terminal. Desgraciadamente una de las primeras decepciones es el ver que no da tanto juego como el terminal linux.

                Si se busca un poco se encuentran los famosos "ports" linux/mac como macports, fink o darwinports  que permiten instalar bastante programas de linux en mac. No obstante su manejo resulta un poco engorroso ya que su funcionamiento suele consistir en bajar el código fuente y compilar cada programa con sus dependencias, por lo que requiere tener las Xcode instaladas y no es una solución muy agradable.

                Por suerte si lo que quieres es solo alguna utilidad para el terminal ,existe una página llamada rudix, donde puedes bajar los paquetes ya compilados listos para instalar y usar.
                Yo personalmente tengo instalados wget y unrar.


                Spotlight a fondo

                Spotlight es una función de Leopard/Snow Leopard que permite acceder rápidamente a cualquier contenido de tu disco duro. A priori es una utilidad muy útil, pero puede que quieras desactivarlo o que por alguna razón desees que vuelva a reindexar el contenido de tu equipo, en este post explicare como.
                Hay varias maneras, pero la mas completa es con mdutil, un comando del terminal de Mac OSX que permite manejar la información que indexa spotligth.
                Lo primero es abrir el terminal, Aplicaciones -> Utilidades -> Terminal y ahora:
                • Desactivar spotlight. Para desactivar el indexado del disco duro y ganar algo de rendimiento haz:
                #sudo mdiutil -a -i off
                • Activar el indexado de nuevo.
                #sudo mdiutil -a -i on
                • Borrar los metadatos almacenados y forzar a que reindexe todo otra vez
                #sudo mdiutil -E

                Para mas información sobre esta utilidad ves aquí o usa man mdutil en el terminal.

                viernes, 15 de enero de 2010

                Unidades de disco duro en Unix/Linux. Pt 1

                En esta entrada quiero dar unas pinceladas básicas sobre como tratan  los sistemas Unix/linux los discos duros.
                Una de las particularidades de estos sistemas es que los dispositivos se tratan como archivos; esto quiere decir que se encuentran representados como un archivo en el disco duro.
                Estos archivos se encuentran en el directorio /dev, podemos ver su contenido con:
                victor@PC247:~$ ls /dev/
                adsp             loop4               ram6        tty13  tty41  ttyS3
                agpgart          loop5               ram7        tty14  tty42  urandom
                audio            loop6               ram8        tty15  tty43  usbmon0
                binder           loop7               ram9        tty16  tty44  usbmon1
                block            mapper              random      tty17  tty45  usbmon2
                bus              mcelog              rfkill      tty18  tty46  usbmon3
                cdrom            mem                 rtc         tty19  tty47  usbmon4
                cdrw             mixer               rtc0        tty2   tty48  vcs
                char             net                 scd0        tty20  tty49  vcs1
                console          network_latency     sda         tty21  tty5   vcs2
                core             network_throughput  sda1        tty22  tty50  vcs3
                cpu_dma_latency  null                sda2        tty23  tty51  vcs4
                disk             oldmem              sda5        tty24  tty52  vcs5
                dri              pktcdvd             sequencer   tty25  tty53  vcs6
                dsp              port                sequencer2  tty26  tty54  vcs7
                dvd              ppp                 sg0         tty27  tty55  vcs8
                ecryptfs         psaux               sg1         tty28  tty56  vcsa
                fb0              ptmx                shm         tty29  tty57  vcsa1
                fd               pts                 snapshot    tty3   tty58  vcsa2
                full             ram0                snd         tty30  tty59  vcsa3
                fuse             ram1                sndstat     tty31  tty6   vcsa4
                hidraw0          ram10               sr0         tty32  tty60  vcsa5
                hidraw1          ram11               stderr      tty33  tty61  vcsa6
                hpet             ram12               stdin       tty34  tty62  vcsa7
                input            ram13               stdout      tty35  tty63  vcsa8
                kmsg             ram14               tty         tty36  tty7   zero
                log              ram15               tty0        tty37  tty8
                loop0            ram2                tty1        tty38  tty9
                loop1            ram3                tty10       tty39  ttyS0
                loop2            ram4                tty11       tty4   ttyS1
                loop3            ram5                tty12       tty40  ttyS2

                Aquí se pueden ver todos dispositivos de sistema, pero si queremos ver solo las unidades de disco podemos hacerlo con:
                victor@PC247:~$ sudo su
                root@PC247:/home/victor# fdisk -l
                
                Disco /dev/sda: 40.0 GB, 40007761920 bytes
                255 cabezas, 63 sectores/pista, 4864 cilindros
                Unidades = cilindros de 16065 * 512 = 8225280 bytes
                Identificador de disco: 0xb41db41d
                
                Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
                /dev/sda1   *           1        4742    38090083+  83  Linux
                /dev/sda2            4743        4864      979965    5  Extendida
                /dev/sda5            4743        4864      979933+  82  Linux swap / Solaris
                

                En este sistema linux solo hay un disco, el del sistema, vemos que está identificado como /dev/sda y que tiene una partición primaria (/dev/sda1) y una extendida (/dev/sda5). Por tando sda se corresponde al dispositivo completo y sda1,sda2... a las distintas particiones dentro del disco.
                Si hubiese mas discos conectados estos estarían identificados como /dev/sdb, /dev/sdc /dev/sdd ...
                Los discos sata,scsi,y dispositivos externos se suelen identificar por sdX como en el caso del ejemplo mientras que los discos IDE se identifican como hdX. p ej: /dev/hda

                En Mac OSX los dispositivos se identifican de una manera un poco distinta.
                Los discos completo se identifican como /dev/mmcblk0,/dev/mmcblk1... y las distintas particiones /dev/mmcblk0p1 /dev/mmcblk0p2...

                jueves, 14 de enero de 2010

                Desactivar la instalación automatica de paquetes recomendados

                Según el Debian Policy Manual, Debian y sus distribuciones derivadas al instalar un paquete, instalan también por defecto los paquetes listados como Recomendados.

                Si quieres evitar esto, tienes dos opciones:
                • Desactivar la instalación de Recomendados cada vez que instalemos un paquetes. Por ejemplo:
                quadserver:~# apt-get --no-install-recommends NombreDelPaquete

                • Configurar apt para que desactive siempre la instalación de paquetes recomendados, para ello editamos el archivo apt.conf :
                quadserver:~# nano /etc/apt/apt.conf

                         Ahora editamos el archivo añadiendo la linea
                APT::Install-Recommends "false";

                Buscando paquetes y archivos que contienen paquetes en Debian


                Una de las ventajas de Debian sobre otras distribuciones derivadas de esta, es que te permite hacer una instalación muy personalizada, instalando solo lo que necesites.
                Yo personalmente desactivo la instalación de dependencias recomendadas por que me gusta que se instale solo lo estrictamente necesario, esto a veces puede derivar en que te falte algún paquete que no se instale.
                Por ejemplo al instalar gnome-core y luego instalar Synaptic cuando lo lanzaba desde el menú de aplicaciones me daba un error diciendo que no se encontraba su-to-root, que lo proporciona el paquete menu. La solución era tan fácil como hacer:
                su
                apt-get install menu
                Pero, ¿Como saber el paquete que proporciona un archivo en concreto?, hay una opción muy sencilla desde la página web de debian.
                Existe una sección en la página de debian desde donde podemos hacer búsquedas en los repositorios. Siguiendo el ejemplo de antes en el que me faltaba su-to-root, vamos a la parte Buscar en el contenido de los paquetes, seleccionamos paquetes que contienen ficheros con ese nombre y ponemos el nombre del archivo:

                          Aquí la página de resultados:



                Ya sabemos el paquete que tenemos que instalar.

                miércoles, 13 de enero de 2010

                Servidor TimeMachine en Debian (Parte 1)

                Si tienes algún Mac (iMac,macbook,macmini...) y un ordenador con linux puedes usarlo cono si fuese un Time Capsule y evitarte tener que estar a cuestas con un disco duro externo cada vez que quieras realizar la copia con Time Machine.
                En mi caso uso un iMac con Mac OSX 10.6.2 ( Snow Leopard) y como servidor un equipo con Debian Lenny (la rama estable) que hace también de servidor de ficheros y para otros proyectos linux.
                Recomiendo usar Debian lenny para el servidor y no otras distribuciones como Ubuntu por dos razones:
                • Ubuntu quiere ir a la última en cuanto a programas, esto se traduce en unos paquetes mas inestables y bastantes actualizaciones. Si queremos tener un servidor que no se nos desconfigure por una razón desconocida es mejor usar una distribución mas conservadora y estable, como Debian Lenny.
                • Para realizar el proceso hay que compilar un programa en el servidor,si usas Debian Lenny, esta seguirá siendo válida dentro de varios meses, si usas Ubuntu, no te garantizo nada.
                Configuración del servidor
                Preparar el sistema
                Como vamos a compilar, recuerda tener el sistema preparado para ello, si no lo tienes, aquí una pequeña guía de como hacerlo:
                Abrimos un terminal y nos hacemos con la cuenta de administrador:
                quadserver:~# sudo su
                Instalamos el programa module-assistant que nos ayudara a preparar el sistema para compilar:
                quadserver:~# apt-get update && apt-get install module-assistant
                Instalamos los paquetes necesarios para compilar:
                quadserver:~# m-a update && m-a prepare

                Crear usuario y preparar partición
                Si por ejemplo tenemos una partición para Time Machine ( /dev/sdb1) ;con punto de montaje en /media/datos, con la orden adduser -home directorio indicamos la carpeta donde se encontrará el /home del usuario, que es donde se alojaran los backups.
                quadserver:~# adduser -home /media/datos/ tmachine
                Adding user `tmachine’ …
                Adding new group `tmachine’ (1006) …
                Adding new user `tmachine’ (1004) with group `tmachine’ …
                Enter new UNIX password: # Introducimos la contraseña
                Retype new UNIX password: # Repetimos la contraseña
                passwd: password updated successfully
                Changing the user information for tmachine
                Enter the new value, or press ENTER for the default
                Full Name []: Time Machine backup # Nombre completo
                Room Number []:
                Work Phone []:
                Home Phone []:
                Other []:
                Is the information correct? [y/N] y # Confirmación de los datos

                Habilitar protocolo afp://
                Aunque se podría usar una partición de red samba o nfs, lo mejor es usar el protocolo afp ya que es el protocolo nativo de Mac OSX y proporcionará un mejor rendimiento y velocidad a la hora de realizar las copias.
                Para implementar afp en el servidor, necesitamos el programa netatalk, que además es opensource y se encuentra en los repositorios. El pequeño inconveniente es que hay que compilarlo porque el paquete de los repositorios viene con una configuración no compatible con Leopard/Snow Leopard.
                Procedemos:
                quadserver:~# apt-get source netatalk
                Leyendo lista de paquetes... Hecho
                Creando árbol de dependencias
                Leyendo la información de estado... Hecho
                Necesito descargar 2022kB de archivos fuente.
                Des:1 http://ftp2.de.debian.org lenny/main netatalk 2.0.3-11+lenny1 (dsc) [1560B]
                Des:2 http://ftp2.de.debian.org lenny/main netatalk 2.0.3-11+lenny1 (tar) [1921kB]
                Des:3 http://ftp2.de.debian.org lenny/main netatalk 2.0.3-11+lenny1 (diff) [99,9kB]
                Descargados 2022kB en 7s (283kB/s);
                gpg: Firmado el mar 13 ene 2009 13:40:19 CET usando clave DSA ID 73647CFF
                gpg: Imposible comprobar la firma: Clave pública no encontrada
                dpkg-source: extracting netatalk in netatalk-2.0.3
                dpkg-source: info: unpacking netatalk_2.0.3.orig.tar.gz
                dpkg-source: info: applying netatalk_2.0.3-11+lenny1.diff.gz

                Ahora procedemos a preparar las dependencias para compilar netatalk:
                quadserver:~# sudo apt-get install devscripts fakeroot libssl-dev cracklib-runtime libcrack2 libcrack2-dev libpam-cracklib
                quadserver:~# sudo apt-get build-dep netatalk

                Procedemos a compilar:
                quadserver:~$ cd netatalk-2.0.3
                quadserver:~/netatalk-2.0.3$ DEB_BUILD_OPTIONS=ssl debuild -us -uc

                En principio no tendría que haber ningún problema y generar el .deb correctamente. Si usas Debian Lenny, todo irá correctamente, pero si por alguna casualidad te da algún error de compilación, probablemente sea porque te falta alguna librería. Para conocer el paquete que la proporciona mira aquí. 
                Una vez se genere el paquete podemos instalarlo con el siguiente comando:
                quadserver:~/netatalk-2.0.3$ sudo dpkg -i ../netatalk*.deb
                Cuando instale el paquete también iniciara el servicio y los protocolos correspondientes así que puede que tarde un poco, una vez salga algo parecido a lo siguiente ya tendremos afp:// :)
                Starting Netatalk services (this will take a while): atalkd afpd papd

                Configuración en el Mac
                Habilitar unidades de red
                Por defecto Mac no soporta las unidades de red para realizar las copias de Time Machine, pero podemos activarlo fácilmente desde el terminal:
                defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

                Crear el sparsebundle
                Para que no de errores al intentar crear la copia de seguridad hay que crear un archivo en el Mac y luego copiarlo a la partición del servidor, pero este archivo tiene que tener un nombre concreto en el que salen un identificador y el nombre de nuestro mac:
                Para saber el identificador escribimos en un terminal:
                ifconfig en0 | grep ether | sed s/://g | sed s/ether//
                Apuntamos el código que nos devuelva, en mi caso 002500d8b19e
                Para saber el nombre de nuestro Mac simplemente escribimos:
                hostname -s
                En mi caso iMac
                Ahora podemos crear el archivo, en mi caso:
                hdiutil create -size 90G -fs HFS+J -type SPARSEBUNDLE iMac_002500d8b19e.sparsebundle
                Ahora se habrá creado un archivo que de unos 200/300 MB que es el que hay que copiar al servidor. El parametro -size 90G indica el tamaño máximo asignado a las copias de seguridad.

                Montar la unidad de red
                Desde finder hacemos la combinación cmd+K


                Escribimos afp://ip_del_servidor como en el ejemplo de la imagen, al darle a Conectar nos pedirá un usuario y contraseña, usaremos las credenciales del usuario creado anteriormente en el servidor.


                Una vez montado copiamos el archivo creado en el punto anterior a la raiz del directorio compartido.
                Ahora accedemos a las preferencias de Time Machine y luego Preferencias -> Cambiar disco, nos volverá a pedir las credenciales.


                Nos pedirá las credenciales de nuevo y voila! Ya podemos empezar a usar Time Machine

                Fuente: Mucho Google