Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas

miércoles, 31 de marzo de 2010

Configurar las teclas < y > en el Eeepc

He instalado la ultima version de Leeenux en mi Eeepc.
A pesar de que tengo este bug con el disco ssd en el arranque, parece ser que el workaround funciona.

Así que, ya sólo me falta configurar las teclas de < y > porque no hay tecla en mi configuración del teclado en español.

Para ello hay que usar xmodmap, es bastante sencillo. Se crea el fichero .Xmodmap en el home del usuario con el siguiente contenido.


keycode 52 = z Z z Z less guillemotleft
keycode 53 = x X x X greater guillemotright


Con esto las tendremos en las teclas z y x.




sábado, 6 de marzo de 2010

Como controlar el PC desde Twitter en Linux

Llevaba dándole vueltas hace tiempo al tema de controlar mínimamente el servidor de casa desde dentro. Primero pensé en una serie de correitos a través de GMail, pero después pensé en hacerlo
utilizando Twitter. Todos esto me surgió por varios motivos: el router hay veces que se queda colgado y no me entero, pero lo curioso es que si que tiene acceso al exterior, últimamente me
salta el automático de casa con demasiada frecuencia y claro si estoy fuera pues se me estropea lo que hay en la nevera y mi acuario también sufre bastante.

Me puse a buscar a ver si existía algún programa que me lo permitiera, más que nada para no reinventar la rueda (aunque esto suela ser divertido), y claro encontré esto . El problema es que funciona sólo en Windows (hay que ser gañan en los tiempos que vivimos), y no encontré nada parecido que funcionase en mi Ubuntu.

Encontré este API para python, así que manos a la obra, además python no puede ser muy dificil.

Antes de nada es muy importante que la cuenta de Twitter que se use no sea pública porque si no todo el mundo va a poder controlar el PC. Yo de momento los comandos que le he añadido son un ping, uno para obtener la IP (pública y privada), varios para gestionar el router.

Añadir un comando es tan fácil como definir una función que se llama comando_command, y dentro de esta función llamar al comando que queramos.

Luego se añade este script al cron para que lo ejecute cada X minutos y ya esta, controlando el PC desde fuera de casita con comando del tip 'rc ping', 'rc ip', etc...

Ahora sólo hay que mandar un mensaje privado a la cuenta que vamos a usar de la forma 'rc comando' y a esperar el resultado.

Aquí dejo el script:

import twitter
import os
import socket
import urllib2
import fcntl
import struct
import cStringIO
import tokenize
import string



global api

usuario='usuario_twitter'
passwd='password_twitter'
tmp_file='/tmp/twmylin.tmp'

old_id=0

def set_old_id(id):
f = open(tmp_file, 'w')
f.write(str(id))

def get_old_id():
try:
f = open(tmp_file, 'r')
id = int(f.readline())
except Exception:
id = 0
return id



def get_interface_ip(ifname):

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

return socket.inet_ntoa(fcntl.ioctl(

s.fileno(),

0x8915, # SIOCGIFADDR

struct.pack('256s', ifname[:15])

)[20:24])

def get_lan_ip():

ip = socket.gethostbyname(socket.gethostname())

if ip.startswith("127.") and os.name != "nt":

interfaces = ["eth0","eth1","eth2","wlan0","wlan1","wifi0","ath0","ath1","ppp0"]

for ifname in interfaces:

try:

ip = get_interface_ip(ifname)

break;

except IOError:

pass

return ip
def send_twitter(m):
msg='#twmylin '+ m
status = api.PostUpdate( msg)

def ping_command(tokens):
send_twitter('Estoy vivo')

def ip_command(tokens):
pub_ip='not found'
try:
pub_ip = urllib2.urlopen("http://whatismyip.com/automation/n09230945.asp").read()
except Exception:
pass

send_twitter('int:' + get_lan_ip() + ', pub:' + pub_ip)


def top_command(tokens):
s = 'top: error'
try:
f = os.popen("top -b -n1")
for i in range(0, 5):
send_twitter (f.readline())
except Exception:
send_twitter(s)


def router_check_command(tokens):
s = 'router_check: error'
try:
f = os.popen("/data/bin/router_check.sh")
f = os.popen("tail -n2 /data/bin/router_stat.txt")
s=''
for i in range(0, 2):
s+= f.readline()
except Exception:
pass

send_twitter(s)

def router_sincro_command(tokens):
s = 'router_connect: error'
try:
s = "try router_sincro"
send_twitter(s)
f = os.popen("/data/bin/router_sincro.sh")
except Exception:
pass

def router_reboot_command(tokens):
s = 'router_reboot: error'
try:
s = "try router_reboot"
send_twitter(s)
f = os.popen("/data/bin/router_reboot.sh")
except Exception:
pass

# Main
api = twitter.Api(username=usuario, password=passwd)

old_id=get_old_id()

status=api.GetDirectMessages()


for s in status:
if s.id > old_id:
old_id=s.id
set_old_id(old_id)
tokens = list(tokenize.generate_tokens(cStringIO.StringIO(s.text).readline))
if tokens[0][0] ==1 and tokens[0][1] == 'rc':
globals()[tokens[1][1]+'_command'](tokens)


lunes, 25 de enero de 2010

Como reproducir videos HD con XBMC y Atom 330

Para reproducir videos en 720p y 1080p, con XBMC a primera vista pues no funciona muy bien.
Ya se que la tarjeta gráfica no es muy potente, pero mirando el uso que se hace de la CPU parece que no esta usando los 2 núcleos que tiene el Atom 330.
Buscando un poco veo que ffmpeg no es multithread, ahí parece que va a estar el problema y buscando un poco más veo que mplayer se puede compilar con ffmpeg-mt que es la versión experimental multithread de ffmpeg.
Asi que manos a la obra, instalamos mplayer-mt de este repositorio:

https://launchpad.net/~rvm/+ppa-packages

Una vez que está instalado hay que configurar XBMC para que los videos en HD los reproduzca con la versión de multithread de mplayer que acabamos de instalar.


Para ello buscando en el wiki de XBMC encontramos este link que nos dice como se hace.
Resumiendo hay que editar el contenido del fichero ~/.xbmc/userdata/playercorefactory.xml con este contenido:


<playercorefactory>
<players>
<player name="MPlayer" type="ExternalPlayer" audio="true" video="true">
<filename>/usr/bin/mplayer</filename>
<args>-fs -lavdopts threads=4 -lavdopts lowres=1:fast:skiploopfilter=all "{0}"</args>
<hidexbmc>false</hidexbmc>
<hideconsole>true</hideconsole>
<hidecursor>true</hidecursor>
<forceontop>true</forceontop>
</player>
</players>
<rules action="prepend">
<rule filename=".*720.*|.*1080.*" player="MPlayer"/>
</rules>
</playercorefactory>


Con esto cuando el nombre del fichero que queramos reproducir tenga 720 o 1080, se usará MPlayer en lugar del reproductor por defecto de XBMC.

Editado: Con el codec CoreAVC de windows se ven mucho mejor. Aqui se muestra como instalarlo en ubuntu

miércoles, 20 de mayo de 2009

Montando imagen hecha con partimage

Después de instalar ubuntu jaunty en el eee y ver que todo funciona correctamente, hay que recuperar los datos que tenia antes del backup que hice.

El tema es que el backup lo hice clonando el disco SSD entero utilizando Clonezilla. He estado investigando que Clonezilla utiliza partimage para hacer el backup. Asi que he encontrado este link, en el que explican como montar la imagen y asi poder copiar los ficheros.

La única dificultad que he encontrado es que partimage parte los ficheros. Por lo que antes he tenido que hacer los siguiente:


amoyse@airune:~$ cat sda1.aa sda1.ab sda1.ac sda1.ad > sda1.img


Ahora es este fichero el que utilizare pare restaurar los datos como indica el link anterior, aquí esta el resumen de los pasos a seguir:


amoyse@airune:~$ dd if=/dev/zero of=myharddisk.img bs=1000 count=0 seek=$[1000*1000*SIZE]
amoyse@airune:~$ losetup /dev/loop0 myharddisk.img
amoyse@airune:~$ partimage restore /dev/loop0 sda1.img
amoyse@airune:~$ losetup -d /dev/loop0
amoyse@airune:~$ mount myharddisk.img /path/to/dir -o loop

jueves, 14 de mayo de 2009

Instalando ubuntu 9.04 en EeePC 701 8G

Me he decidido a cambiar el Debian Lenny + LXDE que tenía instalado en el EeePC por ubuntu 9.04.
La verdad es, que la instalación ha sido muy sencilla desde un Pendrive USB. Sólo he tenido que seguir las instrucciones de la propia página de Ubuntu y todo ha funcionado a la primera, la wifi, la webcam, el sonido, etc...

Ahora que ya lo tengo instalado, hay que retocar un par de cosillas para que todo vaya incluso algo mejor:
Lo primero ver este post.
  • Mover las ventanas con Alt + Ratón
Hay que poner esta linea en el terminal, como nos cuentan en este hilo de eeeuser:

amoyse@airune:~$ gconftool-2 --type bool --set /apps/compiz/plugins/move/allscreens/options/constrain_y 0
  • Instalar un kernel optimizado para mi modelo 701.
Sólo hay que seguir las instrucciones de esta página http://www.array.org/ubuntu/index.html.

  • Ficheros temporales en RAM
Para este punto he seguido las indicaciones de este post, resumiendo,
. hay que añadir en el /etc/fstab estas lineas:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

. Parar el servicio sysklogd, borrar los ficheros tempores y montar los nuevos directorios:

amoyse@airune:~$ sudo /etc/init.d/sysklogd stop
amoyse@airune:~$ sudo rm -rf /tmp/*
amoyse@airune:~$ sudo rm -rf /var/log/*
amoyse@airune:~$ sudo rm -rf /var/tmp/*
amoyse@airune:~$ sudo mount -a
amoyse@airune:~$ sudo /etc/init.d/sysklogd start

  • Optimizar Firefox. Para ello hay que seguir los consejos de este página.
. Utilizar un tema compacto classic compat
. Hacer más pequeña la letra.
. Instalar el complemento Fission.
. Instalar el complemento Fullscreener.
. Instalar el complemento para un menú más pequeño, como Personal Menu.
. Instalar el complemento para delicious.
. Mover la cache a ramdisk. Para ello modificar las siguientes propiedades desde about:config
browser.cache.offline.enable poner a false
browser.cache.disk.parent_directory a un directorio que sea ramdisk (como /var/tmp).
  • Eeepc utilities. Se instala como indica este hilo. O si prefieres estas otras.

jueves, 9 de abril de 2009

DNIe en Ubuntu Intrepid con lector C3PO LTC31

Me he comprado el lector de DNIe C3PO LTC31 y me he puesto manos a la obra para utilizarlo con Ubuntu Intrepid. Para ello he seguido las instrucciones de este post . Pero me he encontrado con un par de problemas que parece que ya he solucionado.

De los paquetes a instalar el openct no se lleva bien con el opencs, por lo que no hay que instalarlo. Por lo tanto los paquetes a instalar serian:


amoyse@minia:~$ sudo apt-get install libccid libpcsclite1 pcscd libopensc2 pinentry-gtk2 opensc mozilla-opensc pcsc-tools libnss3-tools libnspr4-0d libnss3-1d


Después hay que instalar el paquete correspondiente que nos podemos descargar de la web oficial de DNI electrónico. Al instalar este último paquete se nos configura el navegado firefox y se instala el certificado raíz.

Editado:

Para que funcione en Firefox, hay que hacer los siguientes pasos:

1. Registrar el dispositivo, para ello ejecutar esta URL desde Firefox:

file:////usr/share/opensc-dnie/instal_dnie/instala_modulo.htm

Si este paso falla, asegurarse que esta la tarjeta con el DNI conectada al PC y
el servicio pcscd arrancado. Para arrancarlo:

amoyse@minia: ~$ sudo /etc/init.d/pcscd start

2. Registrar el certificado raíz, para ello ejecutar esta URL desde Firefox:

file:////usr/share/opensc-dnie/instal_dnie/ac_raiz_dnie.crt

y marcar los 3 check que aparecen en la pantalla.

sábado, 3 de enero de 2009

Instalar XBMC en intrepid

Como media center de momento voy a utilizar XMBC.

Para instalarlo en intrepid, creamos el fichero /etc/apt/source.list.d/xbmc.list con el siguiente contenido.

deb http://ppa.launchpad.net/team-xbmc-intrepid/ubuntu intrepid main
deb-src http://ppa.launchpad.net/team-xbmc-intrepid/ubuntu intrepid main

deb http://ppa.launchpad.net/xbmc-addons/ubuntu intrepid main
deb-src http://ppa.launchpad.net/xbmc-addons/ubuntu intrepid main


E instalamos los paquetes necesarios:

amoyse@minia:~$ sudo apt-get update
amoyse@minia:~$ sudo apt-get install xbmc


si queremos mas temas

amoyse@minia:~$ sudo apt-get install xbmc-skin*

si queremos mas plugins

amoyse@minia:~$ sudo apt-get install xbmc-plugins*

si queremos mas scripts

amoyse@minia:~$ sudo apt-get install xbmc-scripts*

Instalando torrentflux-b4rt en ubuntu intrepid

Voy a instalar el cliente de bittorrent torrentflux-b4rt. He elegido este cliente por el acceso web y por que puedes bajar tambien programas por http (usa wget).

Lo primero es instalar apache, mysql, php, vlc y uudeview:

amoyse@minia:~$ sudo apt-get install mysql-server apache2 php5 php5-cli libapache2-mod-php5 php5-mysql unrar uudeview vlc

A continuación bajamos el paquete de la web de torrentflux-b4rt y lo descomprimimos en /opt

amoyse@minia:~$ cd /opt

amoyse@minia:~$ tar xjf torrentflux-b4rt_1.0-beta2.tar.bz2

Hacemos un link desde el docroot de apache y le cambiamos el usuario:

amoyse@minia:~$ sudo ln -s /opt/torrentflux-b4rt_1.0-beta2/html/ /var/www/tf
amoyse@minia:~$ sudo chown -R www-data:www-data /var/www/tf

El siguiente paso es configurarlo, para ello se abre firefox y se conecta a:

http://localhost/tf/setup.php

Y siguiendo los pasos por pantalla se configura de manera muy sencilla.


Lo siguiente a realizar es configurar para que el demonio fluxd se arranca al iniciar el ordenador, con ello sabremos que siempre tenemos los torrents en ejecucion.

Para ello copiamos este script en el fichero /etc/init.d/fluxd, cambiamos el path dentro del script donde se encuentra nuestra instalación y lo instalamos para el arranque con este comando:

amoyse@minia:~$ sudo update-rc.d fluxd defaults 99


En otro post pondre los scripts necesarios para mover los torrents completados a otro directorio.

miércoles, 31 de diciembre de 2008

Compartir directorios con NFS

Ahora que ya tengo funcionando el pequeñín, el siguiente paso es compartir el directorio de datos con el resto de equipos de la red. Para ello voy a utilizar NFS.

Para hacerlo rápidillo de googleado un poco y he encontrado esta entrada.

  1. En el servidor instalamos los siguientes paquetes:

    amoyse@mini-a:~$ sudo apt-get install nfs-common nfs-kernel-server

  2. Añadimos en el fichero /etc/exports los directorios que queremos exportar, a los que se podrá acceder desde los clientes.

    amoyse@mini-a:~$ sudo vi /etc/exports

    /data 192.168.1.0/24(rw,async)


  3. En el cliente instalamos los siguientes paquetes:

    root@ubuntu:~#apt-get install nfs-common portmap

  4. Añadir el directorio a montar en el cliente /etc/fstab

    root@ubuntu:~$ sudo vi /etc/fstab

    192.168.1.50:/data /mnt/minia nfs rsize=8192,wsize=8192,timeo=14,intr,auto,user


Y ya tenemos compartidos nuestro directorio por NFS