Configurar Raspberry Pi como AP

Introducción

En el proyecto que estoy desarrollando actualmente, he necesitado configurar una raspberry Pi como cliente wifi y como access point. Es decir, necesito conectarme a un router wifi (cliente) y que clientes se conecten al wifi que está emitiendo la rapsberry (AP).

En la teoria podemos usar el propio adaptador integrado de la raspberry para ambos funcionamientos, sin embargo yo no he logrado hacerlo funcionar y he necesitado usar una antena wifi externa [1]. Para la realización de este artículo he seguido el  post de imti[2]; al seguir ese tutorial he visto que algunas cosas explicadas no me han funcionado y he necesitado realizarlas de otra manera.

Desarrollo

Configuración Wifi

El adaptador usado es plug&play en raspbian jessie lite (Release date:2017-07-05) por lo que no hará falta instalar ningún driver, tan sólo necesitaremos realizar la configuración de la red wifi. Para ello editaremos el fichero /etc/network/interfaces y añadiremos la siguiente información:

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan0
iface wlan0 inet dhcp
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto uap0
iface uap0 inet static
address 192.168.50.1
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
gateway 192.168.50.1

Nota: En mi caso particular he decidido usar el rango de IP 192.158.50.0. En caso de querer usar otro rango se deberá cambiar las direcciones indicadas en el artículo por el deseado.

Con esta configuración hemos establecido que el dispositivo wlan1 (adaptador externo) será el encargado de conectarse al wifi (líneas 9 a 11), el dispositivo wlan0 (adaptador integrado) no se conectará (líneas 13 a 15), y crearemos el adaptador virtual uap0 que será el encargado de gestionar el punto de acceso (líneas 17 a 23).

Una vez reiniciamos el sistema, comprobaremos que la conexión ha tenido efecto.

pi@zero:~ $ ifconfig

uap0 Link encap:Ethernet HWaddr b8:27:eb:59:34:1f
inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::adf4:9d27:853b:3999/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:22430 (21.9 KiB)

wlan0 Link encap:Ethernet HWaddr b8:27:eb:59:34:1f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan1 Link encap:Ethernet HWaddr 00:0f:00:31:5d:26
inet addr:192.168.5.167 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::236c:b228:5d96:b0c4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4737 errors:0 dropped:3 overruns:0 frame:0
TX packets:244 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:637377 (622.4 KiB) TX bytes:30171 (29.4 KiB)

También podemos comprobar que el dispositivo wlan1 se ha conectado a la red indicada en el fichero wpa_supplicant.conf

pi@zero:~ $ iw dev wlan1 link
Connected to 06:18:d6:87:52:40 (on wlan1)
SSID: The Papaya Group freq: 2412
RX: 3507059 bytes (26364 packets)
TX: 44181 bytes (392 packets)
signal: -47 dBm
tx bitrate: 60.0 MBit/s MCS 3 40MHz short GI
bss flags: short-preamble
dtim period: 1
beacon int: 100

Una vez que tenemos realizada de forma correcta la configuración wifi, necesitaremos instalar los programas necesarios.

Instalación hostapd y DNSmasq

Necesitaremos dos programas para poder realizar la gestión del AP con la raspberry. Estos programas son:

  • Hostapd: encargado de realizar el punto de acceso como tal y que los clientes se puedan conectar a él.
  • DNSmasq: encargado de realizar la gestión de las ips de los clientes que se conecten.

Ambos programas están incluidos por defecto en los repositorios de raspbian, por tanto, para instalarlos bastará con instalarlos desde apt-get:

sudo apt-get install hosted dnsmasq

Ficheros de configuración

El siguiente paso será realizar la configuración de cada uno de los programas instalados. Empezaremos editando el fichero de hostapd que será el encargado de crear el AP para que nos conectemos a él. Para ello, crearemos el fichero /etc/hostapd/hostapd.conf y añadiremos la siguiente información:

interface=uap0
ssid=zeroAP
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=zeroAp
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podremos cambiar el parámetro asid (línea 2) con el ssid que queramos que nos aparezca; y el parámetro wpa_passphrase (linea 9) con la contraseña que queramos que tenga el AP.

Deberemos indicar a hostapd cual es el fichero de configuración que necesita usar. Editaremos el fichero /etc/default/hostapd añadiendo la siguiente línea:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Una vez realizada la configuración del AP, será necesario configurar DNSmasq, para poder realizar las gestiones a nivel de direcciones IP de los clientes. De esta manera, se podrán asignar IP a los clientes que se conecten mediante DHCP. Para configurar DNSmasq editaremos el fichero /etc/dnsmasq.conf

interface=lo,uap0
no-dhcp-interface=lo,wlan0
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.50.50,192.168.50.150,12h

Configuración de inicio

Una vez que se han configurado los programas de manera individual será necesario hacer la configuración para que los programas se inicien automáticamente.

Hostapd

Crearemos el fichero /usr/local/bin/hostapdstart y añadiremos la siguiente información:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
iw dev wlan0 interface add uap0 type __ap
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
ifup uap0
service hostapd restart
hostapd /etc/hostapd/hostapd.conf > /dev/null 2>& 1

Una vez editamos, le daremos permisos 775:

sudo chmod 775 /usr/local/bin/hostapdstart

Editaremos el fichero /etc/rc.local añadiendo la siguiente línea:

/bin/bash /usr/local/bin/hostapdstart

Es importante añadir la línea justo antes de la línea de exit 0.

DNSmasq

Para iniciar DNSmasq, crearemos el fichero /etc/rc.local/HOSTAPD y añadiremos la siguiente información:

#! /bin/sh
# /etc/init.d/HOSTAPD
## BEGINN INIT INFO
# Provides: DNSmasq service
# Required-Start: $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start DNSmasq at boot
# Description: A simple script which will start / stop a program a boot / shutdown.
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
start)echo "Starting dnsmasq"
# run application you want to startcase "$1" in
start)
sleep 1
dnsmasq > /dev/null 2>& 1
;;
stop)
echo "Stopping DNSmasq"
# kill application you want to stop;;
*)
echo "Usage: /etc/init.d/DNSmasq {start|stop}"
exit 1
;;
esac
exit 0

Necesitaremos modificar los permisos del fichero, ya actualizar el fichero rc para que ejecute el nuevo script creado:

sudo chmod 755 /etc/init.d/HOSTAPD
sudo update-rc.d HOSTAPD defaults

Con esto, ya tendremos configurado el inicio automático de ambas aplicaciones al encender la raspberry.

Una vez terminado reiniciaremos la raspberry pi y cuando se inicie, nos aparecerá el AP creado.

Figura 1: AP creado con la raspberry pi.

Referencias

  1. antena wifi externa
  2. http://imti.co/post/145442415333/raspberry-pi-3-wifi-station-ap

Generando nombres aleatorios desde terminal

Hace años, cuando usaba linux, me hice un script para generar nombres-palabras, hoy lo he estado buscando para ponerle nombre al movil, y como es lógico ese script se perdió. Así que he decidido volver a hacerlo por que nunca está de más tenerlo, y lo publico aquí para quien lo quiera.

#!/usr/bin/env bash
###########################
#Modo de ejecutar el script:
# ./names.sh 'TIPO' 'LETRAS'
# TIPO= nombres, palabras
# LETRAS:
# Palabras que empiecen por s : ^s
# Palabras que contengan s, w, b : s.w.b
# Ejemplo:
# Nombres que empiecen por 's' y contenga 't' y 'u'
# $./names.sh nombres ^s.t.u
# Palabras que empiecen por 'w' y contenga 'b' y 'l'
# sh names.sh palabras ^w.b.l
#––––––––––––––––––––––––––––
#############################
#Diccionarios
# Diccionarios por defecto en el directorio /usr/share/dict
# se encuentra en los sistemas unix.
# puedes poner la ruta de tus propios diccionarios
# Nombres propios
NOMBRES="/usr/share/dict/propernames"
# Palabras
PALABRAS="/usr/share/dict/words"
#––––––––––––––––––––––––––––
if [[ $1 == nombres ]]; then
echo "Diccionario Nombres propios: " $NOMBRES
cat $NOMBRES | tr '[A-Z]' '[a-z]'|grep -i $2
elif [[ $1 == palabras ]]; then
echo "Diccionario Palabras: " $PALABRAS
cat $PALABRAS | tr '[A-Z]' '[a-z]'|grep -i $2
fi

Considero que el script está bien comentado, si alguien tiene alguna duda que me escriba un comentario!

Cómo cargar el firmware al ipod

Bueno como sabeis recientemente tuve algún que otro disgusto con el ipod, al intentar cargar un firmware libre. Resulta que me lo cargue del todo y no podía conectarlo al ordenador ya que no tenía ningún software. en esos casos sólo hay una opción, abrir el ipod. Para abrir el ipod usar el destornillador plano más fino que tengais en casa en mi caso de 1.4mm. Ir haciendo palanca entre la placa blanca y la carcasa como podeís ver en la imagén tanto en la parte de arriba como la de abajo, os aconsejo seguir este video. Aquí os pongo unas imágenes.(click para ampliar)

ipod2

ipod1

ipod3

ipod4

Una vez quitadas las placas,el pcb sale solo, desconectamos la bateria y el disco duro, que es lo que buscamos.

ipod5

ipod6

Una vez tenemos acceso al disco duro del ipod, le quitamos ese pequeño adaptador que trae, y lo enchufacos a cualquier lector de tarjetas para poder acceder a los datos desde el ordenador.

ipod7

Ahora nos hará falta una aplicación que se llama ipodpatcher, hay versión para linux como para windows nos lo bajamos y lo ejecutamos de la siguiente forma.

./ipodpatcher –scan

Entonces nos detectara el ipod conectado, estamos más cerca de arreglarlo! Como tenemos conectado el disco del ipod en el ordenador, necesitaremos volver a cargar el firmware original del ipod. Para ello podemos podemos cargar, la copia de seguridad que hicieramos antes, con el ipodpatcher, ó bien bajarnos un firmware desde internet, para ello nos vamos a esta página. Y nos bajamos el correspondiente.

El fichero que nos bajamos tiene exptension ipsw, lo abrimos con el winrar/winzip y descompimirmos el contenido. Aparecera un fichero que se llama Firmware-x.x.x.x le cambiamos el nombre a bootpartition.bin y le decimos al ipodpatcher que lo cargue en el disco del ipod, es decir en linux sería así:

$unzip iPod_7.1.4.1.ipsw
$mv Firmware-7.2.6.1 bootpartition.bin
$./ipodpatcher /dev/sdb -w bootpartition.bin

El programa estará un rato copiando la información en el ipod cuando termine, tendremos que volver a montar el ipod, igual que cuando lo desmontamos pero al reves 🙂 Y al terminar de montarlo, lo encendemos y.. tachan!! ipod como nuevo

ipod8

Lo único malo que como el proceso de abrirlo es un poco bruto. el ipod se ha quedao marcao

ipod9

ipod10

Y ya estaría todo resuelto, desde aquí recomendar a la gente que si intenta hacer algo de esto, tener mucho cuidado no quiero imaginar esto pero con una psp, intentando cargar el firmware pirata, bruuuu mal royo… No siempre se pueden solucionar las cosas.

COMO comprimir fotos automaticamente

Cuantas veces nos han mandado un fichero que ocupaba 80 mb con 20 fotos, de las cuales cada una ocupaba 1.5mb?? a mi realmente más de las que desearía 🙂

En windows creo que hay algunas utilidades que te comprimen automáticamente las imágenes a la calidad que les indiques, el propio photoshop, le puedes "programar" para que lo haga, pero verdaderamanete es un proceso algo engorroso.

Bien, en linux no conozco de ninguna utilidad que haga esto mismo, seguramente the gimp! pueda hacerlo, pero, ¿para que buscar, si te puedes hacer tu mismo ese programa? pasemos a lo interesante

En linux hay un paquete de utilidades para tratamiento de imágenes que se llama ImageMagick ($sudo aptitude install imagemagick), con ellas, puedes editar cualquier aspecto de la imagen, resolución, brillo, contraste, cambiar a formatos png<>jpg… vamos una maravilla. Bien pensando un poco como hacer uso de esas utilidades primero pensé en hacer un

$convert -quality 50 *.jpg

en el directorio donde tengo las fotos, pero al hacer eso, el ordenador se me ha quedao tostado y no me ha hecho nada, luego he pensado en hacer un pequeño script en bash que vaya recorriendo todos los ficheros de un directorio y automáticamente lo comprima, pues bien eso se hace de la siguiente manera, en un fichero escribimos lo siguiente:
Apunte: Gracias a Juanjo por el apunte, en el for nos podemos ahorar el crear un proceso poniendo *.jpg, para que sólo pille las fotos es decir quedaria así

for i in *.jpg; do

convert -quality 50 $i com$i;

done
hacemos que recorra todos los archivos de un directorio, y lo almacene en la variable i luego en el programa convert le damos como parámetros -quality 50 (puede ser un rango de entre 0-100), a continuación el nombre del fichero que queremos comprimir y por último el nombre del fichero destino

Y con eso todas las fotos del directorio en el que ejecutemos el script, verán su tamaño reducido a la mitad, conservando más o menos la misma calidad de imagen. Y todo de una bastante rápida y aunque pueda parecer una tontería lo hemos hecho nosotros mismos.

Apagar el ordenador automaticamente.

Una de las cosas que más le faltaba a un amigo cuando empezó a usar ubuntu era un programa que se llamaba swhitch of (o similiar) consisitia en una aplicación en la cual tú le indicabas una hora, y a esa hora el ordenador se apagaba.

Buscaba un programa similar que hiciera lo mismo en ubuntu, buscó buscó y no encontro nada. Yo buscando por internet he dado con la solución cron. Siempre he sabido que estaba ahi, y para que servia (ejecutar tareas programadas), pero nunca lo he tenido que usar hasta hoy.

Bien pues digamos que el problema que tenía mi amigo (apagar el ordenador todos los dias a una cierta hora) se ha solucionado, tan sencillo como hacer lo siguiente:

$sudo vim /etc/crontaby añadir al final del fichero lo siguiente

00 00 * * * root shutdown -h -time now

Bien, la linea tiene el siguiente formato

#minute hour mday month wday who command

Es decir se podria editar esa linea para que sólo se ejecutase el comando un día determinado de un més determinado, la verdad que nunca lo habia usado, más que nada porque creia que iba a ser más dificil el programarlo, pero me había olvidado que en linux todo es muuuy facil!

Una segunda versión del programa se podría hacer, creando un sencillisimo script tal como

$ echo sudo shutdown -h -time hh:mm > hora.sh

Habría que cambiar hh:mm por la hora y los minutos de apagado y darle permisos de ejecucion:

$ chmod +x hora.sh

Despues con ejecutarlo bastaría para que se apagara solo.

HOWTO usar nvu

AVISO: Si vas a usar este manual para crear tu propio sitio web con TÚ servidor domestico y lo vas a publicar en Internet, no te recomiendo que lo sigas al pie de la letra, sobre todo a la hora de crear los usuarios locales, en el servidor. Si lo haces es bajo tu responsabilidad. Yo lo he hecho con un servidor que tengo en casa sin acceso a Internet.

Llevo unos meses usando Dreamweaver en un curso de páginas web que estoy haciendo. Dreamweaver como todos sabeís es de pago y la verdad que es una muy buena herramienta, sobre todo a la hora de poder editar un sitio web desde un servidor remoto. En Linux existe otra herramienta también muy buena y muy similar que se llama NVU, después de estar usándolo un rato, la verdad que no echo de menos Dreamweaver. En este HOWTO voy a explicar como editar un sitio web usando un servidor remoto

Lo primero de todo, es tener un servidor donde hacer las pruebas, perfectamente puedes crearte una cuenta gratuita en servicios como lycos, geocities o similiares. Yo voy a usar un “servidor” que tengo en casa muerto de risa, en su día le instale apache+php+mysql y un servidor ftp.

AVISO2: Esta parte del manual es opcional como digo al principo no es muy recomendable seguirlo al pie de la letra ya que la seguridad es 0.
Para poder subir los ficheros al directorio de ficheros de apache (/var/www/) he creado un usuario normal con directorio home en /var/www/web y que use la consola /bin/false, para ello, en el servidor ejecuto como root:

darkomen@jenova:~$ cd /var/www
darkomen@jenova:/var/www$ mkdir web
darkomen@jenova:/var/www$ sudo chmod 744 web/
darkomen@jenova:/var/www$ sudo useradd web -p web -d /var/www/web -s /bin/false
darkomen@jenova:/var/www$ sudo chown web web/

Con esos comandos lo que e hecho ha sido, crear el directorio web en /var/www, a continuación doy permisos totales al propietario de la carpeta, y dar permisos de lectura al resto de usuarios. (este último paso es importante, ya que si no le pones permisos de lectura al resto de usuarios, cuando intentes acceder por navegador al servidor, te va a decir que no hay permisos suficiente)
Y por último agrego el usuario web y le hago propietario de la carpeta web/

Luego agrego al usuario web en la lista de usuarios que están permitidos acceder al sistema por ftp (para ello recomiendo leer el manual del servidor ftp que pongo más arriba).

Abrimos el nvu y escribimos algo en un nuevo documento y pulsamos el botón Publicar, nos saldrá la ventana de configuración de sitio, que debemos de completar:
imagen1imagen2
Nombre del sitio: nombre del sitio que utilizara NVU
Información del sitio web: Página web de inicio
Servidor de publicación: Datos del servidor ftp para subir los ficheros
imagen3
Bien, una vez configurado el sitio web nos aparecerá la ventana de publicación con una serie datos a rellenar:

Nombre del sitio: Seleccionar el sitio donde queremos subir el fichero
Título de la página: correspondiente a las etiquetas
Nombre del archivo: Nombre del archivo en el servidor remoto
imagen4
Una vez que lo tenemos editado, le damos a publicar y nos debería de salir una ventana de confirmación, si da algún error habrá que mirar que la configuración del sitio sea la correcta.
imagen7
Ahora a para comprobar que esta bien subido el fichero abrimos el navegador que usemos y escribimos la dirección web que acabamos de crear, en mi caso (http://jenova/web/prueba.htm).
imagen5
Por último podemos ver el Administrador de sitios Nvu (tecla rapida F9) en la que podemos ver un explorador remoto del sitio web y cargar los ficheros en nvu para su posterior edición.
imagen6
Un sencillo HOWTO pero que a más de uno le puede ahorra mucho tiempo de trabajo.

HOWTO instalar vmware

VMware es, según la wikipedia inglesa, un software comercial que consiste en una maquina virtual compatible con los ordenadores x86 que permite la creación y ejecución de un ordenador x86, pudiendo tener varios sistemas operativos ejecutándose a la vez en un mismo ordenador.
Este software siempre se ha caracterizado por ser propietario, pero recientemente la empresa, ha liberado vmplayer gratuitamente permitiendo ejecutar un “ordenador” creado previamente con el software propietario de la compañía, así que son muy listos, liberan el programa para poder ejecutar los ordenadores pero no liberan el programa para poder crear los ordenadores. Eso no es ningún problema para la era en la que estamos ya que unas personas muy amables, han liberado los ficheros necesarios para poder crear los ordenadores virtuales sin necesidad de ningún software.

También hay un programa que hace exactamente lo mismo pero es gratuito, lo único malo es el rendimiento que deja mucho que desear y el vmware es bastante mejor.
Bueno pues en este HOWTO voy a explicar como instalar vmware-player y poder ejecutar el sistema operativo que nosotros queramos, vamos con ello.

Lo primero que hacemos es bajar los ficheros necesarios, empezamos con el vmplayer, desde la página principal, nos bajamos el fichero .tar ya que el rpm da unos cuantos problemas a la hora de ejecutar. Continuamos con los ficheros del ordenador virtual hackeado.

Antes de continuar conviene preparar un poco nuestro sistema, lo primero de todo sera cambiar el compilador gcc-4.0 a la versión gcc-3.4 ya que esta última versión es con la que esta compilado nuestro kernel, para ello, hacemos lo siguiente:


darkomen@carax:/tmp/vmware-player-distrib$ gcc -v
Usando especificaciones internas.
Objetivo: i486-linux-gnu
Configurado con: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu
Modelo de hilos: posix
gcc versión 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)

Con esto vemos que la versión usada es la 4.0.2 20050808 ahora instalamos la versión 3.4:

darkomen@carax:/tmp/vmware-player-distrib$ aptitude search gcc-3.4
p gcc-3.4 - The GNU C compiler
p gcc-3.4-base - The GNU Compiler Collection (base package
p gcc-3.4-doc - Documentation for the GNU compilers (gcc,
darkomen@carax:/tmp/vmware-player-distrib$ sudo aptitude install gcc-3.4

NOTA: si en lugar de aptitude usas apt-get puedes usarlo sin ningún problema.

A continuación localizamos donde tenemos la versión recién instalada y comprobamos que el enlace gcc apunta al ejecutable gcc-4.0.


darkomen@carax:/tmp/vmware-player-distrib$ which gcc-3.4
/usr/bin/gcc-3.4
darkomen@carax:~/Desktop$ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 darkomen darkomen 7 2006-01-22 21:12 /usr/bin/gcc -> gcc-4.0

Por si en algún momento nos hace falta usar la versión 4.0 de gcc hacemos una copia de gcc original


darkomen@carax:~/Desktop$ sudo mv /usr/bin/gcc /usr/bin/gxx

Y ya por último hacemos un enlace blando a la correcta versión


darkomen@carax:~/Desktop$ sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
darkomen@carax:~/Desktop$ gcc -v
Leyendo especificaciones de /usr/lib/gcc/i486-linux-gnu/3.4.5/specs
Configurado con: ../src/configure -v --enable-languages=c,c++,f77,pascal,objc,ada --prefix=/usr --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --program-suffix=-3.4 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug i486-linux-gnu
Modelo de hilos: posix
gcc versión 3.4.5 20050809 (prerelease) (Ubuntu 3.4.4-6ubuntu8)

Ahora es necesario que tengamos los headers de nuestro kernel instalados, la razón no la sé muy bien pero durante la instalación me los pidió, supongo que para integrar algunos módulos o algo. Primero, vemos que kernel estamos usando


darkomen@carax:~/Desktop$ uname -a
Linux carax 2.6.12-10-686-smp #1 SMP Mon Jan 16 18:39:17 UTC 2006 i686 GNU/Linux

en mi caso estoy usando el kernel 2.6.12-10-686-smp así que busco los headers de ese kernel en concreto


darkomen@carax:~/Desktop$ sudo aptitude search linux-headers |grep 2.6.12-10-686-smp
id linux-headers-2.6.12-10-686-smp - Linux kernel headers 2.6.12 on PPro/Celero
darkomen@carax:~/Desktop$ sudo aptitude install linux-headers-2.6.12-10-686-smp

con apt usa:


darkomen@carax:~/Desktop$ sudo apt-cache search linux-headers |grep 2.6.12-10-686-smp
id linux-headers-2.6.12-10-686-smp - Linux kernel headers 2.6.12 on PPro/Celero
darkomen@carax:~/Desktop$ sudo apt-get install linux-headers-2.6.12-10-686-smp

Y ya tendremos todos los pasos previos hechos, ahora pasamos a instalar el software propiamente dicho y ejecutamos los siguientes pasos:


darkomen@carax:~/Desktop$ sudo cp VMware-player-1.0.1-19317.tar.gz /tmp
darkomen@carax:~/Desktop$ cd /tmp
darkomen@carax:/tmp$ sudo tar zxvf VMware-player-1.0.1-19317.tar.gz
darkomen@carax:/tmp$ cd vmware-player.distrib
darkomen@carax:/tmp/vmware-player-distrib/$ sudo ./vmware-install.pl

A continuación se ejecutará el asistente de instalación, nos preguntara donde queremos instalar los binarios, la documentación, las imágenes y parámetros esenciales del programa que dejándolos como vienen por defecto es suficiente,

Ahora es momento de ir preparando el sistema operativo como tal. Lo primero de todo es crear una imagen .iso del cd de instalación, para ello usamos el comando “dd”

darkomen@carax:~/Desktop$ dd if=/dev/cdrom1 of=/mnt/aux/windows.xp.iso bs=1024

cada uno tiene que cambiar los parámetros del “if” como unidad de origen y el “of” donde quieras crear la imagen ISO. Seguidamente descomprimimos el fichero OS.zip, es recomendable situarlo en una partición en la que tengamos suficiente espacio, ya que en uno de esos ficheros (OS.vmdk) se instalará el sistema. Yo lo he situado en /etc/vmware/OS para ello hacemos lo siguiente:


darkomen@carax:~/Desktop$ unzip OS.zip
darkomen@carax:~/Desktop$ sudo mv OS/ /etc/vmware

cambiamos el propietario de la carpeta para poder escribir sin ningún problema.


darkomen@carax:/etc/vmware/OS$ ls -l
total 1094904
-rw-r--r-- 1 root root 1119944704 2006-02-12 14:31 OS.vmdk
-rwxr-xr-x 1 darkomen darkomen 862 2006-02-12 15:40 OS.vmx
darkomen@carax:/etc/vmware/OS$ sudo chown darkomen:darkomen *
darkomen@carax:/etc/vmware/OS$ ls -l
total 1094904
-rw-r--r-- 1 darkomen darkomen 1119944704 2006-02-12 14:31 OS.vmdk
-rwxr-xr-x 1 darkomen darkomen 862 2006-02-12 15:40 OS.vmx

NOTA: importante aunque no lo comente es NECESARIO que cada uno cambie mis datos personales que yo pongo por los que corresponda, en este caso en lugar de poner “darkomen:darkomen” hay que poner “usuario:grupo” de cada cual.

Editamos el fichero OS.vmx para indicarle la ruta de la imagen que queremos instalar, abrimos el fichero con nuestro editor preferido y en la linea donde pone “ide1:0.fileName = “c:\image.iso”” escribimos el fichero antes creado,
“ide1:0.fileName = /mnt/aux/windows.xp.iso” guardamos y salimos, una vez terminado ejecutamos el fichero con el vmplayer


darkomen@carax:/etc/vmware/OS$ vmplayer OS.vmx

y ya tendremos nuestro ordenador virtual ejecutado. A continuación muestro el proceso de instalación para el windowsXP

vmware1 vmware2 vmware3 vmware4 vmware5 vmware6 vmware7 vmware8 vmware9 vmware10 vmware11

Diablo II en linux

Pues hoy me ha dado por probar a instalar diablo II bajo wine, la verdad que no tenía ninguna esperanza, ya que los anteriores intentos con otros juegos, habían sido un rotundo fracaso. La instalación de wine la hice como comento jamardi en un post anterior, y la verdad que va bastante bien, a la hora de ejecutar aplicaciones windows y demas. He introducido el cd de diablo2 y he ejecutado el instalador.

$wine /media/cdrom1/Install.exe

Y el menú de diablo a aparecido ante mi, con el sonido típico de diablo, he elegido instalación de un solo usuario y ha empezado a copiar archivos como un descosido, algún que otro error me ha dado pero le he dado a cancelar y ha continuado.

instalacion

Al terminar de instalar el juego he tenido que aplicar el correspondiente parche no-cd para poder jugar, el directorio de instalación por defecto en wine es

~/wine/fake_windows/

Pues bien por último, he introducido el cd de juego y lo he ejecutado… pero chas! me ha dado un error de que no se podía cargar el driver 3d, o algo de pantalla, ya me he desesperado. Pero buscando por google he dado con un post en los foros oficiales de ubuntu en el que un usuario decia:

OK, run the vid test again, but dont go through the whole test, just start the program, then, cant remember the button, but I think its the middle one, then choose the 2d option, will be the first one on the list, not the suggested one. Then rune the winecfg, and select game_crack.exe, select os level of win98, then go to the video tab and check the virtual screen. set it to 800×600 or 1024×768. Then rune the wine game-crack.exe and tell me what happens. Maybe Ill try and get the screen shots of what I did if this soounds confusing.

que viene a decir que en consola se ejecute el comando winecfg, seleccione el archivo de ejecución del juego(game.exe) y le especifique una serie de opciones, tales como que el sistema de ejecución es windows98, la resolución de pantalla con la que quiero jugar, y activar la emulación 3d, comentar, que en esta configuración también hay un apartado de sonido. Después de configurar esto lo he vuelto a ejecutar…

menu

menu1

selecion

y todo ok sin ningun tipo de problemas, he estado jugando un ratejo y todo muuuy fluido con sonidos y demas… vamos un maravillla.
juego

juego2