Ver la versión completa : Posibles mejoras para el kernel
He estado mirando un poco las opciones del kernel y las mas basicas que he encontrado para mejorar algo son
FastFPE (Incluida en el kernel de Waninkoko) (implementado y parcheado para compatibilidad IEEE754)
Compilar con optimizacion -O3 de GCC (implementado)
Carga paralela de procesos al inicio.(dando algun que otro problema)
Soporte NTFS (implementado)
Si se os ocurre alguna otra mejora para que el tiempo de arranque sea menor o se pueda conseguir mas bateria comentarlo aqui.
Pretendo implementar dos opciones interesantes,la primera seria overclockear el micro en el arranque y que luego el menu lo ponga a la velocidad que quiera e incluir Energy Saver directamente en el kernel.
Raydenito
14/06/2006, 16:38
Güenas.
Yo apoyo cualquier cosa que sirva para mejorar el kernel :D
En cuanto a overclockear el micro...¿a cuanto lo pondrias? lo digo pq ya sabes que no todas las GP2X tienen el mismo 'limite'. Podrias hacerte unas pruebas para ver hasta que velocidad conviene subir el micro hasta que entre en el menu. Lo mismo de 250 a 260 no se nota na (salvo en las pilas [wei] )
Lo del Energy Saver lo veo cojonuo, de hecho estas tardando en ponerlo ya ![wei5]
FastFPE... ¿Que es eso? :rolleyes:
Ya que estamos... ¿Has mirado el tema de sustituir, por ejemplo, el lector de textos simplon que trae por defecto por alguno de los que se han currado por aqui? Lo digo como sugerencia [wei6]
Ya nos diras argo :D
¿Se podria poner un regulador del brillo de la pantalla?.
[wei4]
se que es una giliflautez, pero estaría genial incluir soporte para el sistema de archivos fatx; así podríamos gestionar los savegamesde xbox y tropecientasmil cosas más.
Raydenito
14/06/2006, 17:06
se que es una giliflautez, pero estaría genial incluir soporte para el sistema de archivos fatx; así podríamos gestionar los savegamesde xbox y tropecientasmil cosas más.
EIN!? y para que quieres eso?:confused:
Puestos a pedir giliflauteces, porque no incluir soporte para WMV... OYE! que lo mismo no es ninguna tonteria [Ahhh] [Ahhh]
Ahora en serio, no se hasta donde llegaran los conocimientos de neglox, para todo lo que le estamos pidiendo :brindis:
Ya hay varias distros de linux que soportan fatx (el sistema de archivos de la xbox); por eso mismo pienso que no sería muy dificil de conseguir que funcionase en la gp2x; una cosa así nos ahorraría muchos quebraderos de cabeza a los que disponemos de una xbox, pero no disponemos de linux.
Veamos el tema de overclokear el micro al arranque como mucho a 250 por el tema de compatibilidad, luego pueden salir hacks para quien pueda soportar mayor velocidad.
El regulador de brillo se podria poner si hubiera una GPIO para controlarlo y por lo que he mirado de LCD solo tenemos estas
-- LCD --
B2 = CX25874 Sleep mode (1 = sleep, 0 = awake)
B3 = CX25874 Reset mode (0 = reset, 1 = normal operation)
B4 = VSync
B5 = HSync
B6 = DE (Data enable)
B7 = CLKH (Pixel clock output)
H1 = VGH
H2 = Backlight (1 = on, 0 = off)
VGH no se lo que es y puede que tenga que ver,pero no tengo mucha esperanza.
Tema FATX: En un principio no esta incluido en el menuconfig del kernel, se puede mirar si es posible bajar el fuente y compilarlo parala gp2x. De todas formas hay un explorador para windows aqui http://konsolenprofis.de/downloads/download.php?id=683
Lo del lector y el soporte WMV lo dejo para otros, porque lo que quiero tocar es el kernel en si, no los programas que trae la consola por defecto
< - >
Otra posible mejora: En el fichero /etc/rc.d/rc cambiar todas las ordenes del estilo $i start por $i start & . Con eso se ganan unas decimas ya que los procesos que se cargan al inicio son cargados automaticamente.
Raydenito
15/06/2006, 16:27
Pos nada, nada. Ponte al lio y ya nos avisaras cuando tengas algo que podamos meter a la consola :D
Y digo yo... ¿La opcion de desactivar el sonio del inicio o por lo menos que suene mas bajito...?
No tengo ni idea si esta activada ya o no esta opcion, pero para cuando salga la DockStation y le enchufe discos duros, la mayoria de discos que le enchufemos seran en NTFS. Se que el driver de escritura es experimental y no deberia usarse, pero el de lectura funciona bien, y si uno quiere disfrutar de sus pelis como minimo la GP2X ha saber leer. :D
Y digo yo... ¿La opcion de desactivar el sonio del inicio o por lo menos que suene mas bajito...?
Eso sigue sin ser del kernel, esa propiedad pertenece al uboot. :)
Eliminar el soporte de DUALCPU se cargaría el reproductor de video. Si es por ahorrar batería, el estado normal del segundo micro es desactivado. [Ahhh]
Puestos a pedir giliflauteces, porque no incluir soporte para WMV... OYE! que lo mismo no es ninguna tonteria [Ahhh] [Ahhh]
Jamás!! Eso implicaría que GPH le tuviese que soltar pasta a Micro$oft, y por tanto encarecería la consola unos cuantos eurillos.
Tema FATX: En un principio no esta incluido en el menuconfig del kernel, se puede mirar si es posible bajar el fuente y compilarlo parala gp2x. De todas formas hay un explorador para windows aqui http://konsolenprofis.de/downloads/download.php?id=683
Esos lectores de fatx están pensados específicamente para discos duros y/o acceso de red, ademas, los que funcionan estan muy limitados, y los que no están limitados, funcionan mal; lo que yo tenía en mente sería, por ejemplo, poner la 2X en la dockstation y enchufar un pendrive en fatx (un pendrive normal usado como memory card de xbox) y poder gestionar todos los archivos desde el explorador de la GP; o tener una tarjeta SD formateada en fatx; y leerla desde la xbox tomando la gp2x como lector de tarjetas (ahora que lo pienso, esto era posible cuando la 2X solo dejaba acceder a la SD, ahora puede quedar enladrillada si se intenta).
NoobLuck
15/06/2006, 21:12
Propongo hacer un driver de video usando el segundo procesador para 3D y opengl.
si alguien se anima...
Eliminar el soporte de DUALCPU se cargaría el reproductor de video. Si es por ahorrar batería, el estado normal del segundo micro es desactivado. [Ahhh]
No solo es por el hecho de ahorrar bateria si no por limpiar el kernel de basura, no comprendo que quitando el soporte, la libreria de Hermes PS2R funcione. Esta noche probare un video que ahora mismo no tengo mucho tiempo libre.Si funciona... no se que pensar.
Puestos a pedir giliflauteces, porque no incluir soporte para WMV... OYE! que lo mismo no es ninguna tonteria
El soporte de ficheros multimedia corre a cargo del reproductor multimedia no del kernel.
No tengo ni idea si esta activada ya o no esta opcion, pero para cuando salga la DockStation y le enchufe discos duros, la mayoria de discos que le enchufemos seran en NTFS. Se que el driver de escritura es experimental y no deberia usarse, pero el de lectura funciona bien, y si uno quiere disfrutar de sus pelis como minimo la GP2X ha saber leer.
Esta version vendra con soporte NTFS de lectura, como bien dices la escritura es experimental y... ciertamente no le veo mucha utilidad en la gp2x, si quieres borrar algo lo conectas al pc y listo.
Ahora una pregunta veamos si alguien puede ayudarme.Se supone que mas o menos el uboot lo que hace es cargar el contenido de la nand que tiene el kernel en memoria.Si el kernel esto es asi seria bueno poner todo como modulos (.o) para que el tiempo que tarda en meter en memoria el kernel
sea menor y asi cargar los modulos basicos para poder mostrar el menu y mientras en background cargar los demas(sonido,dualcpu,soporte de sistema de ficheros...inet(red,samba,ftp...)) Algun hacker del kernel por aqui?
No solo es por el hecho de ahorrar bateria si no por limpiar el kernel de basura, no comprendo que quitando el soporte, la libreria de Hermes PS2R funcione. Esta noche probare un video que ahora mismo no tengo mucho tiempo libre.Si funciona... no se que pensar.
Ya sé que no está muy explotado el segundo micro, pero de ahí a considerarlo basura... vaya tela. ¿Has pensado que quizá las librerías de Hermes sigan funcionando porque acceda directamente al hardware, en vez de usar el módulo del kernel?
Creo que eso ha sonado un poco radical, si. La libreria de Hermes trabaja directamente con hardware porque por lo que he visto accede a memoria, para tocarlo.Sin embargo si veo que el reproductor de video funciona sin hacer uso del modulo para el segundo micro, lo dejare fuera del kernel, o como mucho lo dejare como modulo.
Fergus1986
16/06/2006, 00:57
Buenas...
Pero entonces, quieres convertir el kernel de la gp2x en un microkernel. ¿No existe ya un microkernel para arm?, ¿no sería más fácil utilizar un microkernel especial para arm?
-----------------------------------------------------------------------------
May the source be with you!
no es que kiera convertirlo en microkernel esta quitando las cosas de las que de momento no hace uso para asi ahorrar bataeria.
quien sabe quiza en un futuro tengamos un arranque dual con un microkernel para unas cosas y otro para otras ...como por ejemplo emu de psx??
un saludo
Raydenito
16/06/2006, 04:55
Creo que eso ha sonado un poco radical, si. La libreria de Hermes trabaja directamente con hardware porque por lo que he visto accede a memoria, para tocarlo.Sin embargo si veo que el reproductor de video funciona sin hacer uso del modulo para el segundo micro, lo dejare fuera del kernel, o como mucho lo dejare como modulo.
¿Has podido hacer alguna prueba con el tema de video? No se pero, aun sabiendo lo chapuzillas que eran los creadores del kernel de la GP2X, me resulta raro que el modulo del segundo micro este 'de adorno'...:confused: :confused:
P.D. Sigo esperando que algun alma caritativa me diga que es el FastFPE y que consecuencia tendria su inclusion en el kernel [Ahhh]
No se me ha dado muy bien la tarde asi que ha sido un poco dificil (por mucho que me guste la gp2x los examenes son lo primero,maldita fisica) y el video no he podido probarlo.Mañana espero sacar un rato pequeño en la tarde para probarlo.
Sobre el microkernel,mi intencion no es reducirlo tanto, quiero mantener la compatibilidad con linux al maximo,Lo que si quiero es en cuanto tenga jtag ponerme con el uboot porque creo que se puede reducir mucho el tiempo de carga.Pero el kernel es lo primero.
Lo que mas molesta es la falta de informacion de los modulos creados especificos para este micro porque apenas hay informacion.
Los planes que tengo para el fin de semana que viene son:
Comprobar a conciencia la funcionalidad del modulo para DualCPU
Agilizar Init arrancando el menu y despues servicios secundarios.
Todas las propuestas son bienvenidas. No todo lo que yo creo que es bueno para mi es bueno para los demas.
< - >
Bueno pues el DualCPU se queda como modulo porque aunque he visto el codigo fuente y es sencillo,el reproductor de video se queda tonto si no esta puesto. Una cosa menos por la que mirar.
Caray, y si en lugar del dos cuatro que lleva le metemos un 2.6 sin planificador de tareas, proteccion de memoria ni nada, eso si que tiene que correr como un pepino, ahora, se puede dar una hostias y puede dar más cualgues...
Pero tanqui, Don't panic a kernel panic!
Fergus1986
17/06/2006, 14:39
Buenas...
No se si voy a decir una gran estupidez, pero allá va:
¿Podrías incluir en el kernel las sdl aceleradas por hardware, para que por defecto las ejecutase el segundo micro?, así le daríamos un gran empujón a la velocidad de todas las aplicaciones. Voy más allá, ¿podrías hacer que parte del código del kernel se repartiera entre los dos micros?.
Y una pregunta al hilo de esto... ¿Para que las aplicaciones utilicen los dos micros, debe ser el kernel el que de soporte y lo haga? o ¿son las aplicaciones las que tienen que estar programadas específicamente para poder utilizar los dos micros?.
---------------------------------------------------------------------------
May the source be with you!
dardo:El kernel 2.6 no consigo compilarlo ni para arm ni para x86 ni para nada asi que de momento trabajamos con la versión 2.4 para la cual ya tenemos todo el soporte de mmsp2 y no tenemos que reprogramarlo.
Fergus1986:Actualmente el 99.9% de las aplicaciones y juegos están compilados estáticamente por lo que no importa que versin este instalada en el kernel. Sobre repartir la carga de procesos entre los dos procesadores es algo realmente complicado y que se escapa de momento de mis posibilidades.
Lo mas sencillo sería que unas aplicaciones corrieran en un micro y las otras en otro, sin embargo esto nos ayuda muy poco pues lo normal va a ser estar ejecutando un juego y poco mas. Repartir la carga de una aplicación entre los dos nucleos se vuelve muy complejo, aunque si se mira el funcionamiento de los procesadores duales de x86 y no es muy diferente al de arm (lo dudo) se podría portar y adaptar, con eso si conseguiriamos un gran aumento de velocidad.
aunque si se mira el funcionamiento de los procesadores duales de x86 y no es muy diferente al de arm (lo dudo) se podría portar y adaptar, con eso si conseguiriamos un gran aumento de velocidad.
Hombre en principio la diferencia más obvia que hay es que los X86 dual core son micros exactamente iguales, en cambio los ARM 9 de la GP2X son distintos. :(
En fin, yo también sigo siendo escéptico en cuanto a poder sacarle jugo a los 2 micros al mismo tiempo. !!Ojala me equivoque!!
Yo creo que mediante la configuración del kernel se podría activar la pantalla para que funcionase como dios manda, es decir, sin el scanline (si no me equivocp, claro...)
Fulcrum:si bien son micros diferentes, el mayor no son las instrucciones si no el acceso a memoria si no me equivoco, es un tema que he mirado muy poco.
qmkyle: De momento solo te puedo decir que se estan barajando algunas posibilidades para retocar el driver de la pantalla.
qmkyle: De momento solo te puedo decir que se estan barajando algunas posibilidades para retocar el driver de la pantalla.
Muchas gracias, aunque solo se esté "barajando la posibilidad" me dejas más tranquilo. Suerte Neglox!!
PD: A ver si aprendo a programar de una **** vez!!!!!!!!
No soy el unico que esta mirando lo del kernel, si te fijas por los foros de programacion ya ha salido alguna que otra version, de hecho no soy yo el que esta mirando lo del driver de pintado de la pantalla,ahora mismo estoy mirando lo de arrancar con el sistema a 250 mhz.
< - >
Estoy intentando utilizar el codigo para pasar a 250 mhz de hermes ps2r y la forma de usarlo de waninkoko en su sdl2x y al linkar no encuentra el acceso a las funciones mmap y open, os dejo la entrada y el error:
neglox@portatil:~/gp2x/kernel/2.0.0$ arm-linux-ld -p -X -T arch/arm/vmlinux.lds arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o init/speedup.o init/main.o init/version.o init/do_mounts.o \
> --start-group \
> arch/arm/kernel/kernel.o arch/arm/mm/mm.o arch/arm/mach-mmsp2/mmsp2.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
> drivers/serial/serial.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/sound/sounddrivers.o drivers/mtd/mtdlink.o drivers/video/video.o drivers/media/media.o drivers/mmcsd/mmcsd.o \
> net/network.o \
> arch/arm/fastfpe/fast-math-emu.o arch/arm/lib/lib.a /home/neglox/gp2x/kernel/2.0.0/lib/lib.a \
> --end-group \
> -o vmlinux
init/speedup.o: In function `OpenMem':
init/speedup.o(.text+0x114): undefined reference to `open'
init/speedup.o(.text+0x114): relocation truncated to fit: R_ARM_PC24 open
init/speedup.o(.text+0x144): undefined reference to `mmap'
init/speedup.o(.text+0x144): relocation truncated to fit: R_ARM_PC24 mmap
Waninkoko
18/06/2006, 01:08
No soy el unico que esta mirando lo del kernel, si te fijas por los foros de programacion ya ha salido alguna que otra version, de hecho no soy yo el que esta mirando lo del driver de pintado de la pantalla,ahora mismo estoy mirando lo de arrancar con el sistema a 250 mhz.
< - >
Estoy intentando utilizar el codigo para pasar a 250 mhz de hermes ps2r y la forma de usarlo de waninkoko en su sdl2x y al linkar no encuentra el acceso a las funciones mmap y open, os dejo la entrada y el error:
neglox@portatil:~/gp2x/kernel/2.0.0$ arm-linux-ld -p -X -T arch/arm/vmlinux.lds arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o init/speedup.o init/main.o init/version.o init/do_mounts.o \
> --start-group \
> arch/arm/kernel/kernel.o arch/arm/mm/mm.o arch/arm/mach-mmsp2/mmsp2.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
> drivers/serial/serial.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/sound/sounddrivers.o drivers/mtd/mtdlink.o drivers/video/video.o drivers/media/media.o drivers/mmcsd/mmcsd.o \
> net/network.o \
> arch/arm/fastfpe/fast-math-emu.o arch/arm/lib/lib.a /home/neglox/gp2x/kernel/2.0.0/lib/lib.a \
> --end-group \
> -o vmlinux
init/speedup.o: In function `OpenMem':
init/speedup.o(.text+0x114): undefined reference to `open'
init/speedup.o(.text+0x114): relocation truncated to fit: R_ARM_PC24 open
init/speedup.o(.text+0x144): undefined reference to `mmap'
init/speedup.o(.text+0x144): relocation truncated to fit: R_ARM_PC24 mmap
neglox, luego te paso esas dos funciones en ASM.
Waninkoko
19/06/2006, 01:45
neglox, a ver si te conectas pronto al messenger que *creo* he conseguido cambiar la frecuencia del micro cuando arranca el kernel. Solamente habia que adaptarlo un poco y utilizar una funcion que ya venia hecha.
Lo probaria pero me cargue la SD en una actualizacion xDD
Waninkoko
19/06/2006, 01:54
Mejor te pongo el fichero que he modificado.
arch/arm/mach-mmsp2/generic.c
Le he añadido una funcion que cambia la frecuencia del procesador y luego esa funcion se ejecuta cuando arranca el kernel.
Todo esto me ha servido mas o menos para saber como funciona el sistema de cambiar la frecuencia (la funcion del cpuctrl y que luego meti en mis sdl2X).
Al ejecutar la funcion con el parametro de los megahertzios que queremos poner en el ARM 920t lo primero que hay que hacer es convertir los MHz a Hz (Hz = MHz*1000000). Luego hay que calcular los valores MDIV, PDIV y SCALE, valores que son los que luego calcularemos FDIV (el divisor del ARM 920t). Ese parametro luego se pasa a la direccion de memoria 0xc0000910 (en este caso usando la funcion que venia en el kernel "PMR_SetA920FDiv()"). Y con esto se cambia la frecuencia del procesador principal ARM 920t.
Si entendi bien, la frencuencia del procesador cuando el divisor es 1 es 7372800 Hz (7 MHz). Por lo tanto hay que conseguir un divisor para obtener los Hz que queremos.
Acabo de escribir un tochazo que nadie va a leer xDD
The_Punisher
19/06/2006, 02:11
Una cosilla a mi me putea que por ejemplo yo, tengo un video reproduciendo y lo quito para hacer otra cosa, pongamos jugar un ratito al duke nuke, pero oh¡ que casualidad me confundí y le dí al video y me aprece en pantalla continue o no continue (jajaja mas menos) y como me confundí quiero salir pero que pena, no puedo porque he de contestar primero a la pregunta y eso moskea porq tienes dos opciones decire que no + start y pierdes dnd estaba el video o decirle q si mas start otra vez y putea....
Waninkoko
19/06/2006, 02:13
Una cosilla a mi me putea que por ejemplo yo, tengo un video reproduciendo y lo quito para hacer otra cosa, pongamos jugar un ratito al duke nuke, pero oh¡ que casualidad me confundí y le dí al video y me aprece en pantalla continue o no continue (jajaja mas menos) y como me confundí quiero salir pero que pena, no puedo porque he de contestar primero a la pregunta y eso moskea porq tienes dos opciones decire que no + start y pierdes dnd estaba el video o decirle q si mas start otra vez y putea....
Eso es ya cosa del mplayer y no del kernel.
A mi tambien me joroba asi que en cuanto saquen el source lo pienso mirar xDD
Raydenito
19/06/2006, 04:01
Eso es ya cosa del mplayer y no del kernel.
A mi tambien me joroba asi que en cuanto saquen el source lo pienso mirar xDD
Sip, la verdad es que los reproductores de audio y video se quedan 'cortitos' (por decirlo de forma suave) en cuando a opciones.
A ver si cuando liberen las fuentes los monstruos de la programacion que andan por aqui (yo no me incluyo :D ; lo mio son las bases de datos) hacen de las suyas...[wei4] [wei4]
Fergus1986
02/07/2006, 02:52
Buenas...
Vamos a reflotar un poco el hilo!!!
Lo primero, es darte ánimos...
y lo segundo, ¿Hay alguna noticia y/o avance nuevo?
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.