Archive for the 'Tips' Category

iPod Touch 1.1.3 Jailbreak FIX

Viernes, Mayo 16th, 2008

Bueno, llevo ya una temporadita con el iPod Touch mas contento que unas castañuelas desde que lo compré (allá antes de las pasadas navidades) y desde que tengo la version 1.1.3 jailbreak siempre he tenido un problema a la hora de hacer un reinicio del hardware: la entrada del iPod Touch en recovery mode, esa imágen que obtenemos cuando compramos un iPod que consta del cable del mismo y una flecha apuntando al icono del iTunes, diciendonos que conectemos el iPod al iTunes.
El reinicio de hardware solo se da ante dos ocasiones:

  1. Te quedas sin batería.
  2. Haces un apagado forzado manteniendo pulsados los dos botones.

Contrariamente a lo que mucha gente piensa, el ‘apagado’ que se consigue manteniendo pulsado el botón de encendido no es un reinicio del hardware real si no que al parecer el iPod Touch entra en un modo de hibernación, de manera que al encenderlo de nuevo no entra en modo de recuperación.

Otra diferencia entre el apagado real y la hibernación en el iPod Touch es que tarda mucho menos en arrancar desde la hibernación que desde el apagado real.

Volviendo al tema principal, es fácil arrancar el iPod Touch desde el modo de recuperación con programas como el iBrick que con un simple toque de ratón teniendo conectado el iPod Touch al ordenador nos quita el modo y nos consigue arrancar el iPod.

El problema de este método es que dependemos del ordenador, por lo que si por cualquier motivo sufrimos un reinicio del hardware en cualquier situacion lejana a un PC con iBrick (estás en clase y derrepente se te cuelga el iPod por una aplicación experimental) te tienes que esperar a poder conectar el iPod a algun ordenador para arrancarlo.
Existe una forma de arreglarlo, aunque personalmente pienso que es un poco chapuza ya que no indaga en el motivo real de la entrada del iPod en el modo de recuperación si no que hace un bypass del modo de recuperación, es usando una aplicación de linea de comandos que viene dentro del mismo directorio de iBrick (si no lo tienes puedes descargarlo de aqui) llamada iphoneinterface.exe.

Desde Windows, ejecutamos el iphoneinterface.exe con un doble click habiendo conectado el iPod Touch en modo recuperación previamente (obvio) y nos aparecerá el siguiente mensaje:

s_iPhoneInterface
s_Logging in restore.log: 0
s_I NEED A WAY TO EXIT THIS MODE
s_To exit, you need to do a full restore
r_recovery

Es importante que nos aparezca la última línea que dice r_recovery ya que nos indica que se ha detectado un iPod en modo de recuperación.

Ahora se le tiene que decir a la ‘bios’ del iPod que arranque siempre de forma automática:

setenv auto-boot true

y despues guardar los cambios y arrancar:

saveenv
fsboot

Con lo que despues de ejecutar las 3 instrucciones la consola quedaría así:

s_iPhoneInterface
s_Logging in restore.log: 0
s_I NEED A WAY TO EXIT THIS MODE
s_To exit, you need to do a full restore
r_recovery
setenv auto-boot true
s_setenv auto-boot true: 0
r_recovery
saveenv
s_saveenv: 0
r_recovery
fsboot
s_fsboot: 0
r_recovery

Realmente a mi con el comando fsboot no me arrancó el iPod, le hice otro hard reset manteniendo pulsados ambos botones y al encenderlo de nuevo ya me arrancaba bien y sin problemas.

Enjaulando UnrealIRCd, Chroot.

Martes, Marzo 11th, 2008

La verdad es que soy algo paranoico respecto a tener servicios cara a internet, por ello todos tienen sus jaulas, y UnrealIRCd no iba a ser menos.

UnrealIRCd tiene una opcion en include/config.h que al menos en teoría debería de autoenjaularse, pero no parece funcionar bien, por lo que he decidido ejaularlo a la antigua.

Para ello a la hora de compilar le defino un directorio temporal (donde quiero mi configuración y binario, /Unreal) y tras compilar y hacer make install, se creará la carpeta /Unreal (ojo, sin los certificados, hay que copiarlos a mano) con el unreal listo para correr, pero como soy una persona dentro de lo normal ordenada, muevo la carpeta de / a /chroot/ircd, quedando /chroot/ircd/Unreal.

El siguiente paso consiste en copiarle las librerías adecuadas a la jaula para que funcione bien el binario. Para ello:

# cd /chroot/ircd; mkdir lib
# ldd /chroot/ircd/Unreal/ircd
linux-gate.so.1 => (0xffffe000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xa339e000)
libnsl.so.1 => /lib/tls/libnsl.so.1 (0xa3388000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xa3384000)
libc.so.6 => /lib/tls/libc.so.6 (0xa324c000)
/lib/ld-linux.so.2 (0xa33d7000)
# cp /lib/libcrypt.so.1 lib/
.. (seguimos copiando librerías)
# cp /lib/libc.so.6 lib/

Ahora viene el directorio /etc de nuestra jaula. Para ello he creado en mi sistema el usuario ircd y creado en /chroot/ircd/etc sendos archivos passwd con solamente la linea de usuario ircd y group con la linea de grupo para posteriores permisos. También he copiado los archivos localtime y resolv.conf desde /etc a /chroot/ircd/etc.

Por último, es necesario para el correcto funcionamiento de UnrealIRCd (al menos con soporte ssl) el dispositivo /dev/urandom:

# mkdir dev; cd dev
# mknod -m 0644 /chroot/ircd/dev/urandom c 1 9

Con todo esto la jaula ya debería de estar preparada para ser lanzada. No hay que olvidarse de configurar correctamente el unrealircd.conf ni de los permisos:

# chown -R ircd:ircd /chroot/ircd

Para correr el ircd, yo recomiendo usar chrootuid, que es como chroot pero que rueda el programa deseado como un usuario específico:

# chrootuid /chroot/ircd ircd /Unreal/ircd

Si todo funciona correctamente el UnrealIRCd ya debería de estar corriendo perfectamente enjaulado.

AAC-364/DELL2 (PERC2), administración en GNU/Linux

Martes, Marzo 11th, 2008

Hace exactamente un año que encontré en el rastro esta pedazo de controladora RAID SCSI en el rastro y que la instalé en mi server con una configuración RAID5 redundante de 3 discos de 9.1Gb 10.000 rpm y hoy por casualidad, trasteando con un juguete que pronto publicaré he conseguido acceder (por fin, llevaba tiempo peleandome) a la ‘administración en vivo’ de la controladora, es decir, poder conectar, desconectar discos, crear gestionar y eliminar contenedores y un sin fin de tareas sin necesidad de apagar/reiniciar el ordenador.

Para ello después de mucho surfear por las infinitas páginas que contiene la web de soporte de Dell conseguí encontrar la utilidad mágica, afacli, disponible desde la web de Dell desde aqui.

La utilidad viene empaquetada como rpm, pero por suerte alien realiza una conversión estupenda del paquete a deb. Quien utilice Redhat o distribuciones con el gestor de paquetes rpm no necesita hacer la conversión a deb. Es necesario tener libncurses4 para que funcione la utilidad de gestión de la controladora.

Una vez instalado nos topamos con el problema de que la utilidad busca la controladora como /dev/afa0, pero este dispositivo por defecto no suele existir en las máquinas linux, por lo que hay que crearlo manualmente. Para ello el paquete que hemos instalado incluye un script llamado MAKEDEV.afa que se ha instalado en /dev y que procederemos a ejecutar de la siguiente manera:

# cd /dev
# MAKEDEV.afa afa0

Si este procedimiento fallara (normalmente por no encontrar menciones al dispositivo que busca, ‘afa’) bastaría con editar el script MAKEDEV.afa y cambiar la linea #2 (variable devname) por:

devname=”aac”

De modo que el script pueda reconocer el dispositivo (usa un cat /proc/devices) y crear así el dispositivo con mknod. Si todo ha ido bien, tendremos un bonito /dev/afa0 que será perfectamente reconocido por afacli y ya podremos gestionar la controladora en vivo sin necesidad de reiniciar el equipo.

P.D: Este artículo es válido tanto para PERC2 como PERC3/Di (probado en ambos).

Modeando la Xbox para un arranque Dual (2 BIOS)

Domingo, Febrero 10th, 2008

Pues bien, como ya dije anteriormente, el HyperX tiene un switch que nos permite seleccionar que bios arrancar, pero con el inconveniente de que este conmutador se haya en el propio modchip, por lo que si en cualquier momento quisieramos cambiar de bios, tendríamos que abrir la Xbox y darle al conmutador.

La verdad es que es una escena jodida si trasteas mucho con la consola como me sucede a mi, por lo que he decidido poner el conmutador fuera, muy a mano para cambiarlo en cualquier momento y muy escondido para evitar dañar la estética de la consola.

Pegado del conmutador en el plástico frontal

Este es el conmutador que he empleado, uno normal de palanquita y dos posiciones. Está pegado a esa rendija en concreto porque en el plastico de la caja principal hay espacio para el conmutador. En otras rendijas no se puede montar.

Vista inferior de la rendija de ventilacion con el interruptor

Esta es la vista inferior del conmutador, bien centradito.

Vista Frontal del panel frontal de la consola, con el conmutador asomando por debajo

Y esta es la vista frontal. Como se aprecia, el conmutador de BIOS estará a mano bajo el logotipo de M$ (vaya ironía) y solo sobresaldrá un poco, no dañando así la estética de la consola.

Modchip sin conmutador, con los cables del conmutador frontal

Este es mi modchip, el HyperX. Le he desoldado con cuidado el conmutador que venía soldado en la plaquita y en su lugar le he soldado los 3 cables que provienen del conmutador que está instalado en el frontal.

A la hora de realizar el montaje he seguido este orden:

  1. He soldado 3 cables largos al conmutador que iba a instalar en el frontal.
  2. He pegado con pegamento de cianocrilato el conmutador al frontal de forma que la palanquita asome hacia afuera por una de las rendijas de ventilacion y no roce/tropiece con el plastico de la carcasa.
  3. He montado el frontal y pasados los cables todos por el mismo agujero, el que originalmente estaba para los cables del panel frontal (botonera y leds).
  4. Con el modchip fuera de la consola para un trabajo mas seguro y cómodo he desoldado el conmutador original que venía con el modchip (nunca se sabe que puede pasar, como caerse una gota de estaño en la circuitería de la consola jodiendola con un corto).
  5. He solado los 3 cables provenientes del conmutador que he instalado en el frontal al modchip en el lugar donde estaba antes el conmutador que venía de serie.

Antes de cerrar la consola, es conveniente conectarla a la TV para comprobar que el modchip y el mod del conmutador frontal funcionan adecuadamente.

Problemas y soluciones

Domingo, Febrero 10th, 2008

A mi me encanta trastear y no pensando en otra cosa chipee la xbox para poder tener un sistema dual que consistia en el firm de xbox y en el firm cromwell, para jugar/trastear y cargar linux respectivamente.

Desgraciadamente hace un par de días no sabía nada de nada sobre la xbox, ni tampoco sobre el modchip que le puse (el HyperX, que al parecer es un clon bastante mejorado del modchip DuoX 2 GS).

Para mi han sido dos días muy intensos de leer tutoriales que a pesar de no llevarme a ningún lado me han dado ideas y conocimiento sobre la comprensión de la consola (y los que aún me quedan por venir).

El problema con el Hyper X

Cuando adquieres este modchip viene originalmente grabado en cada uno de los dos bancos de memoria una versión propia del flashbios de team-xecuter.com que sirve como punto de partida y como herramienta para grabar otras bioses que queramos, es decir desde aqui podemos facilitarle el archivo de bios.bin que queremos grabar en la flash y la propia flashbios se sobreescribirá con la bios.bin que le hayamos dado:

Pantalla de Bios básica del HyperX

En un principio grabé en uno de los bancos y de forma exitosa Cromwell 2.40 para el arranque de linux y mas tarde descubrí que el supuesto interruptor al cambiarlo de posición no apagaba la bios, si no que me devolvía a la pantalla inicial para flashear la bios.

En este punto de dio por probar si realmente se flasheaba de nuevo y le metí una flashbios 3.0.3 original, sin saber que estaba diseñada para el modchip Xecuter3. De este modo la pantalla cambia un poco pero se parece bastante a la del HyperX:

Pantalla de Flashbios 3.0.3 similar a la Bios de HyperX

Hasta aqui bien. Pensé que podía hacer con la flash del modchip lo que quisiera. El problema vino cuando traté de reflashear again este banco de memoria usando el propio flashbios 3.0.3 que al haber sido diseñado para el Xecuter3 no soportaba la memoria flashrom que HyperX usa imposibilitando así poder grabar nada.

Por suerte encontré un disco que unas personas que se hacen llamar Eurasia hicieron en su día. Se trata de Eurasia pro generic flash disc 1.3 y que es una minilive de linux compuesta de dos archivos, vmlinux e initrd.gz. Esta minilive arranca tanto desde cromwell (tiene un bootlinux.cfg) como desde cualquier modchip capaz de arrancar software no firmado por microsoft (default.xbe) por lo que arrancar esta utilidad de flashing no supondrá un problema para cualquier xbox chipeada. Eso si, no se si es por mi lector de dvds o que pero la consola no me reconocía el disco grabado ni en CDR ni en DVD-R, al final he conseguido que arranque desde un CDRW.
Una vez arrancada, nos pide un disco que tenemos que haber preparado previamente conteniendo bios.bin (la bios que queremos flashear renombrada a bios.bin y en la raiz del cdrom), se lo damos y automaticamente grabará en la flash la bios que habíamos introducido en el cdrom.

En mi caso (banco 1: cromwell, banco 2: nada) para poder arrancar con una bios y formatear la otra, he tenido que encender con la bios cromwell y dejarla esperando en el menu para desconectar el modchip, cambiar el conmutador de bios y volver al conectarlo. Hecho esto he arrancado el CD de eurasia pro flasher y flasheado el banco dos donde tenía solamente un inutil flashbios3.

Cambiando el disco duro por otro de más tamaño

No tenía en mente jugar los juegos de la xbox, solamente usarlo con linux, pero a la hora de instalar GentooX Multimedia Center el instalador daba un error referente a formatear y montar una de las particiones del disco debido a que el disco nuevo que habia metido sin preparar previamente no estaba adecuadamente particionado/formateado.

Leí muchos tutariales sobre el Slayers2.5 (un disco lleno de utilidades entre las que estaba ambiar el disco duro) pero no pude usarlo ya que no podía arrancar discos para xbox (solo tenía cromwell) por lo que si lo hacía, tenía que hacerlo sin usar la xbox ni ningún pirateo.

Desbloquee la contraseña del disco duro de la Xbox usando cromwell (en el menú avanzado), lo extraje de la xbox y lo conecté a un adaptador externo usb para conectarlo al ordenador (no me gusta nada tener que apagar y desmontar el ordenador). Una vez conectado, usé un programa sencillo que se llama HDD_driver y que sirve para hacer copias de seguridad del disco duro.

Para hacer una backup con hdd_driver hay que ignorar el mensaje de ‘error filesize’ (no darle al ok), y seleccionar backup desde el menu. Seleccionamos donde queremos guardar la copia de seguridad y aceptamos. Tardará un huevo y la llema del otro en hacer la copia. Cuando haya acabado ya podemos deshacernos del disco duro original y pasar a preparar el nuevo disco duro.

Tengo entendido que la xbox da problemas con los discos mayores a 140Gb, en mi caso he puesto uno de 60Gb por lo que no he tenido problemas: lo primero que hay que hacer es conseguir que hdd_driver reconozca el nuevo disco duro como disco de xbox, y para ello he tenido que hexeditar el disco duro basandome en este tutorial (step 6, abrir disk, desplazar 3 veces pulsando -> y en la primera linea al principio, añadir BRFR en el editor ascii para que en el editor hex aparezca 4252 4652). Una vez hexeditado, volvemos a abrir el hdd_driver, volvemos a ignorar el error de filesize y ahora le damos a restaurar, seleccionamos imagen, seleccionamos todo y a volver a esperar (por fortuna es mas rápido restaurando que haciendo la copia).

Y ya está, ya podemos conectar el disco duro en la consola y linux GentooX Media center lo reconcerá, formateará adecuadamente y completará la instalación con éxito.