martes, 29 de mayo de 2012

jueves, 26 de abril de 2012

[Guía] Como usar vdr-sxfe en otro pc que no sea el mismo que tiene VDR

Bueno, en este post intentaré explicaros como envío la salida de mi yaVDR (o cualquier otro VDR) por sxfe a mi sobremesa o a mi portatil de una manera facil y rápida, para acceder sin interfaz web ni nada incómodo, incluso pudiendo usarse de servidor X totalmente distinto con diferentes pantallas.

Lo primero es tener un VDR funcionando con repositorios de donde bajarnos los plugins y instalarlos o, si no queremos instalar los binarios que os bajais de los repos, una web con los sources actualizados de los plugins más usados. Yo voy a basar mi guía en un servidor yaVDR (Ubuntu + VDR + muchas mods) y un cliente Ubuntu con XFCE muy modificado (mi sobremesa).

Si tenemos yaVDR podemos saltarnos el paso de insalar el plugin xineliboutput de VDR, que es el que nos da la salida hacia el cliente, ya podemos saltarnos este paso, ya que la distro trae este plugin instalado.
Si no tenemos el plugin instalado instalamos vdr-plugin-xineliboutput , que en un Debian, Ubuntu o cualquiera otra distro con apt-get sería:
"
sudo apt-get install vdr-plugin-xineliboutput
"
Despues de esto vamos a la configuración del plugin (normalmente en /etc/vdr/plugins) y editamos el fichero plugin.xineliboutput.conf . Para ello ejecutamos en un terminal:

"
sudo gedit /etc/vdr/plugins/plugin.xineliboutput.conf
"
Llegados a este paso vemos la configuración del inicio de este plugin, pero nos fijamos en la última linea, que deve ser algo así:
"
 --remote=127.0.0.1:37890
"
Esta linea lo que hace es "bindear" este servidor al puerto 37890 de la ip 127.0.0.1 (localhost).  Esto nos vale si queremos a sxfe de cliente para nuestro servidor (para ver el VDR en el mismo equipo que arrancamos el VDR), pero si queremos hacerlo en otro ordenador este plugin no escuchará sus peticiones y no nos dejará. Entonces cambiamos esa linea y la dejamos así:
"
--remote=37890
"
De esta manera indicamos el puerto que queremos usar para el servidor pero no bindeamos el servidor a ninguna IP, por lo que escuchará en 0.0.0.0 , en todos los interfaces de red, etc.
Despues de esto vamos a configurar el límite tambien en otro fichero, que indica que rangos de ips van a poder acceder, porque de esta manera el servidor escuchará las peticiones de nuestro cliente, pero al detectar que no están en ese rango le denegará la conexión. Este fichero es /etc/vdr/plugins/xineliboutput/allowed_hosts.conf , por lo que haremos un
"
sudo gedit /etc/vdr/plugins/xineliboutput/allowed_hosts.conf
"
y editamos este fichero, pero... como lo editamos?  Veamos el fichero y analizémoslo (parte de él):
"
127.0.0.1             # always accept localhost
#192.168.100.0/24     # any host on the local net
#204.152.189.113      # a specific host
#0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)
"
Tenemos cuatro lineas que ejemplifican:
- 127.0.0.1: Es la opción que está habilitada (descomentada) normalmente. Indica que solo localhost (el propio ordenador) se podrá conectar al servidor.
- #192.168.100.0/24: Es un ejemplo de como permitir a todos los equipos de una red local, pero sin salida a otros rangos.
- #204.152.189.113: De esta manera solo se nos permite la conexión desde esa misma IP, un solo equipo.
- #0.0.0.0/0: Todas las IP, todos los rangos, usar con cuidado! jeje

Yo, como tengo un firewall con este puerto cerrado, habilité el 0.0.0.0/0 para que así me pueda conectar desde cualquier equipo, pero que no puedan gorronear desde fuera porque hay un firewall capando este puerto. Para eso borré el # de delante de 0.0.0.0/0 (descomenté la linea), por lo que quedaría así:
"
#127.0.0.1             # always accept localhost
#192.168.100.0/24     # any host on the local net
#204.152.189.113      # a specific host
0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)
"
(También comenté 127.0.0.1, para que quedase el fichero más ordenadico (soy muy delicado yo, si xD)).
Despues de esto el servidor está preparado, solo nos queda reiniciar VDR para reiniciar los plugins. Para esto cogemos el terminal y hacemos:
"
sudo service vdr restart
"
Tardará un ratito, y reiniciará VDR, recargado todos los ficheros de configuración.

Después de esto tenemos que preparar el cliente, que es tan facil como instalar el programa y ejecutarlo con las opciones correctas. En una distribución con el paquete xineliboutput-sxfe  en las repos lo instalamos. Como ejemplo usamos un equipo con Ubuntu, en el que hacemos esto en una terminal:
"
sudo apt-get install xineliboutput-sxfe
"
Aceptamos la instalación y esperamos a que instale todo lo que necesite. Después de esto está todo preparado para arrancar, por lo que hacemos un lanzador (o abrimos en terminal o ejecutamos con ALT+F2) y ponemos de comando...:
"
vdr-sxfe *.*.*.*:37890
"
(Donde *.*.*.* es la IP del PC con VDR en nuestra red). Por ejemplo, en mi caso mi ordenador con yaVDR es 192.168.1.101, por lo que quedaría así:
"
vdr-sxfe 192.168.1.101:37890
"

Si tenemos el puerto 37890 ocupado o queremos cambiarlo aposta solo tenemos que hacerlo cuando modificamos /etc/vdr/plugins/plugin.xineliboutput.conf y cambiar ahora el puerto en esta línea.

Se nos abrirá una ventana cliente con lo que VDR esté mostrando en ese momento, y, si tenemos configurado VDR para controlarse con el teclado, podremos manejarlo como siempre desde esta ventana.
Si ejecutamos la línea en un terminal nos dará toda la información interesante del cliente, y si tenemos problemas puede ayudarnos (modo verbose).
Un ejemplo de mi VDR con un canal en Astra 19.2E desencriptándose con vdr-plugin-sc vía cardsharing con CCcam:
 
Espero que esto os valga de algo, un saludo y muchas gracias!

domingo, 4 de marzo de 2012

[MOD] Fotos

Aquí dejo unas fotos del mod (de la pintura) y de algunas consoals que he pintado. Un saludo!
http://imageshack.us/g/685/dsc03534p.jpg/

Curso de Linux - Cap.1

Bueno, a petición popular intentaré hacer un minicurso de como usar un emulador de terminal en Linux sin morir en el intento.
Empezamos por una lista de comandos útiles
pwd -- Nos indica el directorio en el que estamos
cd -- Entrar en un directorio. Si queremos entrar en un directorio dentro del que estamos hacemos cd directorio , pero si queremos escribir una dirección entera empezamos por / (cd /home , por ejemplo)
ls -- Hace un listado de los ficheros y directorios que hay en ese directorio
tar -- Comando que se usa para descomprimir y comprimir ficheros .tar.gz o .tar , etc. Lo más usado es descomprimir un .tar.gz ( tar -zxvf fichero.tar.gz) o comprimir ( tar -vcf destino.tar origen)
ifconfig -- Configuración de red
iwconfig -- Configuración de red inalámbrica
lspci -- Lista de dispositivos PCI, identificadores y etc.
lsusb -- Como lspci pero de USB
dmesg -- Escupe el contenido del fichero dmesg, que contiene mensajes del núcleo
chmod -- Cambia los permisos de un fichero o directorio (recordemos que para la mayoría de comandos que necesitan que le indiquemos que sea recursivo(carpetas) usamos -R , por ejemplo chmod -R 777 /home/dresi/troll , que daría todos los permisos a todos los usuarios de todo ese directorio).
apt-get -- Administrador de paquetes de Debian y derivados
synaptic -- Más de lo mismo
service nombredelservicio {start/stop/restart} -- Arranca, para o reinicia un servicio. Por ejemplo, realizamos cambios en un servidor web Apache y, para reiniciarlo, hacemos service apache restart (antes era /etc/init.d/servicio , por ejemplo, /etc/init.d/apache restart)
make -- Programa que guía a los compiladores del sistema a compilar un código de un programa basándose en un fichero llamado MAKEFILE. Para comprobar que todo esté correcto (dependencias, etc...) se ejecuta make (a secas), para configurarlo basándose en el sistema se hace make config y para compilar y instalar es make install
iwlist -- Permite cambiar varios parámetros de tarjetas de red inalámbricas, como buscar redes (iwlist interfaz scanning , por ejemplo, iwlist wlan0 scanning)
whoami -- Nos dice que usuario ejecutó el programa
ps -- Nos permite ver los procesos que tenemos ejecutándose, su estado, etc. La forma más cómoda es ps -e
kill PID -- kill nos permite matar un proceso. Solo tenemos que usar el comando kill separado por un espacio y el PID del proceso, que vemos con el comando ps -e . Si el programa no se quiere cerrar podemos forzar al sistema usando un kill -9 PID
grep -- Filtra una línea de texto de una salida de un comando. Por ejemplo, si quiero saber el pid de "amsn" hago ps -e|grep amsn , de esta manera la salida de ps -e, por el tubo, pasa por el comando grep, redirigiendo la salida de texto.
| -- El tubo no es un comando de por sí, pero sí es útil entre comandos y en scripts. Nos permite enviar la salida de un programa a otro.
cat -- Vuelca el contenido de un fichero al terminal.
comando >> fichero -- vuelca la salida de un programa a un fichero de texto. Por ejemplo, si quiero tener una lista de los programas que están iniciados y sus estados realizo ps -e >> procesos , obteniendo un fichero llamado procesos con la salida de ps -e
Introducción al emulador de terminal:
El emulador de terminal lo único que es es un intérprete de comandos. Estos emuladores de terminal suelen usar una forma casi igual siempre, aunque se puede modificar para estar más a gusto.
Cuando lo ejecutamos sale el mensaje de entrada del sistema, dandonos un "prompt" (una espera para que le entreguemos comandos) situándonos en el directorio local del usuario (/home/usuario normalmente).
La linea empieza, siempre, con usuario@equipo:/directorio$ , lo que nos indica pues eso, el usuario, a que máquina pertenece y el directorio en el que nos encontramos.
En los sistemas Linux actuales se suele usar una cuenta que no es de administrador (root) que tiene derecho a usar un programa (sudo) que nos da derechos de superusuario (root), un usuario que puede hacer TODO lo que quiera y un poco más.
Podemos ejecutar un comando como root escribiendo sudo comando , por ejemplo, sudo whoami , que nos respondería root , pero si pusiéramos whoami como un usuario normal nos diría nuestro nombre de usuario (en mi caso dresi).
También podemos iniciar otra "shell" como root, para ser superusuario hasta que cerremos ese terminal o caduque nuestra sesión. En ese caso podemos usar el comando su en algunos sistemas, mientras en basados en Ubuntu y demás tenemos que usar siempre sudo -s (ya que la cuenta root como tal no existe, motivos de "seguridad")
Así, por ejemplo, pasaría esto:
dresi@DarkKnight:~$ whoami
dresi
dresi@DarkKnight:~$ sudo -s
[sudo] password for dresi:
root@DarkKnight:~# whoami
root
root@DarkKnight:~#

En este caso estábamos siempre en mi directorio local, mi "home", que es una variable del entorno (ya la explicaré más adelante toda la movida de las variables... para scripts es muy cómodo, puedes disponer de "contenedores" a saco sin romperte la cabeza). En este caso es /home/dresi. Podemos ver que a partir de sudo -s estamos SIEMPRE logueados en una shell como root. No es que cambiemos de usuario, la shell como dresi aún está ejecutándose por detrás, solo abrimos /bin/sh (por ejemplo, depende del intérprete de comandos que usemos) como root en ese mismo terminal.

Hasta aquí por hoy, que estoy muerto. Un saludo!

El mod: parte 1


Bueno, ya se que hace tiempo que no posteo. Lo siento, no tenía nada interesante para postear ni tenía tiempo para ello.
En este post voy a intentar explicar un poco que tal llevo el MOD y como lo fuí consiguiendo poco a poco.
La idea era meter un PC entero dentro de la pantalla de un IBM PS/1 de 1993, incluida una pantalla LCD. No tengo una foto de la pantalla antes, pongo una de internet:

Esta pantalla (esa torre ya la había modificado hace mucho tiempo) es la pobre que está de MOD.
Día 1:
Desmonté la pantalla totalmente, quitando prácticamente todo, placas, cables... conservando los conectores y etcétera, ya que no quería modificar demasiado al equipo, quería un equipo que pareciese básico.
Me dí cuenta de que la bandeja donde iva la placa de la pantalla es de quitar y poner, bastante cómoda y del ancho de una placa MATX y dije... BINGO!
Cogí una torre y corté el trozo de la placa base, así lo agarré a la bandeja y ya puedo poner una placa base...

En esta foto estaba a medias de cortar la placa, aun me quedaba en trozo en el frontal que iva a usar para poner todos los puertos de la placa para montar y desmontar más facilmente.
Después de esto estuve viendo donde poner la fuente de alimentación y la chapa del lector y los discos duros.

Después de comprobar que todo entrase y que tuviese sitio de sobra para los demás accesorios guardé todo y lo dejé de lado.

Día 2:
Es temprano, me pongo a pegar las piezas con "masilla arreglatodo" y me doy cuenta de que no vale absolutamente para nada, cogiendo el bote de Loctite y pensando que no iva a hacer un buen trabajo. Pegué la fuente y el soporte de las unidades con Loctite y a los dos minutos me dí cuenta de que iva a quedar así, no había quien lo despegase sin darle un buen buen buen tirón.
Después de pegar esto fui preparando el frontal, pegando las ruedas para que quedase estéticamente "bien", pegué los leds del frontal y empecé a analizar como poner el botón de encendido.

Un LED está en la pieza que se encendía cuando encendías el monitor y el otro (el de actividad del disco) está detrás de la pegatina en la que pone el modelo, que es semiopaca.
(Actividad)
(Encendido)
El botón de encendido aun no lo he puesto, pero será, básicamente, un botón de encendido normal y corriente pegado en el tubito donde está el original, hace contacto, enciende y fuera, funciona perfectamente.
Después de esto corté la raja del lector, el botón para sacar los discos y empecé a poner los botones y los USB. El lector es un Pioneer de estos que se traga los DVD's, perfecto para este equipo.


Después de coger unas cuantas bridas y redondear un cable IDE está todo preparado para recibir la placa y la pantalla, que es lo único que me queda por hacer (aparte de pintar), por lo que este post del blog me da que este post no será el último.
Espero que os guste lo que llevo por ahora.

lunes, 16 de enero de 2012

HOWTO - Eve en Ubuntu 11.10 y Wine 1.3

Bueno, después de un tiempecillo sin escribir en el blog intentaré hacer una pequeña guía para explicar como hice yo para ser capaz de ejecutar Eve en Ubuntu usando mi amado Wine en su versión 1.3. Decir que probablemente haya trocitos de lo que escriba que sean de otros sitios, más que nada links, intentaré ponerlos, lo siento por los referentes...

Bueno, comenzaremos instalando la última versión de Wine, y para esto necesitaremos añadir los últimos repositorios de Wine a nuestro aptitude. Abrimos una terminal, nos hacemos root escribiendo "sudo -s" y metiendo la contraseña y nos preparamos. También podemos hacer algunas de estas cosas (casi todas) por interfaces gráficas, pero creo que así es más rápido y cómodo.
Comenzamos añadiendo el repositorio con el comando "add-apt-repository ppa:ubuntu-wine/ppa", actualizamos la lista de paquetes de aptitude con "aptitude update" y luego instalamos dos programas que nos hacen falta, wine1.3 y winetricks con "aptitude install wine1.3 winetricks". Winetricks está en los repositorios de Wine, no os preocupeis.
No pondré capturas de esto porque serían muy largas y no valdrían de mucho, son cosillas muy simples.

Después de tener instalado esto "supuestamente" winetricks devería instalar Eve solito y sin ningún problema, pero realmente no lo hace.
Abrimos winetricks desde Aplicaciones - Wine - Winetricks y clicamos en Install a game,
seleccionamos "eve" dejando el cuadrado blanco marcado y aceptamos.

Se pondrá a descargar un par de ficheros y instalará el juego como si windows estuviera "inside".
Al terminar (no puedo poner capturas, ya lo tengo descargado e instalado) nos dará la opción de arrancarlo. Es muy importante que no lo ejecuteis antes de realizar lo que vamos a hacer ahora, o puede que tengais que empezar de cero.
Finalizais sin ejecutarlo y volveis a ejecutar Winetricks, seleccionando esta vez "select Eve" para instalar programas dentro del "prefix" de Wine del Eve.

Dentro de esta ventana seleccionamos "Install a Windows DLL or component", donde buscaremos "vcrun2005" y lo seleccionaremos para instalar.


Clickando en aceptar se descargará el instalador y lo ejecutará. Instalamos (siguiente siguiente siguiente) y ya tenemos casi todos los programos instalados.
Volvemos a abrir Winetricks , seleccionamos otra vez el wineprefix de Eve y esta vez elegimos
"Run winecfg" . En esta ventana iremos a gráficos y seleccionaremos "Emular un escritorio virtual", escribiendo en las cajas la resolución que querremos usar en el juegoo menor (menor o igual a nuestra resolución de nuestra pantalla). Aceptamos y palante.

Al aceptar nos volverá a Winetricks, donde seleccionaremos "Browse Files". Cerramos Wineprefix y vamos a la carpeta que se nos abrió. Editamos "user.reg" y añadimos al final del fichero las siguientes líneas:

[SoftwareWineDirect3D] 1240428288
"DirectDrawRenderer"="opengl"
"OffscreenRenderingMode"="fbo"
"PixelShaderMode"="enabled"
"VertexShaderMode"="hardware"



Después de añadir esto al registro solo nos queda un paso: cuando se intenta actualizar necesita Python y no se actualiza, y no deja que funcione el juego en cuestión. Para esto nos descargamos Python 3.2 desde http://python.org/ftp/python/3.2.2/python-3.2.2.msi .
Abrimos Wineprefix por última vez, vamos a "Select Eve", "run taskmgr",
pulsamos "New Task" y ahí escribimos "explorer.exe" (sin comillas).


Aceptamos y nos aparecerá un explorador de ficheros. En él vamos hasta la carpeta donde está el archivo que nos descargamos y lo ejecutamos, instalando Python y dejando el sistema preparado.

Después de esto abrimos el Eve desde el escritorio o el acceso desde la carpeta Wine de Aplicaciones y aceptamos actualizar. Tardará un buen rato, ya que son 2,2 gigas, pero valdrá la pena.

Espero que la guía no fuese demasiado coñazo y que se entienda bien, si necesitais algo podeis enviarme un correo y os responderé en cuanto pueda.

domingo, 8 de enero de 2012

Jugando con Arduino cap.1

Bueno, empezando en este post (este es el primer post que hago solamente para el blog) vamos hablar sobre el comienzo del jugueteo con mi Arduino Uno, placa que me tocó en un sorteo en la XGN 2011 por suerte.

Todo comenzó cuando, despues de estar guardada medio año, quise empezar a usarla. Fui a arduino.cc (página caida todo el rato) y, despues de esperar media tarde, conseguí descargarme el entorno Arduino 019 para windows. Este entorno no incluye Arduino Uno, por lo que me fui a buscar información.
Despues de mucho buscar encontré en una parte del foro de arduino.cc que la placa Uno, al tener un Atmel 328 tenía que ser configurada como una Dumileanove con Atmel 328.
Fui a meter el ejemplo con el que todo el mundo empieza (Blink) y me sorprendió esto:

La placa no estaba conectándose bien con la IDE de Arduino.
Despues de investigar media tarde encontré que el Bootloader de la placa estaba mal flasheado en el Atmel, y que tenía que hacerme un programador por LPT para el puerto ICSP del Arduino.
Por probar antes de preparar el flasheador arranqué el portatil y instalé el IDE de Arduino en Ubuntu. El paquete que hay en los repositorios oficiales es el de la ide 022, por lo que igual cambiaba el error, a saber...
Me dispuse a seleccionar la placa y ya tenia seleccionada la UNO, seleccioné el puerto, subí el programa Blink y subió a la primera.
Espero que haya nuevas entradas aunque no sea muy pr0 el tema.