Fumadikto escribió:El ISO Loader esta mas cerca de lo que nos imaginamos peña. Gracias por la info tronko. Saludos
darkspeed escribió:Fumadikto escribió:El ISO Loader esta mas cerca de lo que nos imaginamos peña. Gracias por la info tronko. Saludos
Te lo dicen los astros??? Porque si el usb sigue siendo 1.1.....
oOoPoZaSoOo escribió:darkspeed escribió:Fumadikto escribió:El ISO Loader esta mas cerca de lo que nos imaginamos peña. Gracias por la info tronko. Saludos
Te lo dicen los astros??? Porque si el usb sigue siendo 1.1.....
De hecho, ya se pueden cargar ISOs desde el Linux, lo que no se es con que comando porque yo de momento soy de güindows xD
De hecho, ya se pueden cargar ISOs desde el Linux, lo que no se es con que comando porque yo de momento soy de güindows xD
nuvalo escribió:A proposito y ya que mencionas es gc-linux, como van tus instentos de ponerle colores y todo eso? Ya lo conseguiste? O aun sigues en ello?
Pues sigue igual que la última vez que colgué el video. No he tenido tiempo de mejorar el driver de las X, así que se siguen quedando sombras en el background. Por lo demás funciona más o menos bien, las aplicaciones que usan la pantalla completa van bastante bien. De momento estaba acondicionandolo todo para una primera release, a la espera que rene (el jefe de t2-sde) lo pruebe y de el visto bueno.
POdís ver algo más de información aquí:
http://www.t2-project.org/hardware/cons ... tendo/Wii/
nuvalo escribió:
POdís ver algo más de información aquí:
http://www.t2-project.org/hardware/cons ... tendo/Wii/
capitanquartz escribió:Yo también conseguí cargar las X. Costo y tenia colores raros, pero lo conseguí despues, por algún extraño motivo el invento dejo de funcionar
nuvalo escribió: ¿que cosas estás intentando compilar?
marcansoft escribió:Usar MEM2 como swap en wiilinux es una bobada. Eso estaba muy bien en Gamecube donde MEM2 era ARAM y esa sí que no era unificada y no se podía usar directamente para casi nada (había que hacer DMA). En la Wii la unica diferencia practica entre MEM1 y MEM2 es que MEM2 es algo mas lenta, así que lo lógico es ponerla a disposición de las aplicaciones como mas memoria. Linux se encargará de mapear las tablas y obtener páginas de la zona mas conveniente, y las aplicaciones verán memoria contigua. Para algo es un sistema operativo con memoria virtual. Lo único que tienes que hacer es definirle a Linux dos zonas no contiguas de RAM.
isobel escribió:No tan rápido, que nos la pegamos...
Quizás primero haya que añadir soporte para memoria discontinua en ARCH=powerpc 32 bits... (sólo está soportado para powerpc 64 bits en Linux)
/*
* Set phys_avail to the amount of physical memory,
* less the kernel text/data/bss.
*/
void __init
set_phys_avail(unsigned long total_memory)
{
unsigned long kstart, ksize;
/*
* Initially, available physical memory is equivalent to all
* physical memory.
*/
phys_avail.regions[0].address = PPC_MEMSTART;
phys_avail.regions[0].size = total_memory;
phys_avail.n_regions = 1;
/*
* Map out the kernel text/data/bss from the available physical
* memory.
*/
kstart = __pa(_stext); /* should be 0 */
ksize = PAGE_ALIGN(klimit - _stext);
mem_pieces_remove(&phys_avail, kstart, ksize, 0);
mem_pieces_remove(&phys_avail, 0, 0x4000, 0);
#if defined(CONFIG_BLK_DEV_INITRD)
/* Remove the init RAM disk from the available memory. */
if (initrd_start) {
mem_pieces_remove(&phys_avail, __pa(initrd_start),
initrd_end - initrd_start, 1);
}
#endif /* CONFIG_BLK_DEV_INITRD */
}
isobel escribió:Lo de usar MEM2 como dispositivo de bloque se hizo para poder aprovechar de manera inmediata, aunque fuese como swap, esa memoria en Linux, sin tener que esperar a hacer modificaciones mayores en el código genérico de la arquitectura. Bobada, bobada, visto con la perspectiva correcta, no lo es.
marcansoft escribió:isobel escribió:No tan rápido, que nos la pegamos...
Quizás primero haya que añadir soporte para memoria discontinua en ARCH=powerpc 32 bits... (sólo está soportado para powerpc 64 bits en Linux)
Interesante. Me imaginaba que Linux soportaría este tipo de cosas en todas las arquitecturas (con MMU, claro) a día de hoy.
marcansoft escribió:En cualquier caso, la solución correcta (definir varios rangos de memoria independientes) dudo que sea muy complicada, sobre todo teniendo en cuenta que este no es el caso típico de memoria discontinua por pasar la barrera de los 4GB (32 bits), con todo que eso conlleva. La Wii sigue siendo una arquitectura PPC normal, solo que hay dos áreas de memoria. La mayor complicación de la memoria discontinua probablemente sea la obtención de esa información desde el bootloader, cosa que no existe en la Wii.
marcansoft escribió: Mirando la init de la arch ppc, me he encontrado con esto en arch/ppc/mm/init.c:
...
Puede que empezar por definir un segundo rango de memoria al principio, en phys_avail, sea un buen comienzo
marcansoft escribió:isobel escribió:Lo de usar MEM2 como dispositivo de bloque se hizo para poder aprovechar de manera inmediata, aunque fuese como swap, esa memoria en Linux, sin tener que esperar a hacer modificaciones mayores en el código genérico de la arquitectura. Bobada, bobada, visto con la perspectiva correcta, no lo es.
Llamémoslo cutreatajo temporal a la espera de la solución correcta entonces
nuvalo escribió:
isobel escribió:Que no insistas que te la pegas...
marcansoft escribió:Y dale...
marcansoft escribió:Y en segundo lugar, ARCH=ppc muere en 2.6.27 o sea que si quieres aportar algo de verdad mira en ARCH=powerpc.
marcansoft escribió:Me pregunto por qué te preocupa tanto que intente aportar alguna idea. Si me equivoco, me corriges, pero me sorprende que intentes disuadirme de hacerlo en primer lugar.
...
No se por qué me da la impresión de que, o te parezco demasiado inutil como para entender esto y por lo tanto evitas dar una explicación real, o simplemente no quieres realizar este cambio, sea dificil o no.
...
En cualquier caso, no uso Wiilinux, así que no me preocupa lo suficiente como para ponerme a investigar que es lo que lo hace tan dificil. Y dado que tu al parecer lo sabes pero no me lo quieres decir, pues ahi queda la cosa.
isobel escribió:Pero has empezado haciendo una crítica a una decisión (usar mem2 como block device) tachándola de bobada sin tener mínimamente una idea del por qué.
isobel escribió:Y luego has trivializado el problema de usar mem2 como memoria normal en el kernel de Linux citando un trozo de código y proponiendo un cambio parcial. Eso sinceramente no es serio, así que no pretendas que la discusión sea seria.
isobel escribió:En el código de gestión de memoria de 32 bits de la arquitectura powerpc para Linux hay varias partes que simplemente asumen que la memoria real está físicamente contigua. Yo no digo que sea difícil cambiar esas partes, dispersas en varios lugares.
Si nadie lo ha hecho antes no es por que técnicamente sea complejo, aunque no es trivial como tú lo planteas: requiere un mínimo análisis serio.
Yo creo que nadie, y me incluyo, lo ha hecho todavía porque no ha tenido la motivación o porque simplemente ha dedicado su tiempo a otras cosas (y nadie me refiero a _nadie_, recuerda que esa parte es genérica del kernel de Linux y no tiene nada que ver con nuestras queridas videoconsolas).
marcansoft escribió:Yo, desde mi total inexperiencia con las entrañas del manejo de memoria del kernel de Linux, pensaba que no sería tan dificil. Para llegar a esa conclusión, me he basado en lo siguiente:
...
isobel escribió:/* el ipc de starlet no funciona correctamente en todos los casos si se usa memoria de mem1 en lugar de memoria de mem2 (y no es un problema de coherencia de cache en el lado del powerpc), como pudimos comprobar al crear el controlador usb */
isobel escribió:Con esto consigo 69320K frente a los 19484K (+ 53112K de swap) de usar mem2 como swap.
Bueno, al final ha salido algo de todo esto.
~/isobel
marcansoft escribió:Lo sé, es bastante curioso. Mas que el IPC, que realmente hace "mas bien poco", será el driver de USB que no hace las cosas correctamente (o un problema de hardware incluso). Recuerdo que alguien (shagkur probablemente) se topó con lo mismo al portar lwbt, con lo que ahora se reserva un área en MEM2 alta para los buffers de Bluetooth. Los heaps IPC se encuentran ahí también, pero rutinariamente usamos bloques en pila, heap, data o bss (todo en MEM1 normalmente) sin problemas para otras funciones que no tienen nada que ver con USB, asi que creo que es un problema aislado de ese subsistema.
marcansoft escribió:Por otro lado, a ver si algún día me acuerdo y meto un código machacabúferes en el driver IPC de libogc, para comprobar las cosas. Supongo que esto lo sabrás, aunque yo tardé un poco en caer en la cuenta, pero los búferes de IOS no sólo deben estar alineados a 32 bytes, sino que también deben estar alloceados hasta la siguiente dirección alineada. Es decir, si tienes un búfer de 51 bytes, debes reservar 64 por lo menos, ya que los 13 bytes sobrantes podrían corromperse al realizarse las operaciones de caché (ya que se realizan en bloques de 32 bytes). Seguro que algún bug por eso tenemos por ahí.
isobel escribió:Sí, las operaciones de cache para powerpc actúan siempre sobre como mínimo una línea de cache (32 bytes en el caso de GameCube y Wii). El problema se puede presentar si tienes en memoria cacheable un buffer de entrada y uno de salida compartiendo la misma línea de cache. Si para el buffer de entrada invalidas/descartas su contenido (dcbi) esperando que el dispositivo escriba en él, a la vez te estás cargando los datos que has puesto en el buffer de salida (si no se han escrito todavía en memoria antes por otra vía).
nuvalo escribió:WC24 no tiene nada que ver. No existe ningun canal que se ejecute "en segundo plano" en la Wii, ni existe un sistema multiproceso para el PPC, ni un hypervisor, ni nada. DVDX no es ningun canal que se ejecute de fondo.
Ok, como el método se llamaba "launchtitlebackground" ya me pensaba que era que se iba a ejecutar a la vez que el programa que lo llamara.