{"id":368,"date":"2007-03-11T21:27:05","date_gmt":"2007-03-11T19:27:05","guid":{"rendered":""},"modified":"2007-03-11T21:27:05","modified_gmt":"2007-03-11T19:27:05","slug":"convertir-el-ipod-en-una-gameboy","status":"publish","type":"post","link":"https:\/\/nauj27.com\/blog\/?p=368","title":{"rendered":"Convertir el iPod en una Gameboy"},"content":{"rendered":"<p>Hace alg\u00fan tiempo instal\u00e9 <a href=\"http:\/\/nauj27.com\/comments.php?id=P265_0_1_0_C\" title=\"Linux en el iPod\">Linux en el iPod<\/a> gracias al proyecto <a href=\"http:\/\/ipodlinux.org\/Main_Page\" title=\"iPod Linux\">iPod Linux<\/a>. Sin embargo desde hace unos meses, concretamente desde que el 12 de septiembre de 2006 apareci\u00f3 la versi\u00f3n 7 de iTunes, el <a href=\"http:\/\/ipodlinux.org\/Installer_2\" title=\"instalador oficial\">instalador oficial<\/a> dej\u00f3 de funcionar para los iPods que actualizaron su <a href=\"http:\/\/www.apple.com\/ipod\/download\/\" title=\"firmware\">firmware<\/a> con aquella versi\u00f3n.<\/p>\n<p>En esos dias consegu\u00ed que me funcionasen cosas como <a href=\"http:\/\/nauj27.com\/comments.php?id=P289_0_1_0_C\" title=\"iDoom\">iDoom<\/a> con alg\u00fan <a href=\"http:\/\/nauj27.com\/comments.php?id=P282_0_1_0_C\" title=\"problemilla del apagado\">problemilla del apagado<\/a>. Me qued\u00e9 con las ganas de hacer funcionar <a href=\"http:\/\/ipodlinux.org\/IBoy\" title=\"iBoy\">iBoy<\/a>, un emulador de <a href=\"http:\/\/es.wikipedia.org\/wiki\/Gameboy\" title=\"Game Boy\">Game Boy<\/a> que estaban desarrollando en ese momento. Ahora ya funciona para el ipod nano de primera generaci\u00f3n. A continuaci\u00f3n explico la manera en que lo hice desde GNU\/Linux como gu\u00eda por si a alguien le es \u00fatil.<\/p>\n<p><object width=\"425\" height=\"350\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/UciIoiRt58s\"><\/param><embed src=\"http:\/\/www.youtube.com\/v\/UciIoiRt58s\" type=\"application\/x-shockwave-flash\" width=\"425\" height=\"350\"><\/embed><\/object><\/p>\n<h4>Modo disco<\/h4>\n<p>El iPod ha de estar en modo disco. Esto significa que al conectarlo aparece en la pantalla del iPod el mensaje <i>&quot;No desconectar&quot;<\/i>. Si al conectarlo al USB no se pone autom\u00e1ticamente en modo disco, se puede forzar pulsando men\u00fa y el bot\u00f3n central durante cinco segundos hasta que la pantalla cambie. En ese momento se cambia a bot\u00f3n central m\u00e1s bot\u00f3n de reproducir\/pausar y el modo disco aparecer\u00e1 autom\u00e1ticamente.<\/p>\n<p><!--more--><\/p>\n<h4>Preparando el cargador<\/h4>\n<p><img loading=\"lazy\" src=\"http:\/\/nauj27.com\/images\/uploads\/iboy.png\" border=\"0\" alt=\"image\" name=\"image\" width=\"153\" height=\"276\" class=\"fotoizda\" \/>Como he comentado antes, el instalador actualmente no funciona con las nuevas versiones de firmware as\u00ed que hay que ir directamente a la instalaci\u00f3n manual.<\/p>\n<p>El iPod debe estar formateado en modo [url=http:\/\/ipodlinux.org\/WinPod]WinPod[\/url], lo que significa que tiene una partici\u00f3n FAT32 donde almacena la m\u00fasica y el resto de archivos. Tambi\u00e9n se puede hacer con un [url=http:\/\/ipodlinux.org\/MacPod]MacPod[\/url] usando formato HFS+ pero no es el caso que nos ocupa.<\/p>\n<p>Primero descarga el programa [url=http:\/\/ipodlinux.org\/Make_fw]make_fw[\/url] con el que modificaremos el [url=http:\/\/ipodlinux.org\/Firmware]firmware[\/url] del iPod. A continuaci\u00f3n lo primero que se tiene que hacer es extraer una imagen del firmware original:<\/p>\n<p class=\"cita\">$ dd if=\/dev\/sdX1 of=orig_firmware.bin<\/p>\n<p>El nombre concreto del dispositivo es el que corresponda al iPod. Actualmente hay muchos discos SATA que en GNU\/Linux se ven como dispositivos SCSI y si no tenemos cuidado podemos destrozar el disco duro del ordenador por completo. Para obtener el nombre de dispositivo podemos hacer lo siguiente, que muestra que en mi caso el nombre es [b]sda[\/b]:<\/p>\n<p class=\"cita\">$ dmesg | grep &#8211;after-context 1 Apple<br \/>\n[ 1017.100000] scsi 0:0:0:0: Direct-Access Apple iPod 1.62 PQ: 0 ANSI: 0<br \/>\n[ 1017.100000] SCSI device sda: 3999743 512-byte hdwr sectors (2048 MB)<\/p>\n<p>Esto crear\u00e1 un archivo de unos 80-120MB (dependiendo de la versi\u00f3n de iPod) que contiene la partici\u00f3n de firmware. A continuaci\u00f3n se extrae el firmware de Apple OS:<\/p>\n<p class=\"cita\">$ .\/make_fw -o apple_os.bin -e 0 orig_firmware.bin<\/p>\n<p>A continuaci\u00f3n se inserta [url=http:\/\/ipodlinux.org\/images\/e\/ef\/Loader-2.4.zip]el cargador[\/url] en el firmware original:<\/p>\n<p class=\"cita\">% .\/make_fw -g nano -v -o my_sw.bin -i apple_os.bin loader.bin<\/p>\n<p>Finalmente copia el nuevo archivo de firmware [b]my_sw.bin[\/b] (que debe ser de unos pocos megas, en mi caso de 5,4MB mediante:<\/p>\n<p class=\"cita\">$ dd if=my_sw.bin of=\/dev\/sdX seek=63<\/p>\n<p>Date cuenta de que esta vez no se le pone ning\u00fan n\u00famero al dispositivo para asegurarnos de que el archivo se escribe justo en la posici\u00f3n en la que tiene que escribirse.<\/p>\n<h4>Particiones<\/h4>\n<p>Hasta ahora hemos instalado el cargador pero solo tenemos el sistema operativo original de Apple. El proceso que viene a continuaci\u00f3n borra toda la m\u00fasica e informaci\u00f3n del iPod as\u00ed que es recomendable hacer una copia de todos los datos antes de continuar.<\/p>\n<p>El iPod viene con una partici\u00f3n que Linux reconoce como segunda partici\u00f3n del disco despu\u00e9s de un espacio marcado como libre. El espacio marcado como libre es en realidad la partici\u00f3n del firmware que acabamos de modificar. Tendremos que hacer una partici\u00f3n adicional donde instalaremos ipodLinux. La he hecho de 256MB aunque quiz\u00e1 sea demasiado. Si quieres puedes hacerla algo m\u00e1s peque\u00f1a y tener m\u00e1s espacio para la m\u00fasica:<\/p>\n<p class=\"cita\">$ sudo fdisk -l \/dev\/sda<\/p>\n<p>Disco \/dev\/sda: 2047 MB, 2047868416 bytes<br \/>\n255 cabezas, 63 sectores\/pista, 248 cilindros<br \/>\nUnidades = cilindros de 16065 * 512 = 8225280 bytes<\/p>\n<p>Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema<br \/>\n\/dev\/sda1               1          10       80293+   0  Vac\u00eda<br \/>\n\/dev\/sda2              11         248     1911735    b  W95 FAT32<\/p>\n<p>Es importante sacar este listado y anotar los comienzos y fin de particiones. Se carga fdisk para el disco del iPod, se elimina la partici\u00f3n W95 FAT32 (en este caso \/dev\/sda2), se crea una m\u00e1s peque\u00f1a y a continuaci\u00f3n la peque\u00f1ita para ipodLinux:<\/p>\n<p class=\"cita\">$ sudo fdisk \/dev\/sda<\/p>\n<p>Orden (m para obtener ayuda): d<br \/>\nN\u00famero de partici\u00f3n (1-4): 2<\/p>\n<p>Orden (m para obtener ayuda): n<br \/>\nAcci\u00f3n de la orden<br \/>\ne   Partici\u00f3n extendida<br \/>\n   p   Partici\u00f3n primaria (1-4)<br \/>\np<br \/>\nN\u00famero de partici\u00f3n (1-4): 2<br \/>\nPrimer cilindro (1-248, valor predeterminado 1): 11<br \/>\n\u00c3\u0161ltimo cilindro o +tama\u00f1o o +tama\u00f1oM o +tama\u00f1oK (11-218, valor predeterminado 218): +1700MB<\/p>\n<p>Orden (m para obtener ayuda): t<br \/>\nN\u00famero de partici\u00f3n (1-4): 2<br \/>\nC\u00f3digo hexadecimal (escriba L para ver los c\u00f3digos): b<br \/>\nSe ha cambiado el tipo de sistema de la partici\u00f3n 2 por b (W95 FAT32)<\/p>\n<p>Orden (m para obtener ayuda):  n<br \/>\nAcci\u00f3n de la orden<br \/>\ne   Partici\u00f3n extendida<br \/>\n   p   Partici\u00f3n primaria (1-4)<br \/>\np<br \/>\nN\u00famero de partici\u00f3n (1-4): 3<br \/>\nPrimer cilindro (1-248, valor predeterminado 1): 219<br \/>\n\u00c3\u0161ltimo cilindro o +tama\u00f1o o +tama\u00f1oM o +tama\u00f1oK (219-248, valor predeterminado 248):<br \/>\nSe est\u00e1 utilizando el valor predeterminado 248<\/p>\n<p>Orden (m para obtener ayuda): w<\/p>\n<p>Se formatean las dos particiones:<\/p>\n<p class=\"cita\">$ sudo mkfs.vfat -F 32 -v \/dev\/sda2<br \/>\n$ sudo mkfs.ext3 -L ipodlinux -v \/dev\/sda3<\/p>\n<h4>Creaci\u00f3n del sistema de archivos<\/h4>\n<p>Ahora es un buen momento para iniciar el Apple OS por primera vez para que cree la estructura inicial. Expulsamos el iPod:<\/p>\n<p class=\"cita\">$ sudo eject \/dev\/sda<\/p>\n<p>Aparecer\u00e1 en la pantalla del iPod un men\u00fa con los idiomas, al elegir el idioma aparece el iPod vac\u00edo, sin m\u00fasica. Volvemos a conectarlo al PC y descomprimimos en la partici\u00f3n tercera, la que hab\u00edamos formateado con ext3, el sistema base. Actualmente la \u00faltima versi\u00f3n disponible la puedes descargar aqu\u00ed: [url=http:\/\/so2.sys-techs.com\/ipod\/ipod_fs_240206.tar.gz]ipod_fs_240206[\/url].<\/p>\n<p class=\"cita\">\/media\/ipodlinux $ sudo tar xvzf \/tmp\/ipod_fs_240206.tar.gz<\/p>\n<p>Ahora hay que poner el kernel de Linux en su sitio para que el cargador lo encuentre al iniciar. B\u00e1jate la \u00faltima versi\u00f3n de [url=http:\/\/ipodlinux.org\/builds\/]http:\/\/ipodlinux.org\/builds\/[\/url]. Descarga tambi\u00e9n la \u00faltima versi\u00f3n de podzilla y sustituye el que hay en \/bin\/podzilla de la parte que descomprimiste antes. El archivo del kernel renombralo despu\u00e9s de descomprimirlo como [b]vmlinux[\/b] y c\u00f3pialo en \/boot.<\/p>\n<p>Crea tambi\u00e9n un archivo de texto en \/boot\/loader.cfg con el siguiente contenido:<\/p>\n<p class=\"cita\"># iPodLoader 2.3 config file<br \/>\nbacklight = 1<br \/>\ntimeout = 10<br \/>\ndefault = 2<br \/>\n# Las opciones del menu:<br \/>\nApple OS @ ramimg<br \/>\niPodLinux @ (hd0,2)\/boot\/vmlinux<br \/>\nSuspender @ standby<br \/>\nModo Disco @ diskmode<\/p>\n<h4>iBoy, el emulador de Game Boy<\/h4>\n<p>Por fin llegamos a la instalaci\u00f3n del emulador de Game Boy. Descarga la \u00faltima versi\u00f3n de [url=http:\/\/ipodlinux.org\/Image:Iboy0754.zip]iBoy0754[\/url] (en el momento de escribir esto es la m\u00e1s actualizada), o visita directamente la web de [url=http:\/\/ipodlinux.org\/IBoy]iBoy[\/url] para comprobar si hay alguna posterior. Copia los archivos iboy_newkern e iboy_oldkern a \/bin y copia alguna ROM original de Game Boy a \/home\/roms. Crea antes ese directorio adem\u00e1s de \/home\/saves. Por \u00faltimo crea un archivo en [b]\/etc\/iboy.cfg[\/b] que contenga:<\/p>\n<p class=\"cita\">romdir=\/home\/roms\/<br \/>\nsavedir=\/home\/saves\/<\/p>\n<p>Desconecta el iPod del ordenador, reinicia si es necesario manteniendo pulsado men\u00fa y bot\u00f3n central, elige iniciar con iPodLinux y finalmente carga iboy_newkern con ayuda del explorador de archivos. \u00a1A jugar!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace alg\u00fan tiempo instal\u00e9 Linux en el iPod gracias al proyecto iPod Linux. Sin embargo desde hace unos meses, concretamente desde que el 12 de septiembre de 2006 apareci\u00f3 la versi\u00f3n 7 de iTunes, el instalador oficial dej\u00f3 de funcionar para los iPods que actualizaron su firmware con aquella versi\u00f3n. En esos dias consegu\u00ed que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/368"}],"collection":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=368"}],"version-history":[{"count":0,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/368\/revisions"}],"wp:attachment":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}