23 agosto 2006

Ubuntu la cagó

Y bien cagada. Una actualización del paquete xserver-xorg-core ha dejado hoy sin interfaz gráfica a miles de usuarios que han actualizado el sistema. El hecho de que Ubuntu sea la distro preferida por los newbies de Linux quizá ha hecho que el suceso adquiera más relevancia. Imaginaos cientos de personas que no saben lo que es un ls y que de pronto se encuentran (más bien se topan de bruces) con una shell monda y lironda.

Los foros y newsgroups de Linux y de Ubuntu en particular se han convertido hoy en un hervidero de peticiones de ayuda con respecto al problema. Afortunadamente el punto fuerte de Ubuntu es su comunidad de usuarios, y los más experimentados han ayudado a calmar los ánimos aportando la solución hasta que el problema ha sido resuelto oficialmente unas horas después.

Todo el mundo se pregunta "¿En qué coño están pensando los maintainers de los repositorios de Ubuntu?" Yo no. Al fin y al cabo errare humanum est. Lo que yo me pregunto es: ¿En qué coño están pensando los usuarios de Ubuntu? ¿Piensan acaso que Ubuntu es como Windows, pero en marrón y sin tener que buscar un serial? Lo que quiero decir es que si usas un sistema operativo debes conocerlo, al igual que debes conocer el coche que conduces a diario. A ver si le perdemos de una vez el miedo a la shell, joer, que al fin y al cabo es en ella donde radica la potencia de Linux.

Espero no haber sonado demasiado radical...

Super Grub Disk

Ayer, googleando un poco para resolver una duda que se presentó en uno de los foros que frecuento, me topé de casualidad con Super Grub Disk, que, como dice el propio autor, es "un disquete o un cdrom autoarrancable orientado al rescate de sistemas y en concreto al arranque y restauración de arranques".

Super Grub Disk

Una herramienta completa y bastante útil, que nos puede sacar de más de un fregado.

Caracteristicas:

  • Restaurar Grub en MBR automaticamente

  • Arranque de Windows

  • Arranque de otros sistemas operativos

    • Arranque de GNU Hurd

    • Arranque de GNU Linux

  • Arranque Especial

    • EsBootFormerOs|Arrancar tu antiguo SO (un Linux u otro). En realidad carga el menu.lst de tu ordenador.

    • Intercambio de discos duros en BIOS y arranque de disquete / cdrom / particiones...

  • Arranque Clasico

    • Arrancar MBRs

    • Arrancar particiones

  • Herramientas

    • Activar particiones

  • Configuración

    • Cambiar teclado de consola

    • Multiidioma

Yo ya llevo una copia en mi mochila. Por si las moscas :)

20 agosto 2006

Un logo en el login

Perdón por el nefasto juego de palabras...

¿Verdad que un login "a palo seco" queda muy soso? Una pantalla negra, y un cursor parpadeando a la espera de nuestro username. Lo más cutre del mundo. Pero eso se puede remediar. Os presento un par de programas que pueden "alegrarle la cara" a nuestro shell login a través del archivo /etc/issue. Por supuesto son logos ascii-art, ya que estamos hablando de la consola.

El primero es linux_logo, un programa que genera a través de los scripts de arranque un issue con un logo que, al menos en la versión de Debian queda bastante... hummmm... debianita:

linux_logo

Lo único que hay que recordar es deshabilitar el script /etc/init.d/linuxlogo en nuestro runlevel, si no queremos que nos machaque el issue en cada arranque.

El otro es Welcome2l, que genera un /etc/issue.welcome2l más o menos como esto:

Welcome2l

Ambos están disponibles en los repositorios de Debian vía:

apt-get install linuxlogo welcome2l

Yo... al final no pude decidirme entre uno y otro, así que puse uno en /etc/issue y otro en /etc/motd :D

17 agosto 2006

Hacking del de verdad

Y hablo del sentido original de la palabra hacking. Os traigo dos proyectos que son auténticos hacks, se mire por donde se mire.

En primer lugar aquí vemos cómo a alguien se la ha ocurrido fabricar, con un microcontrolador PIC (de esos que se usan en robótica, que se programan mediante mnemónicos) y media docena de patatas (sí, así como suena) un servidor web alimentado por patatas:

Servidor web alimentado por patatas

O al menos era así cuando descubrí este proyecto. Parece ser, por lo que veo en la web del proyecto, que actualmente ha abandonado la idea original y ahora lo alimenta con una pila AAA (1,5 voltios), con una duración de la pila de varios años. Alucinante.

El segundo proyecto explica cómo usar la flash RAM de un router Linksys WRT54G para adaptarle un lector de tarjetas SD.

Router WRT54G hackeado

Esto sí son auténticos hackers.

¿Qué navegador usan los extraterrestres?

Hemos encontrado pruebas indiscutibles de que no es Internet Explorer. Por algo será :D

Firefox

Marillat se ha mudado

Uno de los repositorios no oficiales de Debian más utilizado es, junto con el de backports, el de multimedia, conocido de toda la vida como Marillat debido a su maintainer, Christian Marillat. En él se incluyen paquetes como avidemux, w32codecs, qdvdauthor, mjpegtools, dvdrip, etcétera, así que ya os podéis hacer una idea.

El caso es que hacía más de un mes que yo siempre veía este servidor "caído"... y con razón. Resulta que se ha mudado, y yo me entero ahora.

Hasta ahora, en mi sources.list había esto:

deb http://idefix.eup.uva.es/debian-marillat sarge main
deb ftp://ftp.nerim.net/debian-marillat/ sarge main


Y claro, me decía que nones. En fin, por si queda algún otro despistado por ahí, el servidor actual es:

deb http://debian-multimedia.org/ [sarge|etch|sid] main

12 agosto 2006

Escáner de dispositivos Bluetooth

Hoy me he pasado buena parte del día empollándome el protocolo Bluetooth y sus vulnerabilidades. Es un tema tan fascinante como extenso, y hasta ahora desconocido para mí, así que mañana seguiré con ello. Por el momento, esta tarde he estado codeando un sencillo escáner de dispositivos Bluetooth en bash, para las sesiones de wardriving que tengo pensado hacer ;)

Aquí os dejo el código fuente por si a alguien más le aprovecha, y una captura de pantalla. De momento es bastante sencillo, aunque de sobras cumple su función.

BlueScan

ACTUALIZACIÓN: Me he puesto a añadirle "pijaditas" y ya lleva más de doscientas líneas de código. No es mucho, pero quedaba bastante incómodo puesto aquí, así que lo he subido a otro servidor. Podéis ver el código fuente pinchando aquí.

ACTUALIZACION 2: Y menudo tinglado he montado alrededor...

11 agosto 2006

Compilando el kernel "a lo Debian"

Cualquier usuario que ha pasado la fase de introducción a Linux se encuentra con una prueba de fuego: compilar el kernel. Las razones pueden ser muchas: incluir nuevas funcionalidades, adaptar el núcleo a nuestra máquina o simplemente actualizar.

Esto es algo común a todas las distros, y no voy a explicar cómo hacerlo. Hay cientos de tutoriales muy buenos por ahí. Sin embargo, en Debian, aunque se puede hacer como en cualquier otra distro, hay también un modo especial de hacerlo. Como suele decirse, el Debian-way.

Además de lo típico para estos menesteres (código fuente del kernel, libncurses-dev si usas make menuconfig, etc.) es necesario instalar el paquete kernel-package. El proceso es bastante sencillo, y al final obtienes tu kernel recién compilado en un bonito paquete DEB listo para instalar. Veamos cómo.

Empezamos como siempre: descargamos los fuentes, desempaquetamos bajo /usr/src (orden ante todo), configuramos... La novedad viene a la hora de compilar: en lugar del clásico make, utilizaremos el comando

make-kpkg kernel_image --revision="cadena"

Donde cadena es eso, un string que diferencie el kernel, por si queréis compilar el mismo kernel varias veces con configuraciones distintas. No es obligatorio ponerlo, pero sí muy recomendable para poder distinguir con facilidad un kernel de otro. Puedes poner la fecha en que lo compilas o cualquier otra cadena que te permita identificarlo.

Cuando termine de compilar el kernel, tendremos el paquete DEB listo para instalar con dpkg. Debconf se encargará de preguntarnos si queremos modificar el gestor de arranque, y todo listo para el reinicio. A la Debian-way-of-life ;)

Y tú, ¿aún compilas el kernel a la manera tradicional? :)

07 agosto 2006

Regalos

Hoy mi novia me ha regalado esto :D

Peana para portátil

No la pantalla, sino la peana. Es una base para el portátil, cómoda a más no poder, sobre todo en la cama o cuando lo pones sobre las piernas. Portátil que, por cierto, también me regaló ella. Ains, si es que la tengo que querer... enamorado

Y para rematar el día, yo me he auto-regalado esto otro:

Reloj binario

Un reloj binario. Lo más geek que te puedas echar a la cara. Para los que no sepáis binario, en la foto marca las 3:23.

Que todos los lunes vengan como éste xD

06 agosto 2006

Los backports

Cuando una versión de Debian pasa a la rama stable es porque su estabilidad y seguridad han sido probadas y reprobadas por el proyecto. Esto hace que Debian stable sea una distribución muy estable (valga la redundancia) y segura. Pero también tiene una desventaja: los paquetes que la forman se han ido quedando anticuados en el proceso. Aquí entran en juego los backports.

Los backports son paquetes que forman parte de las ramas testing (la mayoría) y unstable (unos pocos) de Debian, pero compilados para stable, de ahí el nombre de backports (ports hacia atrás). Con ellos podemos disfrutar de las últimas versiones de muchos paquetes en nuestro sistema Debian stable. Por supuesto, son repositorios no oficiales.

Con los backports podemos disfrutar de un Debian Sarge con, por ejemplo:

  • Kernel 2.6.16

  • X.org 6.9.0

  • KDE 3.5.0 (con KMail 1.9.1, akregator 1.2.1, etc.)

  • Gaim 1.5.1CVS, aMSN 0.95, etcétera


Suena bien, eh? Para poder disfrutar de todo este tinglado, sólo tenéis que añadir en vuestro /etc/apt/sources.list el repositorio

deb http://www.backports.org/debian/ sarge-backports main

y después hacer apt-get update && apt-get upgrade

Viviendo peligrosamente.

El mundo de las actualizaciones masivas es, cuanto menos, esto... acongojante. De pronto, un apt-get upgrade te ha dejado doscientos y pico megas de software actualizado... y una lista interminable de paquetes retenidos. ¿Qué ha pasado aquí?

apt-get upgrade actualiza un paquete sólo si no tiene que instalar o desinstalar nada nuevo. Solamente actualiza. Cualquier paquete que para actualizarse necesite de uno nuevo o entre en conflicto con otro que tenga que ser desinstalado simplemente quedará retenido. Esa es la diferencia con apt-get dist-upgrade, que pondrá y quitará lo necesario para las actualizaciones. Pero no es nada recomendable hacer un apt-get dist-upgrade en un caso así. Mi consejo es que actualicéis con un apt-get upgrade y luego uséis un apt-get install para cada uno de los que quedan retenidos. Así podréis ver si sólo instalan paquetes o si tienen que desinstalar alguno para hacer la actualización. En este caso, vosotros decidiréis qué os conviene más.

Backports para ultraconservadores

La alternativa a la "actualización masiva" es, evidentemente, una "actualización selectiva". Si lo que queréis es actualizar/instalar sólo un/unos paquetes determinados desde los backports y dejar el resto como está, podéis utilizar el pinning de apt para darle menor prioridad a los backports. Para ello sólo hay que editar o crear el archivo /etc/apt/preferences e incluir las líneas:

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 900

Package: *
Pin: release a=sarge-backports
Pin-Priority: 200

Package: *
Pin: release o=Debian
Pin-Priority: -10


Listo. Ahora sólo se usará el repositorio de backports cuando hagáis apt-get install -t sarge-backports paquete.

Pues eso es todo. Ahora, a disfrutar de vuestro Debian Sarge remozado :)

05 agosto 2006

El proyecto Little Debian

Quería hablaros sobre este proyecto, pero casi va a ser mejor que lo veáis vosotros mismos. Sólo os diré que lo instalé hace unos meses por curiosidad (soy adicto a los sistemas operativos) en un Pentium II a 233 MHz con 32 Mb de RAM, y quedé absolutamente alucinado. Pasen y vean.

"Little" Debian es un proyecto casero para INTENTAR resucitar esos viejos Pentiums (y similares) que se encuentran tirados en cualquier rincón por estar aparentemente obsoletos. (Si es que donde hay billetes...)

Queremos dotarlos de un sistema operativo lo más "actual" posible y de los programas necesarios para que sean de nuevo REALMENTE "productivos" en un entorno "normal". (El DOOM 3 va a ser que no...)

Nos hemos basado en una Debian Woody + backports (oficiales), con algunos paquetes de Sarge y otros de cosecha personal...aparte de otros MUCHOS "inventos" añadidos. (Funciona, y BIEN, que conste...)

Los equipos usados para los tests son un portátil 133 con 32Mb de RAM y un sobremesa 166 también con 32 Mb. (De "verdad" de la "buena"...)

Si se te JODE el "ordenata" no nos hacemos responsables absolutamente de nada, ¿Queda claro?, el que avisa no es traidor. (Es "avisador"...)

Esto lo hacemos por hobby, porque queremos, nos gusta y nos da la gana...NO "semos" ni profesionales ni "gurús" del tema. Cualquier sugerencia o aportación será bienvenida, aunque nos reservamos el derecho de incluirla o aplicarla en el proyecto, ¿Vale?. (Si queréis invitarnos a unas birras no nos vamos a enfadar, que conste...)

...Ahora vas y lo cascas ;-D

Splashy

Quien haya querido ponerle un bootsplash a su Debian se habrá dado cuenta de que la tarea no es nada sencilla. La primera en la frente: hay que parchear y compilar el kernel. Y no sólo eso, sino que además tendreis que recompilarlo cada vez que querais cambiar el theme.

Bueno, pues en estas llega splashy. Es una aplicación que se ejecuta en el user space, lo que quiere decir que no hay que tocar el kernel para nada. Lo que hace splashy es añadir un script en el arranque y el shutdown, para mostrar un bootsplash "de pega". Con esto quiero decir que, aunque parece un bootsplash, sencillamente es una imagen JPG que hace uso del framebuffer para llenar una barra de progreso, ocultando el típico arranque de Debian y simulando ser un bootsplash auténtico. Además el hecho de que sea una imagen JPG significa que puedes hacerte tú tu propio theme muy fácilmente: te basta una (o dos) imágenes en JPG y un archivo de configuración (sumamente sencillo) en XML.

Incluye también nada menos que siete themes a elegir, por si no teneis ganas de hacerlo vosotros mismos: cuatro de ellos con el logo de Debian como tema central, uno con Tux, uno para Ubuntu y uno más para Kubuntu. Cambiar de uno a otro es tan sencillo como editar el archivo de configuración y cambiar el nombre del theme.

Para instalarlo sólo hay que añadir a la lista de repositorios la siguiente línea:

deb http://splashy.alioth.debian.org/debian/ unstable main

y hacer un apt-get update && apt-get install splashy splashy-themes

Espero que os guste :)

Animaciones en el arranque con LILO

Creo que en Linux hay dos tipos de usuarios: los que usan GRUB y los que usan LILO ;)

Yo soy de LILO y, como ya estaba harto de imágenes estáticas en el arranque, me puse manos a la obra para ponerle una animación a mi cargador de arranque. ¿Te animas? Para ello sólo es necesario que tu gráfica soporte el modo VESA a una resolución de 640x480 a 256 colores (todas las modernas lo soportan).

Lo primero que necesitas hacer es "desactualizar" LILO. Necesitamos el LILO usado por SuSE en su versión 7.3. En teoría, los paquetes LILO para SuSE posteriores también deberían funcionar, pero yo lo hice con ése, por lo que os puedo asegurar que éste sí funciona. El paquete en cuestión está aquí. ¿Por qué es necesario ése y no otro? Porque esta versión de LILO desarrollada por los de SuSE da soporte para VESA. También puedes encontrar el paquete adaptado para Red Hat o los sources para Slackware aquí.

Si, como yo, eres debianita, puedes usar alien para convertir el RPM en un DEB con

fakeroot alien -d lilo.rpm

Si además de debianita eres un poco gandul, puedes bajar el DEB de aquí o aquí, ya que alguien se ha tomado la molestia de hacerlo.

Después tenemos que evitar que al hacer un apt-get upgrade nos lo actualice, así que:

echo lilo hold | dpkg --set-selections

Ya sólo nos falta la imagen. Aquí encontrarás algunas, incluso un lbreakout jugable desde LILO. Sí, sí, un juego auténtico en el arranque.

Por último, editamos el /etc/lilo.conf y añadimos (o cambiamos):

message=/boot/la_imagen_que_elijas.boot

y ejecutamos lilo para instalarlo en la MBR.

No puedo poner una captura de pantalla de cómo me quedó por razones obvias, pero os aseguro que queda realmente cool :D. Ésta es la imagen que yo elegí:

Animación xray-blue

Por último añadir que estas imágenes permiten introducir parámetros de arranque directamente desde esa misma pantalla (ver la barra negra en la parte inferior).

Pues eso, a ver si os animáis :)

Documentación:
Linuca
RQ (en inglés)

02 agosto 2006

Parámetros de arranque

Pues vamos entrando en materia :P

Veamos una pequeña lista de los parámetros que se pueden pasar al proceso init en el arranque.

single: Arrancará el sistema en single mode, sin lanzar los daemons, sin red... sólo lo básico. Muy útil para tareas de administración. Se inicia el proceso init y después nos pide la contraseña de root. Si pulsamos Crtl+d el proceso de arranque continuará en el modo establecido en el /etc/inittab

root=/dev/device: Le dice al kernel qué dispositivo debe usar como sistema de archivos raíz. Por ejemplo, si arrancamos desde un Linux instalado en un pendrive usaríamos root=/dev/sda1

vga=ask: Nos muestra durante el arranque los modos posibles de la gráfica, permitiéndonos elegir uno de forma interactiva.

ro (read only): Con este parámetro ordenamos al kernel que monte el sistema de archivos raíz en modo de sólo lectura. Lo usaremos cuando queramos comprobar y reparar un sistema de archivos con fsck (no se debe hacer en modo lectura/escritura) o, por ejemplo, durante la investigación forense de una intrusión en un servidor.

rw (read-write): Para montar el sistema de archivos en modo lectura/escritura. Es el modo por defecto.

panic=N: Esta opción forzará un reinicio en N segundos en caso de un kernel panic. Útil si estamos probando un kernel que acabamos de compilar.

maxcpus=N: Para indicar a un kernel SMP el número máximo de CPUs que debe usar.

debug: Activa el kernel debugging. Útil sólo si estás programando un módulo de kernel y quieres encontrar problemas. Supongo que Linus Torvalds lo pasará directamente desde el cargador de arranque. Por cierto... Torvalds, usará LILO o GRUB?

selinux [0|1]: Activa (1) o desactiva (0) SELinux en el arranque.

raid=/dev/mdN: Esta opción le dice al kernel cómo montar arrays RAID. Es de destacar que, si md está compilado dentro del kernel y no como módulo, las particiones de tipo 0xfd son detectadas y montadas "automágicamente" en RAID. Esta detección puede suprimirse usando el parámetro raid=noautodetect.

mem=MEMORIA: La usaremos cuando el kernel no sea capaz de detectar toda la memoria, forzándolo a usar la cantidad especificada como MEMORIA.

hdN=noprobe: Para desactivar el dispositivo hdN. Recuerda que si desactivas en la BIOS, pongamos por caso, /dev/hdb, Linux lo seguirá detectando a no ser que uses este parámetro.


¿Y cómo pasar los parámetros al kernel?

Sencillo, aunque depende del cargador de arranque que uses.

Con LILO basta con pulsar la tecla [Esc] cuando aparezca el menú. Introduces entonces la etiqueta (label) de la imagen que quieres arrancar, seguida de los parámetros que vas a usar.

Con GRUB hay que pulsar 'e' para editar la línea de comandos de arranque.

Por último hay que recordar que la línea de comandos del kernel es un string con una longitud de 255 caracteres, incluyendo el carácter nulo de final de cadena '\0'. Si introducimos una cadena más larga, el string quedará truncado.

Pues ahí queda eso, para que lo disfrutéis, y para servirme de chuleta en el futuro ;)

Fuente: nixCraft

01 agosto 2006

Pantallazo

Para ir abriendo boca os dejo este screenshot del Debian (Sarge) + KDE que tengo en el portátil. Es el que más uso, así que procuro tenerlo siempre "al pelo". Espero que os guste :)


Pantallazo Debian

[Ver a tamaño completo]

Starting init

Siempre he dicho: "Yo no pienso escribir un blog". Y sin embargo aquí estoy. Blogueando en la blogocosa (ejem). Otro magnífico ejemplo del "nunca digas nunca jamás".

¿Y por qué? Pues eso me gustaría saber a mí. Y es que por más que intento encontrar la razón que me ha impulsado a hacer esto no tengo ni la más remota idea de por qué ha sido. Pues nada, qué le vamos a hacer... Un pringue más, como si anduviera sobrado de tiempo. En fins... En cualquier caso, si una sola anotación de este blog resulta de utilidad para una sola persona, me daré por más que satisfecho.

Y a todo esto... ¿de qué va Debianizado? Pues de mi pasión por los ordenadores, las redes, la programación, los sistemas operativos y, sobre todo, de mi pasión por Linux. Y Debian. El Debian de mis amores. Y es que no hay nada como encender una máquina y ver cargar un Debian "comme il faut".

Pues eso, starting init...