script en Bash para ejecutar ePSXe 1.6.0

Este foro es para todo lo relacionado con la documentación, artículos de ayuda, Wikis, tips & hints y las traducciones de Arch (tanto en progreso como las finalizadas).
Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 10:43

Ya publiqué el problema en la página de AUR. Me motivó que tu paquete con la misma versión funciona.
inukaze escribió:Porcierto , sabes si el comando "whereis" funciona en archlinux , yo se que para que "locate" funcione se debe instalar "slocate" primero y luego usar "sudo updatedb" .
whereis es uno de esos comandos básicos de GNU/Linux que están en todas o casi todas las distros.

Son solo dos las librerías de 32 bits que están como dependencias:

Código: Seleccionar todo

> pacman -Qi epsxe | grep Depends
Depends On     : lib32-gtk  lib32-ncurses
Las otras serían innecesarias.

Lo de Zenity... si los usuarios quieren. Para mi no sería, porque tengo varios terminales "teselados" con awesome en varios escritorios virtuales y prefiero leer en los terminales, pero puede ser cómodo para los que usan escritorios más tradicionales.

Lo más conveniente es instalar paquetes de la distribución. Es la forma que existe de permitir que se customice para cada distribución. Los paquetes portables se hacen si se quiere software portable, ej. un administrador de contraseñas para usar desde una memoria USB, para conectarse desde varias ubicaciones.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 13:33

Bueno en mi intento , de hacer que se lea la distro , para que el use , las librerias de 32 Bits , segun el nombre de la distro , ahora vuelvo a como el principio , no me carga las ventanas de configuracion de los plugins. me sale con el error

": error while loading shared libraries: libgtk-1.2.so.0: wrong ELF class: ELFCLASS64"
nuevamente , como si no leyera la ruta correctamente , curiosamente , si lanzo esas cosas de manera similar en una terminal , no tengo ese problema , entonces no entiendo porque es .

En la terminal uso :
[email protected]:~/ePSXe$ DISTRONAME=`awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]'`
[email protected]:~/ePSXe$ export LD_LIBRARY="/home/inukaze/ePSXe/.32bits_libs/$DISTRONAME"
[email protected]:~/ePSXe$ ./.epsxe


Y Funciona normalmente , pero en el Script es un poco diferente , pero me da el error que te puse arriba , pero la verdad es que no entiendo porque ???

Aqui te muestro la parte que modifique :

Código: Seleccionar todo

# Determining Operating System Architecture
MACHINE=`uname -m`
if [ "$MACHINE" = "x86_64" ]
then
	# Determining Linux Distribution Name for use 32 Bits Libs.
	DISTRONAME=`awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]'`
	if [ "$DISTRONAME" = "$DISTRONAME" ]
	then
		echo
		echo	"Using 32 Bits Libs for $DISTRONAME"
		echo
			export LD_PRELOAD="$ePSXe_Path/.32bits_libs/$DISTRONAME/libaoss.so" exec "[email protected]"
			export LD_LIBRARY_PATH="$ePSXe_Path/.32bits_libs/$DISTRONAME"			
			BIN=./.epsxe
			chmod 666 $ePSXe_Path/cfg/*.cfg $ePSXe_Path/sstates/* \
			$ePSXe_Path/memcards/*.mcr $ePSXe_Path/snap/* 2>/dev/null
	else
		echo
		echo	"ePSXe dont have 32 Bits Libs for $DISTRONAME"
		echo	"Trying with Testing 32 Bits Libs - ePSXe Possible dont Run"
		echo	"With This Libs you need 32 Bits Libs of Your Distro : $DISTRONAME" 
		echo
			export LD_PRELOAD="$ePSXe_Path/.32bits_libs/testing"	
			export LD_PRELOAD="$ePSXe_Path/.32bits_libs/testing/alsa-oss/libaoss.so" exec "[email protected]"
			BIN=./.epsxe
			chmod 666 $ePSXe_Path/cfg/*.cfg $ePSXe_Path/sstates/* \
			$ePSXe_Path/memcards/*.mcr $ePSXe_Path/snap/* 2>/dev/null
	fi		
else
	echo
fi
[/b]

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 14:03

Creo que el error es porque el exec está antes de export LD_LIBRARY_PATH. Como no se setió esa variable intenta cargar la de 64 bits (ELFCLASS64).

LD_PRELOAD? :o Otra aberración. Es realmente necesario?
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 14:32

alfplayer escribió:Creo que el error es porque el exec está antes de export LD_LIBRARY_PATH. Como no se setió esa variable intenta cargar la de 64 bits (ELFCLASS64).

LD_PRELOAD? :o Otra aberración. Es realmente necesario?
Solamente si se quiere usar , los Plugins de Sonido que usen OSS u ALSA.

Y Bueno que me muestras como lo dejarias tu a ver si funciona ???

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 15:02

inukaze escribió:
alfplayer escribió:Creo que el error es porque el exec está antes de export LD_LIBRARY_PATH. Como no se setió esa variable intenta cargar la de 64 bits (ELFCLASS64).

LD_PRELOAD? :o Otra aberración. Es realmente necesario?
Solamente si se quiere usar , los Plugins de Sonido que usen OSS u ALSA.

Y Bueno que me recomiendas hacer para ver si funciona ???
Es lo aur/epsxe-plugin-spu-alsa ? Ese copia unos archivos a los directorios plugins y cfg. El script de Bash de AUR no usa LD_PRELOAD.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 15:24

alfplayer escribió:Es lo aur/epsxe-plugin-spu-alsa ? Ese copia unos archivos a los directorios plugins y cfg. El script de Bash de AUR no usa LD_PRELOAD.
Bueno yo tengo los archivos que el descarga :

ePSXe/cfg/spuPeopsOSS.cfg
ePSXe/cfg/cfgPeopsOSS
ePSXe/plugins/libspuPeopsOSS.so.1.0.9

Lo que sucedio es que con los archivos de "libaoss.so" de Versiones anteriores de Ubuntu , o de ArchLinux , me suena horrible , suena como fax modem de 56K con demasiada estatica y distorcion , y con los que le coloque al iniciarlo con "LD_PRELOAD" , sin necesitar de "aoss ./.epsxe" , suena algo lento , pero suena bien :D

Y Bueno no tienen ninguna idea de como dejar esa parte del Script , para que funcionen nuevamente las GUI de Configuraciones ???

Bueno ocurre algo muy extraño , si lo ejecuto desde guake me da el error , que te mencione antes , si lo cargo desde Nautilus , y le doy a "Ejecutar en terminal" , me dice que no sabe que es "let" , pero si carga las GUI de configuracion de los plugins al igual , que usar la opcion "Ejecutar" , y no se porque si abro manualmente una terminal o guake , me sale con el error.

Asi que cada vez lo comprendo menos :(
Última edición por inukaze el 03 Jun 2011, 15:41, editado 1 vez en total.

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 15:40

Si no lo hiciste, puedes probar con tu libaoss.so en el directorio al lado de las otras librerías (quitando lo de LD_PRELOAD).
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 15:42

alfplayer escribió:Si no lo hiciste, puedes probar con tu libaoss.so en el directorio al lado de las otras librerías (quitando lo de LD_PRELOAD).
No te entendi , en cual directorio de al lado ???

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 15:48

inukaze escribió:
alfplayer escribió:Si no lo hiciste, puedes probar con tu libaoss.so en el directorio al lado de las otras librerías (quitando lo de LD_PRELOAD).
No te entendi , en cual directorio de al lado ???
No. Quiero decir, en el directorio con las librerías de 32 bits, el que estaba en 32bits_libs que ahora moviste a .32bits_libs/$DISTRONAME
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 15:52

alfplayer escribió:
inukaze escribió:
alfplayer escribió:Si no lo hiciste, puedes probar con tu libaoss.so en el directorio al lado de las otras librerías (quitando lo de LD_PRELOAD).
No te entendi , en cual directorio de al lado ???
No. Quiero decir, en el directorio con las librerías de 32 bits, el que estaba en 32bits_libs que ahora moviste a .32bits_libs/$DISTRONAME
Si porque ahora tengo un directorio con las librerias de 32 Bits de Ubuntu , y otro con las de ArchLinux , y los archivos parecen ser distinto , de hecho el peso tambien es diferente .

Umm en un "if" no puedo hacer algo como

if [ "$MACHINE" = "x86_64" | "$DISTRONAME" = "$DISTRONAME" ] ???

Curiosamente me sale el error

./ePSXe: línea 95: [: falta un `]'
./ePSXe: línea 95: [: demasiados argumentos

Pero , si me cargas las librerias como debe o.o

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 16:09

No entendí la respuesta de las librerías.

Con lo de Bash, te recomiendo leer cómo programar con Bash. Para hacer algo simple como un condicional o una operación lógica se encuentra mucha información.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 16:14

Bueno , el problema no parece ser lo que estoy haciendo , a veces carga a veces no , volvi a cargar el Script , pero ahora me vuelve a salir el error. Lo que debo intentar entender , es porque se produce el error , y como puedo evitar que se produsca dicho error , para que el Script funcione siempre correctamente :D

Hahaha , se me habia olvidado que al principio del codigo hay algo parecido , asi que lo puse asi :

if [ "$MACHINE" = "x86_64" ] || [ "$DISTRONAME" = "$DISRONAME" ]

Pero bueno quedo en las mismas xD . ademas , de donde se supone que el esta leyendo la supuesta libreria

"libgtk-1.2.so.0: wrong ELF class: ELFCLASS64" , ese error de "ELFCLASS64" significa que esta cargando la libreria de 64 Bits , umm, voy a revisar mi repositorio , yo no deberia tener dicha libreria de 64 Bits.

Bueno , debido a que yo solamente usare "ePSXe" dudo que vaya a requerir , las versiones de 64 Bits de esas viejas , olvidades y descontinuadas librerias de "libglib1.2 & libgtk1.2" , asi que las copiara a "/usr/lib" .

Listo , ahora funciona sin problema :D

Pero en fin esa no es la idea , debe leer las librerias desde el directorio que le puse al LD_LIBRARY_PATH . bueno a ver como resuelvo

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 20:24

Definitivamente necesito Ayuda Profesional de Avanzada con BASH
o seria mejor que hiciera un nuevo Script pero en "Python" o "AWK" ???

Ya que no soy capaz de entender porque si lo ejecuto por terminal me da el error con "libglib1.2" osea lo busca en "/usr/lib" cuando quiero cargar la GUI de configuracion de los plugins. a pesar de que en el Script se le dice donde esta.

Aunque logre varias cosas interesantes :D , lo cual podria serle util a otros como lo de :

Procesador , Ram , Video , Arquitectura & Nombre de la Distro y Version de la Distro .

Aunque a la final , lo de la version de la distro se lo quite al Script.

Porcierto porque dices que el

$BIN "@$" & LD_PRELOAD , Son aberraciones ???

Bueno , puedes probrar ahora el Paquete : http://dl.dropbox.com/u/3164499/Linux/E ... nux.tar.gz
en tu ArchLinux AMD64 , primero intentalo desde una terminal , a ver que errores te suelta .

Luego intenta cargarlo desde el modo grafico , si tienes Gnome 2.32 , el Nautilus te preguntara , y le das a "Ejecutar" , aunque posiblemente eso ya lo sepas :D

Bueno espero a ver que errores te dio.

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 21:29

inukaze escribió:Ya que no soy capaz de entender porque si lo ejecuto por terminal me da el error con "libglib1.2" osea lo busca en "/usr/lib" cuando quiero cargar la GUI de configuracion de los plugins. a pesar de que en el Script se le dice donde esta.
Es simple: Primero se intenta cargar de LD_LIBRARY_PATH (si se exporta, obvio). Si no encuentra ahí lo que necesita lo busca como siempre en el sistema de archivos.
inukaze escribió:Porcierto porque dices que el

$BIN "@$" & LD_PRELOAD , Son aberraciones ???
No, de $BIN "[email protected]" no digo nada, pero LD_PRELOAD y LD_LIBRARY_PATH no son para usarse normalmente, aunque LD_LIBRARY_PATH sería lo que hay que usar para hacer un paquete portable.
inukaze escribió:Bueno , puedes probrar ahora el Paquete : http://dl.dropbox.com/u/3164499/Linux/E ... nux.tar.gz
en tu ArchLinux AMD64 , primero intentalo desde una terminal , a ver que errores te suelta .

Luego intenta cargarlo desde el modo grafico , si tienes Gnome 2.32 , el Nautilus te preguntara , y le das a "Ejecutar" , aunque posiblemente eso ya lo sepas :D

Bueno espero a ver que errores te dio.
Solo pruebo con awesome.

Falla por esto:

Código: Seleccionar todo

$ head /etc/*-release
==> /etc/arch-release <==

==> /etc/lsb-release <==
inukaze escribió:# Special Thanks to : ArchLinux user "alfPlayer" for commands Like "Path=${0%/*}"
# & Testing and Corrections Ideas for this Script
:D
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 03 Jun 2011, 22:21

A que te refieres que solo pruebas con "awesome" .

Y Porcierto no entendi eso de

Código: Seleccionar todo

$ head /etc/*-release
==> /etc/arch-release <==

==> /etc/lsb-release <==
[/b]

Existe alguno de esos 2 Archivos , porque tengo 3 Metodos , para intentar obtener el nombre de la distro. Bueno revisa el Script y dime en donde crees que es mejor que vaya el export LD_LIBRARY_PATH=$DISTROLIBS ???

Responder