Recuperar GRUB después de instalar Windows

— [ edit | raw ] migrated from node/118
Si tenemos instalado nuestro flamante GNU/Linux y por alguna extraña circunstancia instalamos Windows, al reiniciar habremos perdido nuestro gestor de arranque (lilo, grub, etc). Esta receta resume cómo se puede recuperar dicho gestor de arranque para poder cargar nuestro GNU/Linux.

Procedimiento a seguir

Lo primero será arrancar nuestro PC con cualquier live-cd, no importa la distro. Cuando el entorno gráfico se haya cargado, se lanza un terminal de superusuario. La mayoria de los live-cd montan las particiones en modo de sólo lectura. Necesitamos remontar la partición de GNU/Linux con permisos de lectura-escritura. Así que primero la desmontamos:
# umount /mnt/hda3
Y ahora la volvemos a montar partición con permisos de lectura-escritura. Suponemos que el disco es /dev/hda3, y se monta en el directorio /mnt/hda3.
# mount -t ext3 -o rw /dev/hda3 /mnt/hda3
Ahora montamos /proc:
# mount -t proc /mnt/hda3/proc
Ahora hacemos un poco de "magia":
# chroot /mnt/hda3/
Y ahora mismo estarás dentro del GNU/Linux que tienes en el disco duro. Has cambiado y ahora lo que verás como directorio "/" será el antiguo /mnt/hda3. Ahora falta volver a instalar nuestro gestor de arranque, en nuestro caso grub:
# grub-install /dev/hda
Y ahora reinicia el PC y saca el live-cd. Podrás comprobar como vuelves a ver tu querido grub.

Ndiswrapper: tarjetas wifi no soportadas en Linux

— [ edit | raw ] migrated from node/126
REVISIÓN 27-11-2005 [2]
Esta receta pretendo explicar como instalar ndiswrapper para poder utilizar una tarjeta de red inalámbrica en GNU/Linux que, o bien no esté soportada nativamente, o bien no funcione como debería con el soporte nativo

Instalar el driver privativo de nVidia en Debian GNU/Linux

— [ edit | raw ] migrated from node/121

Cómo utilizar module-assistant para instalar el driver propietario para las tarjetas gráficas de nvidia en Debian GNU/Linux, Ubuntu y demás distros derivadas.

Hay varias alternativas para instalar este driver. Esta receta explica la forma más sencilla, que es también la más “Debian compliant”. Consulta las referencias si quieres probar las otras alternativas.

Actualiza tu Linux

Instalar el driver de nvidia es una buena oportunidad para aprovechar y actualizar el núcleo. Se supone que vas a utilizar un Linux precompilado y empaquetado por Debian. Por ejemplo:

# apt-get install linux-image-2.6.22-1-386

También vas a necesitar las cabeceras, que es un paquete con el mismo nombre, cambiando image por headers.

# apt-get install linux-headers-2.6.22-1-386

Si usas grub, no olvides hacer el update-grub correspondiente. Y ahora reinicia para usar el núcleo recién instalado.

Ahora… lo divertido

Esto es tan fácil que casi no tiene gracia. Primero instala module-assistant y nvidia-kernel-common:

# apt-get install module-assistant nvidia-kernel-common

Y a continuación ejecuta:

# module-assistant auto-install nvidia

O lo que es lo mismo, pero más cortito y fácil de recordar:

# m-a a-i nvidia

Y ese programilla se encarga de compilar, crear el paquete Debian correspondiente y hasta de instalarlo. No viene mal un:

# depmod -a
# modprobe nvidia

Si todo ha ido bien deberías tener tu driver funcionando.

Y el GLX

También tienes que instalar:

# apt-get install nvidia-glx

Cambio en la configuración del servidor X

Edita tu /etc/X11/xorg.conf y busca el apartado Section “Device”. Cambia la línea driver para que quede algo como:

        Driver  "nvidia"

Sólo queda reiniciar tu gestor de acceso. Por ejemplo:

# /etc/init.d/gdm restart

Referencias

Instalar Debian SARGE en un portátil

— [ edit | raw ] migrated from node/117
Esta receta trata de como empezar desde cero en la instalación de una debian SARGE y de como configurar correctamente el hardware de nuestro equipo.

1. Instalar Debian SARGE vía DVD

Lo primero es conseguir los dos dvd's. Yo los compré de una revista (no voy a hacer propaganda poruqe no me pagan), pero se pueden conseguir en debian. Se arranca el pc con el dvd y nos saldrá un pantallazo que pone "Press F1 for help or ENTER to boot: ", pulsamos enter y seguimos las instrucciones. Para instalar un kernel 2.6 donde dice "Press F2 through F10 for details, or ENTER to boot: " ponemos linux26. En el paso de las particiones es donde hay que tener mas cuidado. Una vez instalado el sistema base, el equipo se reinicia, y nos da la posibilidad de instalar las aplicaciones via dvd, http, ftp o disco local. Elegimos la que mejor se adapte a nuestras necesidades. Después de esto, nos saldrá un pantallazo que nos da la posibilidad de seleccionar los programas que se pueden instalar. Luego se configura el grub y marchando ... ;-)

2. Configurando el hardware

Mi portátil dispone del siguiente hardware:
  • Intel(R) Pentium(R) M processor 1400MHz
  • VGA compatible controller: Intel Corp. 82852/855GM Integrated Graphics Device
  • hda: FUJITSU MHS2040AT D, ATA DISK drive
  • Gestión de energía: APM, ACPI, APIC
  • Batería
  • Puertos USB
  • PCMCIA
  • Tarjeta Ethernet: VIA Technologies, Inc. VT6105 [Rhine-III]
  • Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter
  • Modem: Smart Link 56K AC'97
  • Tarjeta de sonido: Intel 810 + Realtek AC'97 Audio
  • FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394
  • Infrarrojos: Puerto infrarrojos SMC IrCC - Fast Infrared
  • FLASH memory: ENE Technology Inc CB710 Memory Card Reader
Vamos paso a paso configurando cada uno de los componentes.

Controlar la velocidad de la CPU automáticamente

APM está muerto. El futuro es ACPI, y una de las aplicaciones prácticas de ACPI es "Speedstep" (pero solo en los centrino). Para ello necesitamos un kernel 2.6.X para poder aprovechar los estados "throttling". Se pueden utilizar los demonios powernow o cpudyn. Personalmente he probado los dos y me quedo con el primero. ¿ Que necesitamos ? Lo primero será instalar el demonio encargado de controlar la velocidad del centrino, este es powernowd. Para controlar si realmente funciona el invento, instalamos el applet CPU Frequency Scaling Monitor. Una vez instalado esto, debemos comprobar si se han cargado los siguientes módulos:
$ lsmod | grep speedstep
  speedstep_centrino      7956  0
  freq_table              4484  1 speedstep_centrino
  processor              22644  2 thermal,speedstep_centrino
  cpufreq_userspace       4700  1
Si es así, debemos fijarnos en el applet y ver si pasamos de 600 MHz (Userspace) a 1400 Mhz (Performance) cuando le damos un poco de caña al procesador.

Configurar la tarjeta gráfica

En mi caso dispongo de una tarjeta integrada Intel Corp. 82852/855GM. A partir del kernel 2.6.10 está disponible el driver "i810" y "drm". Lo único que hay que hacer es cargarlo con la orden modprobe i810. Este driver funciona bajo xfree-86. Si se quiere utilizar Xorg en vez de xfree, lo único que hay que hacer es desinstalar xfree e instalar Xorg. Al hacer esto se cargará el modulo "i915" en vez del "i810", con una mejora bastante sustancial.

Gestión de energía: APM, ACPI, APIC

Como se comentaba anteriormente APM está muerto. ACPI es el futuro. Para tener soporte con ACPI hay que instalar "acpi" y "acpid". Luego, para comprobar que funciona podemos comprobar que esté corriendo el demonio "acpid" o instalar un monitor de carga de bateria. Otra cosa a tener en cuenta es la de hacer "hibernar" al pc. Esto se consigue compilando el kernel con esta opción y teniendo una swap más del doble que nuestra RAM. Una vez hecho esto se hace:
$ echo 3 > /proc/acpi/sleep
Y el pc hibernará guardando el estado actual. Lo de la swap es importante.

Puertos USB

La instalación por defecto instala "hotplug" y "udev". Si no se han instalado, pues ya sabes "apt-get install ....". Aqui voy a explicar como configurar un lápiz usb. Editamos el fichero /etc/fstab y añadimos la siguiente línea:
/dev/sda        /mnt/sda        vfat    user,noauto     0       0
Ahora necesitamos crear el direcorio /mnt/sda con los permisos necesarios. Comprobamos que esté el módulo "usb-storage" cargado y nada, se pincha el lápiz y se monta.

Tarjetas PCMCIA

Lo mejor es comprar tarjetas que soporten el driver "orinoco". Sino probar cargando el modulo "yenta-socket".

Tarjeta Ethernet

EL modulo que soporta mi tarjeta es "via_rhine". Aunque con "8139too" y "8139cp" funciona también. Esta interfaz es la que se suele utilizar cuando se transporta el pc de un sitio a otro, y a lo largo del camino tendremos distintas configuraciones en distintos lugares. En unos tendremos DHCP, mientras en otros habrá una IP fija. Para facilitar el trabajo de cambio de IP's existe "laptop-net". Con esto podemos crearnos distintos "esquemas" y allí donde se vaya cargar uno u otro dependiendo de las configuraciones. Una vez instalado, se edita el fichero /etc/laptop-net/scheme y se añaden los esquemas. Un ejemplo es:
case "${SCHEME}" in
offline)
    # Setting nothing means to leave the network interface disabled.
    ;;
down)
    # El link esta abajo
    ;;
casa)
    DHCP="no"
    ADDRESS="1.2.3.4"
    NETMASK="255.255.255.0"
    BROADCAST="1.2.0.255"
    NETWORK="1.2.0.0"
    GATEWAY="1.2.3.1"
    NAMESERVERS="62.42.230.24 62.42.63.52"
    ;;
*)
    # Set to "yes" to use DHCP
    DHCP="yes"
    ;;
esac
Yo tengo un esquema para DHCP (por defecto) y otro para mi casa. Para cambiar de esquema se hace:
$ /etc/init.d/laptop-net scheme casa
  Changing scheme from down to casa

PRO/Wireless LAN 2100

Para configurarlo utilizo el driver ipw2100. Si tienes instalado "module-assistant" te lo bajas, lo compilas y lo instalas. Una vez echo esto te bajas el firmware de "Sourceforge" firmware y lo descomprimes en /usr/lib/hotplug/firmware/. Cargas el módulo ipw2100 y compruebas con "dmesg" que todo se ha configurado correctamente. Sino te queda claro mira este documento centrino.

Modem: Smart Link 56K AC'97

Con "module-assistant" te bajas slmodem-source, lo compilas y lo instalas y cargas el modulo "slamr". Una vez echo esto comprueba que este corriendo el demonio en /etc/init.d/sl-modem-daemon.

Tarjeta de sonido: Intel 810 + Realtek AC'97 Audio

Comprueba que esten cargados los módulos:
snd_intel8x0m          19524  2
snd_intel8x0           33664  0
snd_ac97_codec         84856  2 snd_intel8x0m,snd_intel8x0
snd_pcm               101832  5 snd_intel8x0m,snd_intel8x0,snd_ac97_codec
snd_timer              26052  1 snd_pcm
snd                    65156  7 snd_intel8x0m, snd_intel8x0, snd_ac97_codec, snd_pcm, snd_timer
snd_page_alloc         10756  3 snd_intel8x0m,snd_intel8x0,snd_pcm
Sino es así, siempre puedes utilizar ALSA.

FireWire (IEEE 1394)

Comprueba que el kernel lo reconoce:
$ dmesg | grep 1394
  ieee1394: Initialized config rom entry `ip1394'
  ohci1394: $Rev: 1250 $ Ben Collins <bcollins@debian.org>
  ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[11]  MMIO=[fedff800-fedfffff]  Max   Packet=[2048]
  ieee1394: Host added: ID:BUS[0-00:1023]  GUID[0040d0010013f9e6]
  eth1394: $Rev: 1247 $ Ben Collins <bcollins@debian.org>
  eth1394: eth1: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)
En mi caso lo tengo configurado en la interfaz de red eth1:
eth1      Link encap:UNSPEC  HWaddr 44-44-44-44-44-44-44-44
          UP BROADCAST RUNNING 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)

Infrarrojos

Lo suyo es instalar "irda-utils" y "ircp" junto con "ircp-tray". Para lo único que utilizo el infrarrojo es para pasar ficheros al móvil, aunque se puede utilizar para controlar los mandos a distancia y demás historias. Comprueba esto:
irda0     Link encap:IrLAP  HWaddr 00:00:00:00
          UP RUNNING NOARP  MTU:2048  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:8
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

FLASH Memory

He visto en el kernel 2.6.12 que ya hay soporte para tarjetas de memoria SD y MMC. Pero todavía no lo he probado. Espero contar algo más en sucesivas actualizaciones.

Generar un certificado SSL para apache

— [ edit | raw ] migrated from node/122

Cómo generar el certificado que utiliza el servidor web Apache para el servicio SSL a través de HTTPS.

Ejecuta lo siguiente:

# apache2-ssl-certificate --force -days 365 -set_serial 2

Esto crea el /etc/apache2/ssl/apache.pem que contiene el certificado y la clave del servidor. El número de serie debería ser uno más de lo que haya en el certificado anterior.

En /etc/apache2/ssl.crt/ hay sendos enlaces simbólicos (server.key y server.crt) que apuntan al fichero generado.

Sólo queda reiniciar apache:

# /etc/init.d/apache2 restart

Referencias

Ejecutar programas X en otra máquina viéndolos en local

— [ edit | raw ] migrated from node/119

A veces se necesita ejecutar un programa con interfaz gráfica que reside en una máquina distinta y queremos verlo en la máquina que estamos. Esta receta explica cómo conseguirlo sin tener que abrir una sesión X ni tener que utilizar un “escritorio remoto” como vnc.

Método 1: Exportar display

El método ‘clásico’ cuando queremos ejecutar un programa en una máquina remota y ver su interfaz en nuestro cliente X local es:

user@local:~$ xhost remoto
remoto being added to access control list
user@local:~$

Con eso se consigue que el servidor X, que corre en nuestra máquina, acepte conexiones externas de la máquina “remoto”. Pero si queremos que admita conexiones de cualquier máquina hay que poner:

user@local:~$ xhost +
access control disabled, clients can connect from any host
user@local:~$

Aunque esto puede suponer un problema de seguridad grave.

Ahora accede a la máquina remota con telnet o algo similar y exporta el ‘display’ para aplicaciones X.

user@remoto:~$ export DISPLAY=local:0
user@remoto:~$

La instrucción export declara una variable de entorno de la shell (no tiene nada que ver con la expresión exportar display).

Con esto, la aplicación X sabrá que debe utilizar el servidor X de la máquina llamada ‘local’ en lugar de usar el de la máquina en la que se ejecuta. Puedes comprobar que funciona con algo como:

user@remoto:~$ xeyes
user@remoto:~$

Con lo que deberías ver el clásico programilla de los ojos en la máquina local.

Método 2: ssh

El servidor ssh es capaz de gestionar automáticamente la conexión X siempre que servidor y cliente estén configurados adecuadamente.

Edita el fichero /etc/ssh/sshd_config del servidor y haz la siguiente modificación, que sirve para que el servidor ssh remoto devuelva el tráfico X11.

  X11Forwarding = yes

Edita el fichero /etc/ssh/ssh_config del cliente y haz la siguiente modificación, Esto hace que el cliente ssh local solicite el tráfico X11.

  ForwardX11 = yes

Como alternativa a esto, el usuario puede solicitarlo por línea de comando al hacer la conexión:

ssh -X <em>remoto</em>

Si lo haces en las dos máquinas, podrás utilizar este mecanismo en ambos sentidos. Sólo queda reiniciar el servidor con:

root@remoto:~# /etc/init.d/ssh restart
root@remoto:~#

Y ya tienes el efecto deseado, compruébalo con xeyes… (por ejemplo)

Enlaces

Abrir una sesión X en otra máquina

— [ edit | raw ] migrated from node/120
Las X-Windows de los sistemas Unix tienen una arquitectura cliente-servidor. Aunque lo habitual es que los programas que vemos se ejecuten en nuestra máquina, es perfectamente posible abrir una sesión X en una máquina distinta mediante XDMCP

Configuración

Edita el fichero /etc/gdm/gdm_conf de la máquina que ejecuta el servidor X. Busca la sección [xdmcp], y activa la opción enable=true. Es muy recomendable dejar la opción: AllowRemoteRoot=false para evitar problemas de seguridad. Esto es válido si se usa gdm como gestor de conexión. Si usas kdm o xdm la configuración puede variar. Ahora busca la sección [server-Standard] y edita la opción command para que NO incluya el argumento -nolisten tcp. Quedará algo como:
command=/usr/X11R6/bin/X -deferglyphs 16 -audit 0

Conexión

Para conectar, bastará con escribir en la consola:
user@client:~$ X :0.1 -query [server_host]
user@client:~$
El 0.1 indica el display y el screen. Normalmente variará entre 0.0, 1.0, 2.0 y 3.0, y se podrá acceder, respectivamente, con F7, F8, F9 y F10.

Varias sesiones X en la misma máquina

Puede ser interesante tener una o varias sesiones X adicionales en la máquina local. Por ejemplo, con:
$ xinit -- :1
se abre un segundo cliente X (en F8) que ejecuta únicamente un x-terminal, pero sin gestor de ventanas ni de escritorio.

Sesión X anidada

Si en lugar de utilizar el comando X usa Xnest consigue el mismo efecto que en los ejemplos anteriores, pero en lugar de tener un terminal gráfico a pantalla completa obtiene una ventana del tamaño adecuado.
user@client:~$ Xnest :1 -query [server_host]

Referencias

Presumiendo de aceleración 3D en GNU/Linux, con 3ddesktop

— [ edit | raw ] migrated from node/112

ATENCIÓN: Aunque los efectos visuales de 3ddesktop pueden seguir resultando interesantes para alguno, XGL deja a este programa bastante obsoleto. Mira la receta de XGL y Beryl en Ubuntu Dapper si de verdad quieres increibles efectos 3D en tu escritorio libre.

Instalando HURD

— [ edit | raw ]
migrated from node/114
Hola a todos!, esta es mi primera vez que escribo a un blog, (no es tan emocinante como el sexo, pero que se le va hacer).

Hacer paquetes.deb a partir de .rpm y .tar.gz

— [ edit | raw ] migrated from node/116

En esta pequeña receta veremos como hacer paquetes .deb a partir de .rpm y .tar.gz , ya que es mucho más fácil, cómoda y limpia su instalación (con dpkg). Para mucha gente será algo trivial, pero creo que a gente como yo le puede venir bien :)