miércoles, 21 de marzo de 2007

El sonido: nVidia MPC51

lspci:
00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2)
lspci -nnv:
00:10.1 Audio device [0403]: nVidia Corporation MCP51 High Definition Audio [10de:026c] (rev a2)
Subsystem: Hewlett-Packard Company Unknown device [103c:30b5]
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 233
Memory at c0000000 (32-bit, non-prefetchable) [size=16K]
$ sudo apt-get install alsa-base
$ sudo apt-get install alsa-utils
$ sudo alsaconf
$ sudo apt-get install alsaplayer-common alsaplayer-alsa
Y con esto y un bizcocho ... Ya tenemos un sonido minimo funcionando. Al parecer, esta "recien salido del horno" el modulo snd_hda_intel, que es lo que aqui se usa. Con este modulo, tan solo puedo controlar volumen maestro, pcm, y captura de audio.
Si se quiere indagar mas, recomiendo este thread sobre MCP51 y linux
[UPDATE]
NOTA: estoy en una debian testing, kernel 2.6.18-amd64.

Al parecer, la version 13 de alsa ya trae una gestion mucho mas mejorada de esa tarjeta. Yo estoy todavia en la 1a 11, creo.
Por otra parte parece ser que mis auriculares insisten en no funcionar. De momento, paciencia y a esperar el kernel 20

viernes, 16 de marzo de 2007

Wireless, broadcom 1390

La tarjeta wireless de esta maquina es una "broadcom" , y todos sabemos que eso significa fuertes dolores de cabeza.
De hecho, he comprobado que en la seccion de "contacto" de broadcom, ya tienen asignado un subject por defecto que se llama "linux driver" asi que a disparar mails tocan...
En cualquier caso, tambien con la wireless triunfó el bien sobre el mal ....

Un poco de lspci, in google's honor:

lspci
01:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)

lspci -v
01:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)
Subsystem: Hewlett-Packard Company Unknown device 1363
Flags: bus master, fast devsel, latency 0, IRQ 225
Memory at c3000000 (32-bit, non-prefetchable) [size=16K]
Capabilities:

lspci -nn | grep 01:00.0
01:00.0 Network controller [0280]: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card [14e4:4311] (rev 01)

Desde el principio, sabía que lo que me esperaba era "la candela", y de hecho así fue...
Tras mucho googlear, he llegado a las siguientes conclusiones:
  1. Hay dos enfoques para Esto: usar el ndiswrapper, que básicamente consiste en "hacerle" creer a la tarjeta que está viviendo en un entorno windows, y usar los drivers de windows "dentro" de ahí. El otro enfoque es usar el módulo bcm43xx que unos valientes belgas han sacado adelante a pesar de la poca cooperación (más bien ninguna), de los "broadcom guys"
  2. Despues de mucho googlear, parece ser que el driver del "broadcom 1390" es el 4311, y ese solo estara bien soportado en el kernel 2.6.20, asi que hay que lanzarse a por el ndiswrapper.
Bueno, lo siguiente seria instalar y usar el ndiswrapper. Para eso , hay que usar un pcoo de aqui y otro poco de alli

En resumen, lo primero es instalar el ndiswrapper, ...

utilidad para cargar modulos y compilarlos ...
# apt-get install module-assistant

ahora, con esto, el solito se encarga de todo. bajar el codigo fuente, compilarlo, crear un paqueta binario e instalarlo.

# module-assistant auto-install ndiswrapper
y ahora, vamos a por el driver de windows. La gracia es que ahora cargamos dentro del "ndiswrapper", el bcmwl5.inf de windows, y "hope for the best":
  1. Primero hay que encontrar el driver del la tarjeta wireless para windowsXP, asumiendo que el ndiswrapper este preparado para XP y no para vista. Como yo tuve que comprar el HP con Vista, no pude usar mi driver (bcmwl6.inf) , y tuve que usar este driver de la broadcom 1390 para XP, del sitio web de los chicos de packard. Si no está ya, el archivo lo tienes tambien aqui: archivo inf para broadcom 1390 en XP
  2. Una vez que hayas descargado el driver, (si te has descargado el *.EXE), tienes que extraer el archivo bcmwl5.inf del exe, y para eso necesitas el paquete "cabextract" (si te has bajado el *.inf directamente, no lo necesitas)
# sudo apt-get install cabextract
# sudo cabextract sp34152.exe (o como se llame, este paso puede no ser necesario)
sudo ndiswrapper -e bcmwl5
sudo ndiswrapper -i /home/kevin/compaq-bcm4311/bcmwl5.inf
sudo ndiswrapper -l
sudo ndiswrapper -m
sudo modprobe ndiswrapper
y mi dmesg:
Mar 19 00:52:31 mclure kernel: ndiswrapper version 1.28 loaded (preempt=no,smp=yes)
Mar 19 00:52:31 mclure kernel: usbcore: registered new driver ndiswrapper
Mar 19 00:54:07 mclure kernel: usbcore: deregistering driver ndiswrapper
Mar 19 00:54:49 mclure kernel: ndiswrapper version 1.28 loaded (preempt=no,smp=yes)
Mar 19 00:54:49 mclure kernel: ndiswrapper (link_pe_images:577): fixing KI_USER_SHARED_DATA address in the driver
Mar 19 00:54:49 mclure kernel: ndiswrapper: driver bcmwl5 (Broadcom,10/12/2006, 4.100.15.5) loaded
Mar 19 00:54:49 mclure kernel: ACPI: PCI Interrupt Link [LK2E] enabled at IRQ 19
Mar 19 00:54:49 mclure kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LK2E] -> GSI 19 (level, high) -> IRQ 225
Mar 19 00:54:49 mclure kernel: PCI: Setting latency timer of device 0000:01:00.0 to 64
Mar 19 00:54:49 mclure kernel: ndiswrapper: using IRQ 225
Mar 19 00:54:50 mclure kernel: wlan0: vendor: ''
Mar 19 00:54:50 mclure kernel: wlan0: ethernet device 00:1a:73:23:0d:79 using NDIS driver bcmwl5, 14E4:4311.5.conf
Mar 19 00:54:50 mclure kernel: wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
Mar 19 00:54:50 mclure kernel: usbcore: registered new driver ndiswrapper
Una vez hecho esto, los pasos clasicos para levantar una tarjeta, que en mi caso se llama "wlan0"

$ sudo iwconfig wlan0 essid "TuNombreEssid"
$ sudo iwconfig wlan0 mode Ad-Hoc
$ sudo dhclient wlan0
Obviamente, sera de mil modos distintos segun el "flavour". Mucha suerte

XXXXXX!!!

Lo primero, las X.
No recuerdo bien, pero creo que con instalar los paquetes "xutil" y "xorg", todo lo demas se instala solo.
Atencion aun no estoy hablando de drivers propietarios ni nada de eso. Lo único que he hecho es instalar los paquetes x genéricos, y dejar que el aptitude decida por mí que paquetes necesito.

Así las cosas,despues de un "ratito" me lanzo a por las X...

$ startx

mmm, todo mas o menos, mmm, a ver ... arrancan las x y una terminal pelada . Of course, no he instalado ni siquiera un gestor de ventanas. Bueno, pues voy a por mi favorito

$ sudo apt-get install uwm

el Unix desktop environment es un proyecto caduco, parado, sin eyecandy que se precie pero ABSOLUTAMENTE ADICTIVO por mas que intento "casarme" con e17, beryl, incluso fvwm-cristal, no hay forma, siempre vuelvo a mi viejo y querido uwm. joder, si es que no lo puedo evitar...

ahora sí...

$ startx

ouch!!!! El raton está perdido. No hay puntero.

Bueno, pues nada, a investigar un rato, y despues de googlear un poco, me encuentro con que los chicos de redhat ya han encontrado un "workaround". Al parecer tiene que ver con el driver de la nvidia (que no tengo ni pajorera idea sobre si es el "libre" o el "propietario", insisto, es el que apt me puso por sus cojones), y que se soluciona con la opción "HWCursor" "false", aquí va mi fragmento del /etc/X11/xorg.conf:

Section "Device"
Identifier "nVidia Corporation C51 [Geforce 6150 Go]"
Driver "nv"
Option "HWCursor" "off"
EndSection

Y por último, algo de hacking también en el synaptics (que es lo que controla el ratón) para que no vaya tan volado:

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option "AccelFactor" "0.0004"
Option "SHMConfig" "true"
EndSection


Nota: el azul es lo que se "instaló solo". el rojo es lo que yo añadí.

Interesante, el touchpad parece bueno, porque me reconoce dos dedos y todo! pero bueno, de momento no estamos en el "fine grain". aún no sé ni siquiera si funciona el sonido, y no me voy a poner a superajustar las x..

mañana más...

Ha nacido un debian. Primeros auxilios

Ya tenemos debian! eso sí, bastante en cueros, el pobre.
Lo siguiente será conectar la máquina para poder descargar el resto de cosas que necesitamos.

Teniendo en cuenta que la conexion a red de la maquina es a traves de pppoe (ppp over ethernet).
La instalación básica no incluye los paquetes ppp, y pppoe, pero sí están en el cd, así que hay que investigar un poquito
$ mount /media/cdrom
$ cd /media/cdrom
media/cdrom$ find ./ -name '*ppp*'

./pool/main/l/linux-kernel-di-amd64-2.6/ppp-modules-2.6.18-4-amd64-di_1.21_amd64.udeb
./pool/main/p/ppp
./pool/main/p/ppp/ppp_2.4.4rel-7_amd64.deb
./pool/main/p/ppp/ppp-udeb_2.4.4rel-7_amd64.udeb
./pool/main/p/pppoeconf
./pool/main/p/pppoeconf/pppoeconf_1.13_all.deb

media/cdrom$ dpkg -i pool/p/main/ppp/ppp_2.4_4rel-7_amd64.deb

el dpkg nos irá diciendo que no puede instalar porque le falta tal o cual cosa. Aplicando este método recursivamente, (buscar con el find lo que falta, instalarlo, etc ..) en unos 5 minutos tenemos instalado el ppp y el pppoe

luego, a configurar tocan:
$ pppoeconf

y una vez que tenemos la red up & running, editamos el /etc/apt/sources.list, aquí pongo el mío:

fulanitofulanez@mclure:/media/cdrom$ cat /etc/apt/sources.list

#
# deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Snapshot amd64 ...

deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Snapshot amd64 ...

deb http://security.debian.org/ testing/updates main contrib
deb-src http://security.debian.org/ testing/updates main contrib

deb http://mirrors.kernel.org/debian/ testing main contrib non-free

y con esto y un bizcocho, hasta mañana a las 8.

updateamos todo
$ su
Password: --mete aqui tu password, man--
# apt-get update
blablablablabla

y finalmente, tenemos una debian en "cueros", pero con los repositorios de la testing preparados para cualquier cosa.

Ahora, a buscar paquetes y empezar a configurar como un loco.

It's been a hard day & night (or so)


Han sido varios días que podríamos calificar de "duros", noches sin dormir, y el trabajo acechando, etc...

La primera buena noticia: ¡estoy escribiendo desde linux! todo lo que tengo ahora es "out of the box", pero aún no he investigado si lo tengo todo "ok".

El trabajo duro fue hacer la dichosa partición en el windows vista.


Una vez que borré la "recovery partition", se quedó un pequeño "metadata" colgado en el disco duro justo a la altura de donde empezaba la antigua partición de recuperación. Por lo que he ido deduciendo, he supuesto que se trataba algo que dijera , en el lenguaje NTFS, algo así como "y aquí hay que seguir extendiendo el disco duro". Bueno, el caso es que la naturaleza del archivo lo hace muy difícil de "mover", y la utilidad de desfragmentación no lo movía. (Por cierto, he descubierto un montón de "ruido googeliano" alrededor de este nuevo enfoque para las particiones del vista). Tras muchas horas de poner el disco duro al rojo vivo, decidí usar los discos de recuperación que había creado hacía dos días. A la sazón, eran dos dvds que mi nueva laptop quemó y verificó asegurándome que estaba todo "ok". La idea era recuperar las particiones tal y como estaban originalmente, para poder hacer "shrink". Sin embargo, ¡Oh, fatalidad!, los discos no funcionan cuando los uso, todo parece ir muy bien, pero en el último momento, el mensajito:
"This PC is not supported by the System Recovery Discs.
You will not be able to continue to recover this system with these
discs."
Imaginaos como se me quedó la cara después que los discos creados usando el hp pavilion me dijeran que el hp pavilion no servia...
Paciencia, que para eso es la madre de la ciencia. Por supuesto, los recovery disc solo se pueden crear una vez, así que a escribir a HP tocan. Respuesta casi inmediata:
I would like to inform you that this could be due to corrupted files on
recovery discs. However, we send you the recovery kit for your notebook
for future use.
Bueno, lo de "corrupt files" no se lo cree ni su tía, pero bueno.

Visto lo visto, no podemos contar con los recovery discs para nada, entre otras cosas porque aunque los HP me enviaran diligentemente los discos, tendría que esperar casi dos meses para tenerlos en mi mano (las cosas que le pasan a uno por no vivir en los USA y sí comprar allí), así que hay que desfragmentar o morir.

¡Estamos salvados!, porque hay una pequeña empresita que hace un programita llamado Perfect disk que es un desfragmentador "a la antigua" que va de maravilla, además de ser "Vista certified". Es el único defragmentador con la capacidad de defragmentar archivos de "metadata" que es justo lo que yo necesitaba. Sin embargo, no todo estaba dicho. Resulta que no podía usar justo lo que necesitaba del defragmentador (offline defrag), cada vez que intentaba poner en marcha el "offline defrag", obtenía este mensaje (esto , para nuestro amigo google, que bastante me costó a mí resolver esto):
Volume is not dirty
Failed to open volume using Defrag32 (32,538).
\DosDevices\Volume{77ce4599-cd53-11db-b19f-806e6f6e6963}

Could not gain exclusive access to drive C:\ (32).
There is a possible driver conflict. (C:\)
los muchachos del perfect disk tienen este error documentado en su página, pero se supone que es por interferencias con otros programas , porque mi máquina no tenía más software que el que viene recién instalado. En fin, grandes aplausos a susie, de perfectdisk porque en un día me han tratado a mí, un vulgar "evaluation version" user como si fuera micro$oft en persona. El caso es que tras varios trasiegos de emails, a lo largo de unas cuantas horas, los tipos me han hecho un driver para mí solito, básicamente, es un archivo que se llama "DefragFs.sys" que hay que poner en windows/system32/drivers , sustituyendo el que está ahi. El archivo "hackeado" aqui: defragfs para que funcione el offline defrag de perfect disk en vista, en pavilion dv2000z
Después de colocar el nuevo driver y reiniciar, por fín pude hacer un "offline defrag" y tras algunos defrag más, conseguí tener espacio libre contiguo suficioente para hacer el famoso shrink:
computer ---> click derecho --> manage --> todo tipo de contraseñas --> storage devices --> shrink.

Despues de hacer el "hueco" para linux, vino la parte más sencilla. Introducir el cd "netinstall" del debian testing, e instalar un sistema básico sin acceder a la red (porque mi conexión es con pppoe, y el instalador no la "vio"). En este proceso de primera instalación, sólamente 2 precisiones:
  1. El sistema reconoce el puerto firewire como tarjeta de red, y pregunta, hay que escoger la "otra".
  2. Como yo quería usar el boot loader del vista, NO instalé el GRUB en el MBR. Sino que lo instalé en la partición del linux. Tuve que probar varias veces, pero al final como puse una partición extendida, el grub me "entró" en la /dev/hda5 (o (0,hd4), como se prefiera)
Las razones por las que quise usar el boot loader del vista no son, por supuesto, que prefiera ese gestor a nuestro buen amigo "GRUB", sino que para mí es importante que no se me "joda" el vista, porque se que para recuperarlo va a ser un infierno, así que prefiero no tocar el MBR. El debian , sin embargo, no me preocupa por dos motivos:
  1. directamente no se jode
  2. y si se jode, pues lo reinstalas en un plisi, coño.
Para usar el boot loader del vista, seguí las instrucciones de un techie de microsoft sobre como arrancar linux desde el boot manager de vista. El techie habla tambien de algo llamado "bitlocker", pero a mí no me hizo falta (de hecho mi versión de vista es "demasiado cutre" y no trae el bitlocker ese). La única cosa que hay que saber bien es dónde se instala el GRUB para después saber de qué particion hay que "copiarlo" con el dd. Pero las instrucciones de nuestro techie favorito fueron como la seda.

Vualá!!! ya tenemos un bello menú de arranque "vistasiano" y podemos entrar a nuestro famoso "naked debian", o lo que es lo mismo "debian en cueros", donde lo único que tenemos es una terminal...

lunes, 12 de marzo de 2007

Despues del googling

Resulta que mi pavillion viene con un "windows anytime upgrade" y tras rebuscar un poco en google, parece ser que estos discos tienen todos todo el sistema, y dependiendo del product key, instalan una cosa u otra.
Asi las cosas, pues nada, he descargado el Vlite, cuando me ha pedido un disco de instalacion de vista le he enchufado el "anytime upgrade" y se lo ha tragado, asi que me he creado un disquito "customizado" de windows Vista .
Ademas de eso, creé los dichosos "recovery disc" y borré la partición de recovery, usando el "recovery management". De todas formas, la idea es no tener que usar esos "recovery disc" nunca, porque me desgraciarían la partición Linux, espero que el disquito que he creado con el vlite sea capaz de instalar el vista en la nueva partición, si se da el caso de que tengo que recuperar el vista.

Y ya que estoy quemando, pues hala, me quemo también la carpeta de "swtools" o algo así, que tiene toda la pinta de tener el soft y drivers del pavillion.

¿Y cómo creamos la partición de linux? Bueno, pues nuestro amigo el Vista viene con la posibilidad de "shrink" una partición, aunque sea la partición activa, así que nada, tan sencillo como "shrinkear", y a correr ....

Ah, no, no tan fácil, resulta que alguna cosa he hecho que casi no puedo reducir la partición (unos miserables 5 Gb), así que ahora toca sudar la gota gorda y desfragmentar hasta el aburrimiento, a ver si consigo más "hueco shrinkable"

domingo, 11 de marzo de 2007

First what's first. hanging around

First thing first.
I received yesterday my brand new HP pavillion dv2000z laptop.
I tried so hard to fetch it without windows, tried before to fetch my dell without it, no success of course.
Anyway, since I live in a place it would be very, very difficult to get software, and since I need to have my machine ready for work in linux, I can't just rest in this 'restore' feature, the laptop came shipped with, because it would erase my entire linux partition.

So, the time my wife and daughter has left me as of today, I've put it in googling a little. So far, I've found a few promising sites:
What I intend to do is:
  • make a clean install dvd from my oem laptop with vista preinstalled
  • repartition the disc
  • install linux
  • use vista boot loader (if any) to choose between linux and vista.
So we'll see tomorrow!!!