Finka Linux

lunes 23 de febrero de 2009

Instalando debian 5.0 con netboot

Desde hace unos meses tengo un eeepc y todavia lo tenia con xandros instalado, estuve pensando en hacerle de todo, desde instalarle cualquier distro (debian y eeebuntu eran mis primeras elecciones) hasta en hacerme una distro especifica basandome en gentoo (geeentoo la iba a llamar) con emerges a traves de un servi chrooteado en casa.... pero como soy muy vago, se acerca la fiberparty, sacaron la 5.0 de debian y uno tiene que guardar apariencias... pues me puse manos a la obra con debian

La opcion + facil es comprarte un lector/grabador de dvds con conex por usb... bajarte la iso e instalar, pero recalco soy muy vago e impaciente... tendria que ir al fnac comprarla desenvalarla... en fin... un coñazo, a parte que comprarte un lector solo para esto es un poco gilipollesco.

Una opcion bastante facil es hacerte un usb-arrancable, te bajas la iso, te montas el squash lo metes todo en el usb grub-install y punto pelota... es la mejor opcion a voz de pronto.... ¿no?

¿y que tal si usamos de una puta vez el netboot que ya soportan todos los ordenadores? ademas nunca he arrancado por red un ordena y tiene que molar asi que he aqui el micro howto para que no os volvais locos.

Bajarte la netboot install de debian aquimismo...

Descomprimir en el directorio /tftpboot/

Necesitais tener un servidor DHCP instalado y rulante, yo personalmente estoy enamorado de dnsmasq, pesa poco, te vale para dns, dhcp... ignoro la desventaja que tendra para entornos mas serios pero para casa me va de c*j*ns y cuando vi que tenia soporte para tftp.... ¡ay! como le quiero

Si estas en gentoo conviene que verifiques que lo instalaste con la use tftp sino... a remergear

USE=tftp emerge -DuvaN dnsmasq

Activando tftp
Editais el archivo de config de dnsmasq /etc/dnsmasq.conf

nano -w /etc/dnsmasq.conf

Descomenta las siguientes lineas (o añadelas al final) para activar el servidor tftp

dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftpboot/


Reinicias el dnsmasq...

/etc/init.d/dnsmasq restart

Listo, ya solo te queda configurar desde la bios del ordena que quieres acceder que arranque desde red.

Una vez usado conviene comentarlo en el dnsmasq.conf y reiniciar otra vez... ¿pa que tener arrancado el tftp? usalo cuando lo necesites...

Rapido verda? bueno, ahora viene lo mas interesante, para mi caso particular el initrd de la net-install de debian no tiene los drivers de la tarjeta de red de mi eeepc 701, aqui explico como solucionarlo, en base al ejemplo con los drivers de las tarjetas atl2 pero imagino que os valdra para posibles drivers que os falten

Descomprimes el initrd.gz y lo mueves a initrd.d

cd /tftpboot/debian-installer/i386/
gzip -dc initrd.gz |cpio -i
mv initrd initrd.d


Te descargas los drivers que necesites, para este caso estan aquimismo...

Extraes el modulo y lo copias al directorio /tftpboot/debian-installer/i386/initrd.d/lib/modules/2.6.26-1-486/kernel/ .... donde veas tu que mejor queda ;) es para el initrd , en mi caso copie la carpeta atl2 en /tftpboot/debian-installer/i386/initrd.d/lib/modules/2.6.26-1-486/kernel/drivers/net/atl2/atl2.ko

registras el modulo añadiendolo a el modules.dep :
echo "/lib/modules/2.6.26-1-486/kernel/drivers/net/atl2/atl2.ko:" >> /tftpboot/debian-installer/i386/initrd.d/lib/modules/2.6.26-1-486/modules.dep

creamos el nuevo initrd.gz
cd /tftpboot/debian-installer/i386/initrd.d/
find . | cpio --create --format='newc' > ../initrd
cd ..
gzip -9 initrd initrd.d


y ya esta una netboot con un modulo nuevo metido... a disfrutarla....

no es que sea listo... es que busque en google y encontre este articulo : http://sharengo.org/infra/haplatform/docs/UbuntuOnHPProliantDL360-380-G5/en/html_single/index.html

Infinitas gracias al autor

jueves 3 de julio de 2008

APE + CUE to FLAC

Aprovechando el artículo de layman de MoZ, paso a comentar como convertir archivos en formato Monkey’s Audio (privativo, caca) a FLAC (GPL, bueno).

Bueno, además tengo que decir que no estoy seguro de que se pueda reroducir un archivo .ape directamente, pero eso, ¿a quien le importa? ^_~

Lo primero, instalación de paquetes necesarios.
Necesitaremos el paquete /media-libs/mac Que se encuentra en el overlay de berkano (mirar en el artículo anterior para instalarlo)
layman -f -a berkano

Instalamos el paquete:
emerge -uva /media-libs/mac

También necesitaremos el paquete app-cdr/bchunk para cortar el wav que nos genere mac:
emerge -uva app-cdr/bchunk

Y por último, media-libs/flac:
emerge -uva media-libs/flac

Tengo que reconocer que he sido incapaz (y MoZ también T_T) de decirle al portage que sólo me interesa el paquete mac, y un emerge world intentaba actualizarme todos los paquetes que tengo instalados que tiene berkano. Así que con mucho dolor de mi corazón, he quitado el overlay de berkano una vez instalados los paquetes que necesitaba.
layman -d berkano


Y ahora sí, nos ponemos con la conversión de APE a FLAC:

  • Primero convertimos el fichero ape a wav:
mac fichero.ape fichero.wav -d


  • A continuación, cortamos el fichero wav que nos ha generado:
bchunk -w fichero.wav fichero.cue nombre_final

Esto habrá generado un archivo nombre_final01.wav por cada pista de audio

  • Por último, lo convertimos a formato flac:
flac -V --best *wav



Además del tema de los repositorios, queda pendiente ver cómo tagear automáticamente los ficheros .flac, pero de momento no he visto una forma trivial de hacerlo.

domingo 29 de junio de 2008

Miro en repositorio de gentoo

Basicamente este articulo es : Gentoo + Layman + www.sabayonlinux.org = miro y otros paquetes interesantes que no estan en el repositorio oficial de gentoo.

Por increible que paredca, hay paquetes que no estan en el repo oficial de gentoo... Para acceder a ellos basta con instalarnos el layman

emerge layman

He ir añadiendo respos de terceros, para el caso del miro tv

layman -f -a sabayon

Esto añadira el repo de Sabayon a nuestros overlays

y añadir esta linea al make.conf

source /usr/portage/local/layman/make.conf

Ahora si hacemos

emerge miro

Se nos deberia instalar el miro tv... A mi me acaba de dar un error de compilacion ^_^ ... esta hard masked para amd64.... a ver si doy con ello

Si usais eix teneis que hacer eix-sync para actualizar los datos con las versiones de los packetes de los overlays que hallamos añadido

viernes 6 de junio de 2008

Xinerama, xrand, gtf, y alguna otra cosilla del mundillo de las X.Org

Buscando info para configurar correctamente un segundo monitor conectado al portátil, he dado con unos cuantos comandos que me han sido de gran utilidad.
Hay que decir que antes de tocar nada, Debian detectaba correctamente cuando conectabas un segundo monitor LCD y clonaba la imagen. Mi objetivo era utilizar los 2 monitores en modo xinerama.


  • Configuración de xinerama


  • Como las opciones creo que son bastante autoexplicativas, paso a indicar las modificaciones que he tenido que hacer en el archivo xorg.conf.

    Añadir en la sección "device":

    Option "monitor-VGA" "VGA"
    Option "monitor-LVDS" "LVDS"


    Sustituir la sección "Monitor" por una independiente por cada monitor:

    La versión original:

    Section "Monitor"
    Identifier "Monitor genrico"
    Option "DPMS"
    EndSection


    Ha quedado así:

    Section "Monitor"
    Identifier "VGA"
    Option "PreferredMode" "1280x1024"
    Option "Position" "0 0"
    EndSection

    Section "Monitor"
    Identifier "LVDS"
    Option "DPMS"
    Option "LeftOf" "VGA"
    Option "Enable" "true"
    EndSection


    Respecto a la sección "Screen":

    La versión original:

    Section "Screen"
    Identifier "Default Screen"
    Device "Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
    Monitor "Monitor genrico"
    DefaultDepth 24
    SubSection "Display"
    Modes "1680x1050" "1440x900" "1400x1050"
    EndSubSection
    EndSection


    Ha quedado así:

    Section "Screen"
    Identifier "Default Screen"
    Device "Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
    Monitor "LVDS"
    DefaultDepth 24
    SubSection "Display"
    #Modes "1680x1050" "1440x900" "1400x1050" "1280x800"
    Modes "1280x800" "1280x768" "1024x768" "800x600" "640x480"
    Virtual 2624 1200
    EndSubSection
    EndSection

    Section "Screen"
    Identifier "Second Screen"
    Device "Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
    Monitor "LVDS"
    DefaultDepth 24
    SubSection "Display"
    Modes "1680x1050" "1440x900" "1400x1050" "1280x1024"
    Virtual 2624 1200
    EndSubSection
    EndSection


    Y por último, en la sección "ServerFlags" hay que añadir:

    Option "Xinerama" "enable"


    En mi caso no tenía dicha sección, así que he añadido algo tal que así:

    Section "ServerFlags"
    Option "Xinerama" "enable"
    EndSection


    La única opción que parece poco intuitiva es "Virtual". Esta es la resolución máxima que vamos a darle al entorno de ambos escritorios. [1]


  • Comando Xrandr


  • Obviamente, el tema de las resoluciones es cosa de cada uno. Ahí es donde entra el comando xrand. Dicho comando sirve para modificar dinámicamente la resolución, orientación etc. de los monitores. Muy útil para realizar las pruebas sin el incordio de estar reiniciando las X.

    Además a mí me han ido de coña los valores de autodetección que devuelve:

    xrandr -q
    Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 2624 x 1200
    VGA connected 1280x1024+1280+0 (normal left inverted right x axis y axis) 376mm x 301mm
    1280x1024 60.0*+ 74.9 75.0 59.9
    1024x768 75.1 70.1 60.0
    832x624 74.6
    800x600 72.2 75.0 60.3 56.2
    640x480 75.0 72.8 66.7 60.0
    720x400 70.1
    LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
    1280x800 60.0*+ 60.0
    1280x768 60.0
    1024x768 60.0
    800x600 60.3
    640x480 59.9
    TV disconnected (normal left inverted right x axis y axis)


    Con esto conseguimos, por un lado saber si las X están detectando correctamente los dispositivos que tenemos conectados, y por otro cuales son las resoluciones que soportan.

    Varios ejemplos de las pruebas que podemos realizar con xrandr:
    Deshabilitar el monitor externo:

    xrandr --output VGA --off


    Clonar ambas imágenes:

    xrandr --output LVDS --auto --output VGA --auto --same-as LVDS


    Poner el monitor externo a la derecha de la pantalla del portátil:

    xrandr --output LVDS --auto --left-of VGA



  • Comando gtf


  • Por último, si tienes algún dispositivo rarito - o conectado a través de algún dispositivo que impide su correcta autodetección, podemos usar el comando gtf

    Por ejemplo, la resolución que necesito para el proye es 1280x720 a 60 Hz.

    1º Ejecutamos

    gtf 1280 720 60

    # 1280x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 74.48 MHz
    Modeline "1280x720_60.00" 74.48 1280 1336 1472 1664 720 721 724 746 -HSync +Vsync


    2º Pegamos el resultado que nos ha devuelto en la sección "Monitor" del monitor que nos interesa, obviamente. Con esto, hemos creado una resolución llamada "1280x720_60.00"

    3º Especificamos dicha resolución en los "modes" que nos interesen.


    Como siempre, aconsejo tirar de las páginas MAN de xrandr , gtf, xorg y xorg.conf para aprovechar sus posibilidades.


    Mis archivos xorg.conf:

    xorg.conf.Single_Monitor
    xorg.conf.Dual_Monitor

    Importante, el cacharro tiene una gráfica INTEL, así que ojito con los copypaste a ciegas xD. Concretamente tengo una

    lspci |grep Display
    00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)


    [1]Casi toda la info ha sido sacada (que no fusilada ^_~) de http://www.thinkwiki.org/wiki/Xorg_RandR_1.2

    domingo 25 de mayo de 2008

    Usando synergy con un solo monitor

    Ahora que tengo un portatil nuevo y lo tengo enganchado casi todo el tiempo al cacho de monitor que me compre es engorroso tener 2 teclados encima de la mesa.

    Lo cierto es que he estado asi 2 semanas pero por fin encontre la solucion usando synergy.

    Describire primero mi caso para que los que ya useis synergy no os riais de mi porque os resulte demasiado tribial.

    Dos ordenadores conectados a un mismo monitor (si, tiene 4 entradas mi monitor :P) y quiero que los dos ordenadores usen el mismo teclado y raton. Ademas quiero manejar todo con el teclado y el raton es decir cambiame a este ordenador, o cambiame al otro...

    section: screens
    servername:
    clientname:
    end

    section: links
    end

    section: aliases
    end

    section: options
    keystroke(alt+left) = switchToScreen(clientname)
    keystroke(alt+right) = switchToScreen(servername)
    end


    Desde el servidor (el que tiene el teclado) :
    synergys -f -c /etc/synergy.cfg

    Desde el cliente
    synergyc servername

    Los monitores con varias entradas, normalmente, buscan la entrada que les da "chicha"... Buscando por inete vi esto para poner en stand-by el monitor desde consola
    xset dpms force off

    si asignamos unas teclas para la ejecucion de esta linea (desde gnome se hace con gconf-editor : apps / metacity / keybinding_commands), ya tenemos como cambiar de monitor....

    Yo me asigne Alt + F12 para apagar el monitor (en los dos, client y server) y luego con Alt <- voy a una maquina u otra con Alt ->.

    Las cosas como son, no es perfecto, pero a corto plazo es lo mejor que he podido hacer y por ahora rula...

    De free nos llevamos que synergy, por defecto, comparte el porta-papeles.

    Enlaces : http://synergy2.sourceforge.net/
    http://mundogeek.net/archivos/2004/07/01/apagar-el-monitor-en-linux-va-la-lnea-de-comandos/

    miércoles 30 de abril de 2008

    Un par de TIPs rápidos sobre túneles SSH

    Esto iban a ser un par de comandos para el apartado ful scripts, pero luego he pensado que quizá merecía la pena montar un mini-artículo que explicase de qué iba el tema.

  • Túnel a través de ssh

  • Muchas veces tenemos que acceder a servicios de una LAN que no están accesibles directamente desde internet; sin embargo, sí tenemos conexión de ssh.
    La solución es muy sencilla, crear un tunel a través del ssh (esto se puede hacer también a través del putty si tienes la desgracia de que el S.O. del cliente es un windows...

    Escenario:
    • Servicio ssh escuchando en internet en la IP pública 64.233.183.99
    • En otra máquina dentro de la misma LAN está escuchando una BBDD postgres en la IP 192.168.10.69 en el puerto 5432
    • Conectamos nuestro portátil a una Wireless que algún alma caritativa tiene abierta (0 no) y creamos un túnel con el siguiente comando:
    ssh -CvNL 5432:192.168.10.69:5432 bpk@64.233.183.99

    Explicando rápidamente el tema:
    • C -->Habilita la compresión, para minimizar el uso de ancho de banda
    • v -->Verbose. Útil para ver cuando y cómo se establecen las conexiones dentro del tunel.
    • N -->Para que no levante una shell ni permita ejecutar comandos en el servidor destino. Útil si tenemos un usuario para estos menesteres que no tiene shell
    • L -->Con este parámetro estamos levantando el túnel que necesitamos. Concretamente le estamos diciendo que escuche en el puerto local del protátil 5432 y que lo que reciba por ahí lo reenvíe a la IP 192.168.10.69 al puerto 5432 a través de la conexión SSH.
    • usuario@IP_pública -->Los datos con los que levantaríamos una conexión típica de SSH.
    Una vez establecida la conexión SSH sólo tendremos que decirle a nuestro cliente preferido de postgres que se conecte a la IP local 127.0.0.1 en el puerto 5432 y listo.


    Otro posible escenario sería:
    • Servicio ssh escuchando en internet en la IP pública 89.185.234.89
    • En otra máquina dentro de la misma LAN tiene montado un servidor FTP que sólo está accesible desde dentro de la red con la IP 172.26.0.69
    • Tenemos que realizar un backup del pr0n en nuestro portátil. Para ello creamos el túnel con el siguiente comando:
    ssh -CvNL 10000:172.26.0.69:21 bpk@89.185.234.89

    Y desde otro terminal:
    ftp 127.0.0.1 10000

    La idea es la misma, aunque creo que es más intuitivo así.


    Este tipo de túneles se pueden empalmar para ir saltando de máquina en máquina dentro de las distintas subredes de la empresa, pero no quiero complicar el ejemplo, así que eso queda como deberes para cuando lo necesitéis ^_~

  • Túnel Dinámico a través de ssh

  • Otro uso práctico de túneles. En este caso túneles dinámicos.
    Si estáis en una red no confiable (sipe, lo sé, todas las redes son no confiables, pero unas lo son menos que otras). Pongamos por caso que el vecino con wireless que mencionaba más arriba es un pequeño cabroncete, y le encanta jugar con nuestro tráfico de formas que no nos resultan agradables (no como lo haría la madre de Juako). A través de ssh podemos levantar un túnel dinámico que se comportará como un proxy SOCKS y sólo tendremos que configurar nuestro navegador (o la aplicación que sea) para que utilice el proxy que hemos creado. Por supuesto, conseguiríamos el mismo resultado con una VPN, pero este método tiene la ventaja de que no tenemos que montar ningún servicio adicional y siempre es más común tener un ssh escuchando que una VPN montada.

    Escenario:
    • Servicio ssh escuchando en la IP pública 64.233.183.99 (máqina dentro de una red confiable)
    • Ejecutamos el siguiente comando en el portátil que está conectado a internet desde la WIFI del vecino cabrón.
    ssh -CvND 7777 bpk@64.233.183.99

    En este caso, la 'D' es la encargada de levantar el túnel dinámico, y el puerto en el que el que está escuchando el proxy SOCKS es el 7777


    Notas referentes al firefox:

    Recomiendo usar Add-ons como FoxyProxy para poder alternar configuraciones de distintos proxys (dinámicos, TOR, SQUID...) de una forma rápida y cómoda.

    Si vamos a tunelar el tráfico, conviene comprobar que el parámetro "network.proxy.socks_remote_dns" esté en "true" para que así vaya también por el túnel.
    Para comprobar/cambiar el valor: En la barra de direcciones del firefox vamos a "about:config" y buscamos este parámetro (podemos filtrar por "dns" para encontrarlo antes)


    UPDATE - Notas referentes al servidor SSH:

    Si tienes problemas y no funciona el túnel, comprobar que está habilitado en el servidor. Para ello editar el archivo de configuración /etc/ssh/sshd_config y buscar el siguiente parámetro:
    AllowTcpForwarding yes

    Y ya que estáis editando el archivo, no está de más capar el acceso a root como medida de seguridad:
    PermitRootLogin no

    viernes 22 de febrero de 2008

    UTF8 en Wordpress

    A parte del sufrimiento anteriormente mencionado tambien me ocurrio que derrepente se dejaron de ver los acentos, eñes etc... (Esto no fue culpa del isp... fue solo mia :P)

    Despues de estar haciendo locales-gen, ejecutar castellanizar y varias cosillas mas que encontre googleando sin ningun resultado me hice un

    grep 8859 /etc/* -R

    Encontre lo que creo que soluciono el tema por un lado para poner utf8 en apache editamos nuestro archivo de configuracion de apache :

    nano -w /etc/apache2/apache2.conf

    Y buscamos AddDefaultCharset y lo ponemos para que por defecto pille utf8

    AddDefaultCharset UTF-8

    Despues editamos la configuracion de php ...

    nano -w /etc/php5/apache2/php.ini

    Para hacer casi lo mismo, buscamos default_charset para ponerle que por defecto pille utf8

    default_charset = "utf-8"

    Con esto ultimo un script que tenia de prueba con un echo con acentos, eñes, etc... ya funcionaba, pero los caracteres especiales en los datos que escupia el wordpress de la base de datos mysql seguian apareciendo mal.

    Acordandome de la config que tiene el wp tenia referencia a una locale y gracias a que 5 minutos antes mi boss me recordo que el mysql utilizaba un tipo de codificacion que "raro" (Si me lo dices 10 minutos antes seguro que se me olvida), para ser mas exactos era la : utf8_general_ci modifique el archivo de configuracion del wordpress para poner esta ultima en vez de utf8 en el DB_CHARSET.

    define('DB_CHARSET', 'utf8_general_ci');

    Y todo volvio a la normalidad... ha sido una semana muy, muy, pero que muy.... dura

    Wordpress lentisimo, casi parado, derrepente....

    En un lugar de la red, de cuyo nombre no quiero acordarme, hospedaba un ISP malvado como el solo.

    Un dia y coincidiendo con unos cambios que habia realizado el dia anterior empezo a ir lentisimo los sites que tenia hospedados en un servidor dedicado (unos 160 €/mes ... casi na).

    Como coincidio con los cambios realizados por mi, en un servidor que administro yo, lo mas logico fue pensar que la habia cagado de alguna forma. Despues de mirar codigo cambiar todo, poner un wordpress nuevecito y ver que seguia iendo lento descubri, por pura casualidad, que el propio servidor no resolvia nombres.

    Edite el resolv.conf puse unos nuevos dns y ya iba como un tiro...

    Casi lloro de dolor (Menos mal que bpk estuvo a mi lado consolandome...)

    Moraleja, antes de ponerte a hacer straces (o como se llame lo que hace bpk para ver donde se cuelgan/sobrecargan las apps) mira bien que tu isp no te la jugo, no te pase como a mi y te tires 4 horas con semejante locura.

    Seguidores