Category: debian


Ayer al mediodía estaba yo pensando en cambiar a ext4 todas las particiones del disco duro de mi PC (por el momento uso ext3). Ya lo había hecho con la partición /home pero quería hacer lo mismo con /boot y con / para acelerar la carga del sistema, y la carga, instalación y actualización de aplicaciones. Lo difícil del asunto es que para poder arrancar con un sistema de ficheros ext4 necesito utilizar grub2 ya que el gestor de arranque grub no soporta ext4.

Bueno, ¿Qué hice?, pues ni corto ni perezoso hice un aptitude install grub2 . ¿Resultado? Al reiniciar se cargaba el gestor de arranque (grub2) pero ninguna de las entradas del menú funcionaba. Todas ellas me daban un código de error 11 (no me hagáis recordar qué texto aparecía ahora…).

Ahora viene cuando uno tiene que solucionar la cagada que ha hecho (tardé mucho más de lo que tardaréis vosotros si seguís mi consejo, pues probé muuchas cosas.. ). Lo primero es disponer de una LiveCD con GNU/Linux, el cd de instalación de Ubuntu, o una knoppix pueden ir bien. Arrancamos el cd y abrimos un terminal.

Una vez hemos abierto el terminal nos logueamos como root , se puede hacer con el comando su, el comando sudo -s y el comando sudo bash … ¿quien da más? ¿conocéis más formas (no valen formas excesivamente rocambolescas) ? Ahora viene la secuencia importante de comandos (Primeramente prepararemos un entorno para acceder al sistema instalado, y luego desde allí operaremos)

  • cd /media
  • mkdir rescate
  • mount /dev/sdaX rescate (donde X es el número de partición donde tenemos montado normalmente el directorio / , hay que tener en cuenta que yo pongo sda porque uso discos SATA , pero si usais el típico ATA , muchos lo conocéis por IDE, debéis usar hda)
  • mount --bind /dev /media/rescate/dev
  • mount --bind /proc /media/rescate /proc
  • chroot /media/rescate (Aquí cambiamos el directorio raíz de trabajo.. ahora hemos ingresado en el sistema que tenemos instalado, pero al tanto, todavía no tenemos la partición /boot cargada.. )
  • mount -t ext3 /dev/sdaX /boot (Éste paso sólo es necesario si el directorio /boot lo teníamos en otra partición , como antes, X indica el número de la partición en la que están los ficheros de /boot y podría ser que usárais hda en vez de sda)
  • cd /boot
  • mv grub grub.old
  • aptitude purge grub2 (Nos deshacemos del grub2 que tanto nos ha molestado)
  • aptitude install grub (Volvemos con nuestro viejo “amigo”)
  • grub-install /dev/sda (otra vez, podría ser /dev/hda , ésto puede que tarde un poco, es probable que os salga algun error relacionado con /dev/pty .. no pasa naaada, simplemente no ha podido crear un log de las operaciones)
  • update-grub (esto volverá a generar el directorio grub en /boot y la lista de sistemas operativos y núcleos en el fichero menu.lst)
  • Ahora solo nos queda reiniciar y disfrutar nuevamente de nuestro grub totalmente funcional… un consejo, borrad el directorio /boot/grub.old si os funciona todo, ocupa espacio innecesario, antes lo he dejado por si mi solución no os funciona.

Espero que si alguien tiene mi mismo problema ésto le pueda servir :)   , un saludo.

Que le den por saco a Debian

Buenas, hace bastante tiempo que no escribo nada… y la verdad, en este tiempo he estado haciendo muchas cosas, jeje, tengo mucho sobre que escribir.

Empecé a trabajar en Newcomputing Netservices el día 15 de Julio, estuve casi unos 15 días de pruebas y cuando me íban a contratar, les tuve que decir que no me interesaba por cuestiones personales (y porque tenía una carga de trabajo que no me gustó nada, tenía que llevarme el trabajo a casa :S ). El caso es que durante esos días me tuve que esforzar bastante y aprendí muchas cosas.

Justo después de dejar la empresa me fuí a trabajar de becario en la UAB en un proyecto de Mitsubishi, y aquí estoy todavía. La verdad es que no mandan mucho trabajo, y nos pasamos casi una hora en el bar cada mañana (en teoría yo tengo que trabajar 4 horas diarias), pero aún así intento aprovechar el tiempo.

Actualmente estoy haciendo una LFS (Linux From Scratch) en una pequeña partición de mi máquina de trabajo, es interesante ver como contruir un sistema GNU/Linux desde cero, y supongo que ayuda a entender los entresijos de su funcionamiento :p . Por otro lado, mientras dejo compilando las piezas del sistema me entretengo leyendo artículos, libros o lo que me pase por las manos. Así que bueno, he tenido tiempo para hacer bastantes cosas:

  • mejorar la cutrada del oggtube (he hecho que no requiera Qt, por si alguien no quiere utilizar la interfície gráfica)
  • Hacer una aplicación de seguimiento para mi portátil, en caso de robo, si el ladrón fuese lo suficientemente imbécil como para conectar mi portátil a Internet antes de borrar todo su contenido, ése dejaría un aviso en una aplicación que he hecho en ésta misma página. Le quedan bastantes detalles para que sea una aplicación realmente útil, pero bueno, iré haciendo algo, y ya os colgaré el código. (He aprendido a hacer daemons con esto)
  • Estoy haciendo un pequeño compilador para un lenguaje cutrillo, estoy siguiendo diversos tutoriales combinados con mi imaginación, de momento es capaz de generar código ensamblador para x86 y para x86_64… aunque no tiene mucho mérito, jeje, ¡solo reconoce 4 órdenes, xD!
  • Mandar a tomar por saco Debian (a cambio, he instalado Ubuntu), que es lo que daba nombre a éste artículo. Me encanta trastear con los detalles técnicos de la máquina, solventar pequeños errorcillos de vez en cuando, eso a uno le sube la moral… pero ya estaba harto de tener que retocar tantas cosas para cada tontería… pero sobre todo, de lo que me he hartado es de KDE. Le he cogido manía, sólo se salvan: Amarok, Yakuake, Kate, K3b, Katapult, KDevelop y KOrganizer (aunque yo no lo utilizo). El caso es que K3b lo he cambiado por Brasero, que va muy bién, Katapult lo he cambiado por Gnome-do, que va mucho mejor, y bueno, Yakuake lo cambiaré cuando Guake sea lo suficientemente estable, además, KDevelop no lo utilizo casi nunca y KOrganizer tampoco, definitivamente me he convertido a usuario de Gnome, que és mucho más bonito, aunque sea más pesado. (No he mencionado Konqueror ni Dolphin, porque aunque tienen una cosa que me gusta mucho, las pestañas o la Split View, pronto se hará lo mismo con Nautilus). Por otro lado, en Gnome hay utilidades muy, pero que muy interesantes, como F-Spot o Tracker, que aún no tienen rival claro en KDE.
  • He aprendido cosillas bastante interesantes sobre virtualización de entornos, sobre todo por lo del LFS, que también lo quiero provar en mi máquina, pero también por un proyecto que me mandaron en Newcomputing.
  • He renovado mis conocimientos sobre PHP, MySQL, y he aprendido bastante sobre las GTK y PHP-GTK, en parte por un proyecto que me mandaron en Newcomputing, en parte por experimentos propios…

Muchas cosas, jeje, tengo que liberar bastantes piezas de código, aunque primero creo que las tengo que pulir para que no den pena, jeje, son más interesantes por el hecho de que introducen conceptos (para los novatillos, entre los que me encuentro) y por que hay pocas utilidades libres con esos usos que por su calidad.

Añado que me he columpiado bastante en la organización del concurso de programación GNUAB, y a partir de mañana me pondré a hacer todo el trabajo atrasado que tengo… Quiron me va a matar!

P.D.: ¡Fedora es una mierda! Por otra cosa no será… pero.. ¿porque no reconoce ya la gente de Red Hat que apt, aptitude, dpkg y deb (aunque sean mejorables) son clarament superiores a yum, y rpm?

ACTUALIZACIÓN: Éste tutorial és… inútil, xD (salvo si se quieren aprender algunas cosillas interesantes), la solución a los problemas que menciono és más sencilla que la expuesta en este tutorial, simplemente se tiene que instalar el paquete kmilo (o alguno que contenga el programa, dependiendo de qué distribución de Linux uséis).

Hará un tiempo mi portátil funcionaba bajo Debian Testing con KDE, en su momento lo configuré tan bien como pude y todo funcionaba de maravilla… hasta que el hardware se empezó a estropear (lo que le llevó a la muerte hará pocas semanas). Después de morir mi portátil fue transportado al cielo de los portátiles, junto con su Creador (HP) , allí se le dio una segunda oportunidad por haber sido tan bueno… y a los tres días resucitó.

El caso es que volvió a mis manos infectado con Windows (se lo contagiaron los otros ordenadores que no merecieron volver a la vida y todavía hoy permanecen en el purgatorio). A la semana conseguí curarlo con Debian Testing (KDE) pero parecía que algo no iba bién, seguía un poco acatarrado.

Por lo visto (no sé bien bien porqué) con la versión actual Testing de Debian han dejado de funcionar bien muchas cosas que antes iban como la seda: el sistema de sonido, y como no, el teclado (de ahí el título del artículo). Antes, configurar el teclado sólo consistía en tocar cuatro tonterías en los paneles de configuración de KDE (me parece que ya posteé hace tiempo sobre como hacerlo de esa manera). Ahora no es tan sencillo, y tenemos que currar un poco más (al menos en mi modelo HP Pavillion dv2104 eu).
Iremos por pasos (nota, todo lo que ponga con comillas, vosotros ponedlo SIN comillas):

  1. Aplicamos el primer mini-tutorial (en mi caso todo funciona, pero Kmix no reconoce las teclas Mute, Subir Volumen y Bajar Volum, de ahí que esté haciendo este segundo mini-tutorial).
  2. (Suponiendo que estamos en KDE) Vamos a Preferencias->Regional i accesibilidad->Introducir acciones.
  3. Ahora crearemos una acción para Mute: Apretamos el botón ‘Nueva acción’.
  4. En el campo ‘Nombre de la acción’ ponemos lo que queramos (aunque estaría bien un nombre identificativo, por ejemplo ‘Mute’).
  5. En el campo ‘Tipo de la acción’ escogemos la opción ‘Acceso rápido de teclado -> Llamada a DCOP (simple)’.
  6. Vamos a la pestaña ‘Acceso rápido de teclado’. Allí seleccionamos el botón que hay en medio y apretamos el botón especial Mute. (Esto sirve para indicar al programa con qué tecla asociaremos la acción).
  7. Vamos a la pestaña ‘Preferencias de llamada a DCOP’. Rellenenamos el campo ‘Aplicación remota’ con el valor ‘kmix’. Rellanamos el campo ‘Objeto remoto’ con el valor ‘Mixer0′ (Hasta este paso todo se hace igual para Mute, Subir Volumen y Bajar Volumen, excepto con los nombres y las teclas asociadas, claro).
  8. Para Mute el campo ‘Función llamada’ tomará el valor ‘toggleMasterMute’. Para Subir Volumen el mismo campo tomará el valor ‘increaseVolume’ y para Bajar Volumen ‘decreaseVolume’.
  9. El campo ‘Argumentos’ no tomará ningún valor para Mute. Para Subir y Bajar Volumen tendremos que asegurarnos de cual es el valor apropiado. Ejecutamos en consola la siguiente instrucción para saberlo (la salida que nos dé será el número que queremos):
    dcop kmix Mixer0 masterDeviceIndex
  10. Apretamos el botón ‘Aplicar’ y ya estamos :) .
  11. Para casos superespeciales (no me ha pasado): cabe destacar que yo he utilizado Mixer0 a la ligera como ‘Objeto remoto’, pero ¿No podría haber Mixer1? Creo que sí, pero no debe ser muy usual. En todo caso nos podemos asegurar ejecutando el comando (Nos dará una lista de los valores aceptables para ese campo):
    dcop kmix | grep Mixer

Espero que haya sido útil éste mini-tutorial. De hecho, creo que introduce también la idea de utilizar dcop para nuestros propios pequeños programas. Sin duda es una muy buena herramienta para intercomunicar programas.

Ala, hasta otra! :)

youtube-dl : desfasado

Hará unos meses (hacia principios de este curso) un amigo mío encontró por casualidad (o no) un conjunto de utilidades libres que permitían bajar vídeos de http://www.youtube.com y transformarlos al formato abierto ogg . Las susodichas utilidades eran youtube-dl y ffmpeg2theora.

Poco después desarrolló un pequeño script bash que automatizaba el proceso y facilitaba la vida a todos aquellos que querían ver vídeos de youtube manteniendo su “pureza” pro-software libre. Yo lo modifiqué añadiendo dos pijadas poco importante y pasándolo a Python para entretenerme un poco (y lo llamé freetube).

El caso es que la utilidad youtube-dl se ha quedado en los repositorios de la versión estable etch de Debian, pero no ha pasado a lenny (eso me ha extrañado). Por eso mismo me he bajado el paquete manualmente y he podido comprobar como el mismo programa me dice que no puede bajar los vídeos y que es posible que la API de Youtube haya cambiado ligeramente, con lo que ya no funciona correctamente… En estos casos me sabe mal no saber suficiente programación en Python y estas APIs para poder solucionar yo mismo el problema.

Buenas, ésta mañana me he estado peleando con mi portátil para poder conseguir que funcionara su targeta wifi (Broadcom BCM94311MCG wlan mini-PCI (rev 01) ). Lo del (rev 01) es importante porque indica el número de revisión de la tarjeta, el caso es que el procedimiento es un poco más largo si nos encontramos con (rev 02) .

La información que me ha sido más util para resolver mi problema la he encontrado en estos dos blogs:

En el primero hay una explicación detallada sobre como podemos ver parámetros de nuestro hardware, vamo, mucho más de lo necesario, pero no por ello menos interesante.
http://www.jesuslara.com.ve/blog/2008/03/11/broadcom-wlan-43xx-con-el-wireless-stack-mac80211-kernel-2624/

En el segundo tenemos una explicación muy breve y concisa.
http://nosoyeljano.wordpress.com/2008/04/10/broadcom-wireless-con-modulo-b43/

¿Porqué escribo esta entrada si ya escribí otra acerca del mismo tema hace ya tiempo? Pues bien, resulta que con el nuevo kernel 2.6.24 ya no sale a cuenta intentar instalar ndiswrapper, por que en la mayoría de casos no funciona, además, tenemos una solución mucho más sencilla :D .

Por si acaso escribiré también la solución aquí, nunca se sabe lo que puede pasar con los enlaces.

Paso 1:
Editar el archivo /etc/apt/sources.list (en modo root), tenemos que añadir la palabra contrib si no está puesta ya en las líneas que comiencen por deb. Ésto se debe a que no el paquete que necesitamos instalar no lo mantienen desarrolladores de Debian. (Después de realizar todo el proceso podemos dejar el archivo como estaba).

Paso 2:
Ejecutar el comando:

# lspci | grep Network

Con él conseguiremos saber qué dispositivos de red tenemos (y veremos si efectivamente estamos trabajando con el que en éste tutorial presupongo). Tenemos que mirar la primera línea, que será algo parecido a ésto:
01:00.0 Network controller [0280]: Broadcom Corporation BCM94311MCG wlan mini-PCI [14e4:4311] (rev 01)

Nos fijamos en los segundos corchetes [14e4:4311] , el segundo valor es el que nos interesa, porque nos permitirá saber si nuestro dispositivo de red wireless está soporado o no por el driver que instalaremos (me olvidaba de mencionarlo, se llama b43 ;) ). Los dispositivos soportados són:

  • bcm4303 (chips 802.11b)
  • bcm4306
  • bcm4311 rev 1 / bcm4312
  • bcm4311 rev 2 / bcm4312 (needs patches for 2.6.24)
  • bcm4318

Si nos fijamos veremos que lo de rev1 o rev2 también aparece en la primera línea, inmediatamente después de los corchetes. Bien, todo aquel que no tenga su dispositivo en la lista… lo tendrá peludo, aunque nunca se sabe.

Paso 3:
Este paso te lo puedes saltar si no tienes una de esas tarjetas rev 2 (supongo que es el número de revisión). Tenemos que descargar y aplicar un parche :p.
# wget http://linuxwireless.org/download/b43/patch_2.6.24_for_4311_2

Ahora toca mover el parche al directorio de linux y aplicar el parche (en éste punto tengo que admitir que nunca lo he hecho, pues no me ha hecho falta, así que si hay dudas sobre esto… buf, espero que sean fáciles para que pueda responder).

# cp /donde/sea/patch_2.6.24_for_4311_2/ /usr/src/linux
Nos movemos al directorio donde hemos copiado los archivos:
# cd /usr/src/linux [1]
Aplicamos el parche:
patch -p1 < patch_2.6.24_for_4311_2

Ahora tenemos que compilar, seguid éste tutorial:
Compilar Kernel a la Debian

Paso 4:
Ahora nos toca instalar el paquete que nos rematará el trabajo:
apt-get install b43-fwcutter

Paso 5:
Nos queda indicar al sistema qué módulos queremos que se carguen al iniciarse y cuáles NO QUEREMOS que se carguen. Para ello modificaremos primero el fichero en el que se indican los módulos que no se cargarán /etc/modprobe.d/blacklist (en modo root). Añadiremos las siguientes líneas:
blacklist ndiswrapper (Sí, desterramos a ndiswrapper, :D )
blacklist bcm43xx
blacklist ssb

La línea con ssb la pongo aunque no esté en los tutoriales porque yo mismo he comprobado que es necesaria. Ah! ya no es necesario añadir nada en /etc/modules como antes con ndiswrapper :) . No estaría mal que lo abrierais también para eliminar la entrada de ndiswrapper en caso de que esté allí. (Para hacer un poco de limpieza).

Más cosas (aunque ya son pequeñeces): tendréis que reiniciar el sistema. Una herramienta como Knetworkmanager va de coña. Podéis ejecutar el comando iwconfig para ver qué dispositivos de red inalámbrica tenéis activados. Los comandos ifup y ifdown sirven para levantar una interfaz de red fácilmente. Si ejecutais ‘iwlist scan‘ os aparecerá una lista de las redes inalámbricas disponibles. Si no os va nada… probad a editar el archivo /etc/network/interfaces, añadís las líneas siguientes:
allow-hotplug wlan0_rename
iface wlan0_rename inet dhcp

Normalmente se pone wlan0 y no wlan0_rename, pero no sé porque se me configuró de forma que necesitaba ese nombre en concreto… :( , en principio probad con wlan0. (después de editar ésto utilizado los comandos:
ifdown wlan0
ifup wlan0

Bien, tengo mucho sueño y no recuerdo si hay alguna pijada más que se deba tener en cuenta. Hasta otra :) .

——
[1] Aquí he encontrado un pequeño error y he modificado ligeramente los pasos respecto a la fuente original.

Hasta hace poco en mi ordenador Chisposo corría GNU/Linux Debian Testing (Lenny), pero como tuvo que pasar por el servicio técnico de HP para que solventaran ese pequeño problemilla que tenía (de hecho murió) allí lo volvieron a convertir en un pobre monstruo que sólo sabía ejecutar Windows XP (suerte que no le pusieron Vista).

Por eso mismo éste pasado jueves instalé Debian Testing 64 bits con KDE en mi portátil, pero me encontré con un problema bastante desagradable… el sonido era la cagada más grande que uno pueda imaginar, pura distorsión, de esa que te pone los pelos de punta. Hoy quería arreglar el problema y dado que he tenido la maravillosa suerte de tener acceso a internet (¡sí! ¡porfín hay internet en mi casa!) he decidido reinstalar Debian (no tenía ganas de solucionar el problema a lo hackercillo) pero esta vez he utilizado un CD netinst.

El caso es que no sé si en principio ha sido peor el remedio que la enfermedad, pues me he quedado sin sonido, he pasado de sufrir por la distorsión a sufrir por ver a mi pobre Chisposo sin poder decir ni mu. Obviamente no he dejado las cosas así y he empezado a buscar información para ver si encontraba alguna manera de solucionar el problema, al final la he encontrado. Apuntaré los pasos que he seguido (sin incluir la búsqueda de información, os lo ahorraré), sólo añadiré que por lo visto no soy el único que ha tenido éste problema últimamente, parece ser que las versiones recientes de Lenny dan bastante por saco con el sonido.

  1. Tecleamos en la consola la siguiente línia para instalar los paquetes ‘module-assistant’ y ‘build-essential’.
    # apt-get install module-assistant build-essential

  2. Vamos a la dirección ftp://ftp.alsa-project.org/pub/driver/ para descargar el driver alsa más reciente (simplemente buscad el fichero más reciente y con el número de versión más alto). En particular yo he bajado el ficheroalsa-driver-1.0.16rc2.tar.bz2 .
  3. Descomprimimos el driver:
    # tar xjvf alsa-driver-1.0.16rc2.tar.bz2
  4. Accedemos a la carpeta que se acaba de crear:
    # cd alsa-driver-1.0.16rc2

  5. Y ejecutamos los típicos comandos (Puede que algunos tengáis algunos problemas, así que leed el paso 6 antes de continuar):
    # ./configure
    # make
    # make install
  6. Nos puede pasar que cuando ejecutamos el comando ‘configure’ aparezca un mensaje en la consola diciendo que nos faltan algunos archivos de cabecera del código de Linux, seguramente empezará diciendo que falta un archivo version.h situado en /usr/src/linux/include/linux/ . Por esta razón tendremos que bajar los headers de linux. Lo que pasa es que dependiendo de la arquitectura y el momento el paquete puede llamarse de diferentes maneras, así que lo que haremos será buscar entre las posibles opciones que nos mostrará el siguiente comando:
    # apt-cache search linux src

    Yo en particular me bajo el paquete linux-headers-2.6.22-3-amd64 por que tengo un sistema amd64:
    # apt-get install linux-headers-2.6.22-3-amd64

    Una vez bajadas las cabeceras ya podemos ejecutar el paso 5. Por cierto, también puede pasar que siga sin encontrar los archivos de cabecera, entonces estad atentos al mensaje que os da (ahora no recuerdo exactamente el comando que hace falta utilizar, pero en el mensaje aparece). Tenéis que escribir ./configure con un comando seguido de la ruta real de los archivos de cabecera, en mi caso sería /usr/src/linux-headers-2.6.24-1-amd64/ .

  7. Ahora hay gente a quien le funcionará simplemente reiniciando la máquina o reiniciando el servicio alsasound:
    # /etc/init.d/alsasound restart

    En mi caso no ha funcionado y he tenido que llamar a la utilidad alsaconf:
    # alsaconf

    He seleccionado la opción correspondiente a mi tarjeta de sonido y posteriormente he reiniciado la máquina obteniendo el resultado deseado. (Antes de todo este rollo no me funcionaba lo de alsaconf, así que lo anterior también tiene su sentido).

Espero que éste tutorial pueda servir a alguien (aunque se puede encontrar la misma información repartida por internet), he intentado recopilarla de la forma más ordenada posible para facilitar la búsqueda de información. Si por alguna razón no funcionara éste sistema siempre podéis acudir a foros y otros sitios donde seguro acabará apareciendo alguna solución :) .

Hasta otra!

Powered by WordPress | Theme: Motion by 85ideas.