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.
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
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:
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 ... ;-)
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:
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
$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.
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.
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.
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:
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:
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.
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.
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 :)