Instalar Debian GNU/Linux en Sony Vaio VGN-TX27TP

El VGN-TX27TP es un laptop ultraligero con Pentium M ultra-low voltage de 1.2 Ghz y grabadora de DVD dual-layer. El TFT es de 1360×768 y está retroiluminado con LEDs. Tiene botoncillos por todas partes, un par de USBs, un firewire, ethernet, modem, bluetooth, wifi y ranura SD/memory-stick.

De serie me venía con caracteres chinos en el teclado que le dan un toque geek y, lo más importante, un layout americano, con todas las teclas raras donde deben estar…

También viene con un Windows XP en auténtico chino mandarín y un programita basado en linux para actuar como media player sin tener que encender el Windows. De esto último me enteré demasiado tarde, así que si alguien lo tiene todavía que me lo diga, que los cutres de Sony no me dieron ni un CD.

En esta receta veremos cómo realizar el exorcismo de este pobrecillo PC para darle mejor vida.

Lo más dificil

Bueno, lo más difícil con diferencia es lo aparentemente más simple. Las pegatinas. Tiene dos pegatinas que hacen que funcione deficientemente: una dice “Designed for Windows XP” y la otra dice “Microsoft Windows Original”. Ambas están muy bien pegadas en la carcasa y succionan la sustancia del pobre Vaio. Yo lo resolví con un trapo de algodón húmedo pero muy muy escurrido y mucha, mucha paciencia.

Lo peor está hecho, mete el CD de un Debian netinstall y tira millas. Si instalas una unstable no tendrás apenas problemas. La tarjeta gráfica (intel 915GM) la autodetecta, la ethernet (Intel e100) y la wifi también (tiene una intel pro wireless 2200bg).

Lo deja en un estado bastante usable salvo por la salida externa de VGA, el synaptics touchpad y los botones.

¡¡¡Y lo que es más importante: el software suspend funciona out-of-the-box!!!

Se me caían las lágrimas cuando lo vi…

La configuración de Xorg

El touchpad funciona de serie, pero para activar los taps, scroll, arrastre y tal no he encontrado nada que lo haga automáticamente. Tuve problemas con los parámetros por defecto, que lo dejaban con una sensibilidad extrema. Al final, googleando encontré este trozo que me va bien.

Section "InputDevice"
        Identifier      "Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"
        Option          "Device"                "/dev/input/mouse0"
        Option          "Protocol"              "auto-dev"
        Option          "SHMConfig"             "true"
        Option          "LeftEdge"              "120"
        Option          "RightEdge"             "830"
        Option          "TopEdge"               "140"
        Option          "BottomEdge"            "680"
        Option          "FingerLow"             "8"
        Option          "FingerHigh"            "9"
        Option          "MaxTapTime"            "200"
        Option          "MaxTapMove"            "150"
        Option          "MaxDoubleTapTime"      "200"
        Option          "ClickTime"             "100"
        Option          "FastTaps"              "false"
        Option          "EmulateMidButtonTime"  "75"
        Option          "VertScrollDelta"       "25"
        Option          "HorizScrollDelta"      "100"
        Option          "MinSpeed"              "0.1"
        Option          "MaxSpeed"              "0.7"
        Option          "AccelFactor"           "0.05"
        Option          "EdgeMotionMinZ"        "30"
        Option          "EdgeMotionMaxZ"        "160"
        Option          "EdgeMotionMinSpeed"    "200"
        Option          "EdgeMotionMaxSpeed"    "200"
        Option          "EdgeMotionUseAlways"   "1"
        Option          "UpDownScrolling"       "1"
        Option          "TouchpadOff"           "false"
        Option          "GuestMouseOff"         "false"
        Option          "LockedDrags"           "false"
        Option          "RTCornerButton"        "0"
        Option          "RBCornerButton"        "0"
        Option          "LTCornerButton"        "0"
        Option          "LBCornerButton"        "0"
        Option          "TapButton1"            "1"
        Option          "TapButton2"            "2"
        Option          "TapButton3"            "3"
        Option          "CircularScrolling"     "1"
        Option          "CircScrollDelta"       "0.1"
        Option          "CircScrollTrigger"     "2"
        Option          "CircularPad"           "0"
        Option          "PalmDetect"            "0"
        Option          "PalmMinWidth"          "10"
        Option          "PalmMinZ"              "200"
        Option          "CoastingSpeed"         "0"
EndSection

La resolución 1366×768 es la estándar de DVB y HDTV, pero es problemática porque la horizontal no es divisible por 8. Xorg exige que sea divisible por 8, asi que tenemos que elegir entre 1360 o 1368. Yo me quedé con 1360 porque a mi me resulta molesto el scroll automático que resulta cuando la resolución virtual es mayor que la física.

Section "Screen"
        Identifier      "Screen LCD"
        Device          "Device LCD"
        Monitor         "Monitor LCD"
        DefaultDepth    16
        SubSection "Display"
                Virtual         1360    768
                Depth           24
                Modes           "1360x768" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

El monitor LCD va bien con DPMS:

Section "Monitor"
        Identifier      "Monitor LCD"
        Option          "DPMS"
EndSection

Y la tarjeta va bien con el driver i810, incluida la aceleración 3D (no espereis maravillas…):

Section "Device"
        Identifier      "Device LCD"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "VBERestore"            "true"
        Option          "DRI"                   "true"
        Option          "VideoRam"              "128MB"
        Option          "MonitorLayout"         "NONE,LFP"
EndSection

El teclado lo tengo como un estándar americano. Eso tiene el inconveniente de que no sé como escribir los caracteres chinos. Bueno, tengo que confesar que intenté escribir en chino en un Windows chino y tampoco sabía como sacar los simbolitos, parecía todo aleatorio…

Section "InputDevice"
        Identifier      "Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "us"
EndSection

Normalmente uso una configuración con la salida externa desactivada, como pone en la sección de la tarjeta de video. En ese caso la sección Screen es:

Section "Screen"
        Identifier      "Screen LCD"
        Device          "Device LCD"
        Monitor         "Monitor LCD"
        DefaultDepth    16
        SubSection "Display"
                Virtual         1360    768
                Depth           24
                Modes           "1360x768" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Y el layout es:

Section "ServerLayout"
        Identifier      "Layout LCD"
        Screen          "Screen LCD"
        InputDevice     "Keyboard"
        InputDevice     "Mouse"
        InputDevice     "Touchpad"
EndSection

Para activar la salida externa cambio de layout descomentando la línea correspondiente de la sección ServerFlags:

Section "ServerFlags"
        #Option         "DefaultServerLayout"           "Layout LCD"
        #Option         "DefaultServerLayout"           "Layout CRT"
        Option          "DefaultServerLayout"           "Layout Dual"
EndSection

El Layout Dual es el más interesante. Tengo dos Screen independientes sin xinerama:


Section “Device” Identifier “Device LCD Dual” Driver “i810” BusID “PCI:0:2:0” Screen 0 Option “VBERestore” “true” Option “NoDDC” “true” Option “MonitorLayout” “CRT,LFP”
EndSection

Section “Device” Identifier “Device CRT Dual” Driver “i810” BusID “PCI:0:2:0” Screen 1 Option “NoDDC” “true”
EndSection

Section “Monitor” Identifier “Monitor CRT” Option “DPMS” HorizSync 28-49 VertRefresh 43-72
EndSection

Section “Screen” Identifier “Screen CRT Dual” Device “Device CRT Dual” Monitor “Monitor CRT” DefaultDepth 24 SubSection “Display” Depth 24 Modes “1024×768” “800×600” “640×480” EndSubSection
EndSection

Section “ServerLayout” Identifier “Layout Dual” Screen 0 “Screen LCD Dual” Screen 1 “Screen CRT Dual” RightOf “Screen LCD Dual” InputDevice “Keyboard” InputDevice “Mouse” InputDevice “Touchpad”
EndSection

De esta forma me sale el gestor de ventanas sobre las dos screens, cada una con su resolución.

Control de brillo, activación WiFi/Bluetooth

Instala spicctrl. En teoría con esto basta, pero el brillo no va, necesitamos sony-acpi-source y compilar con module-assistant:

m-a a-i sony-acpi

Y en /etc/modules añadir

sony_acpi

En Gnome va perfectamente el control de brillo con las teclitas normales.

La activación/desactivación del bluetooth, las temperaturas y el estado de las baterías se puede ver con spicctrl. Por ejemplo, para desactivar el bluetooth:

spicctrl -l 0

Las teclas multimedia se pueden mapear perfectamente con los aceleradores de Gnome. Todas menos dos, que no hay manera, las del control de volumen. ¡Tanto la teclita de subir volumen como la de bajar volumen generan el mismo scan-code!

Teclado

El teclado es super cómodo. Una vez te haces al layout americano no puedes vivir sin él y tienes que empezar a pedir teclados USB por Internet para poder usar los ordenadores que te rodean.

Escribir en lenguas extrañas como la de Cervantes tampoco es complicado. Simplemente te añades al teclado USA normal el teclado USA con alfabeto internacional. Se puede conmutar con el applet de keyboard indicator. Al usar el de alfabetización internacional el apóstrofo, las comillas, el apóstrofo inverso, el gurrumuño y el sombrerito pasan a ser dead-keys, con lo que se pueden escribir sin problemas acentos, eñes, etc. De hecho si usas el Alt derecho en combinación con n tienes una eñe, si lo combinas con la coma tienes una cedilla, si lo combinas con una vocal tienes la vocal acentuada, si lo combinas con una s tienes la ß germánica. En fin, que es más fácil y rápido escribir en alfabetización internacional con un teclado USA que con un spanish.

Y sobre todo echadle un vistacillo a cómo estan los corchetes, las llaves, los paréntesis, la barra invertida, el signo de dividir… ¡Todo está donde tiene que estar!

La ranura SD/MemoryStick

En teoría con el 2.6.17 debería funcionar, pero a mi todavía no me funciona. No es que me haya pegado mucho con el… pero así por las buenas no va.

Hay recetas por ahí para hacerlo funcionar, pero casi que me espero a que el 2.6.17 o el 2.6.18 lo soporten plenamente Smiling

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de int-0

Un apunte al lector de los Vaio

Bien... se supone que el TIFM (el nombre que se le da al controlador de MS/SD... que monta los Vaio de Texas Instruments) es compatible con el modulito de los linux 2.6.17 en adelante llamado sdhci (SD host controller interface), que es un modo de funcionamiento especial de dicho chipset. El caso está en que ese módulo requiere que el controlador mande sus interrupciones y tal pero en los vaio esa opción viene desactivada de fábrica. Para activarlo a cholón hay que hacer lo siguiente:

$ lspci
Y entre otras cosas obtendremos:

00:0a.3 Mass storage controller: Texas Instruments PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller

A cada uno le saldrá un indentificador de dispositivo (lo de 00:0a.3) diferente; Pues bien, si hacemos:

lspci -xxx
Entre otras muchas cosas obtendremos:

00:0a.3 Mass storage controller: Texas Instruments PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller
00: 4c 10 8f ac 02 00 10 02 00 00 80 01 08 40 80 00
10: 00 70 00 e0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 75 81
30: 00 00 00 00 44 00 00 00 00 00 00 00 ff 04 07 04
40: 00 00 00 00 01 00 02 7e 00 00 00 00 60 00 00 00
50: 4d 10 75 81 05 03 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Que son los registros del controlador que rigen su funcionamiento, lo más importante aquí es:

40: 00 00 00 00 01 00 02 7e 00 00 00 00 60 00 00 00

¿Véis el primer byte del 60h?, es decir: el 0, pues para activar las interrupciones ahí tenemos que poner un 2... cosa fácil:

$ setpci -s 00:0a.3 4c.b=62
Tenéis que tener en cuenta dos cosas:
- Si os aparece un 40h en vez de un 60h tenéis que poner 42h en lugar de 62h.
- Debéis poner el identificador de dispositivo que corresponda en vuestro caso.

Ya sólo nos queda que ACPI enrute también interrupciones a ese dispositivo... esto es más fácil si cabe:

$ echo "1">/sys/bus/pci/devices/0000\:00\:0a.3/enable
Al igual que antes, emplead el indentificador de dispositivo que corresponda.

Pues bien, con esto y con todo sigue sin funcionarme, y puede ser por tres cosas:

- El módulo no maneja el dispostivo (he probado con otro específico para tifm y tampoco)
- Mi ranura sólo acepta Memory$tick y es el único tipo de tarjeta que puedo probar. Gracias a las políticas privativas de $ony no hay soporte para este tipo de tarjetas de ninguna manera y por eso no funciona.
- Puede ser que esto de los registros y las interrupciones sea una tonteria y no valga para nada... pero es lo que se comenta por ahí...

------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de magmax

No me queda claro.

Sólo una pregunta:
Dices que lo más importante es la línea 40. La mía dice esto:

40: 00 00 00 00 01 00 02 7e 00 80 00 00 20 00 00 00

Sin embargo, dices que si vemos el primer byte de 60h. ¿Qué tiene que ver una cosa con la otra? Además, seguidamente, dices que si nos aparece un 40h en lugar de un 60h lo cambiemos por un 42h en lugar de un 62h... Me pierdo completamente.

¿Quieres decir que la dirección importante es la 4c y que todo depende de lo que ponga ahí? A mí me aparece un 20; ¿debo poner un 22?

Nada más. De repente me parece super útil la magic gate de mi Vaio... Imagínate porqué. El lunes me pico con los tambores...

Miguel Ángel García
http://magmax.org

Imagen de int-0

Esto está muy obsoleto...

...a partir del 2.6.18 el lector va finísimo... otra cosa será el soporte a las Memory Stick de cuya inexistencia tenemos que agradecer a Sony... Sad
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de magmax

Ahora sí que me has liado.

A ver... Tengo un Vaio, y lo que quiero es, precisamente, leer y escribir la memory stick con la magic gate. ¿Sony no ha ofrecido/permitido los drivers? Es decir: ¿No hay nada?

Miguel Ángel García
http://magmax.org

Imagen de int-0

Pues no...

...Sony no da soporte a menos que firmes unas movidas que poco más y vendes tu alma al diablo. Lo que yo decía ahí era para usar el lector de Texas Instruments, que ya está soportado. Lo que no está soportado es el acceso a las Memory Stick, que poco a poco se está desarrollando.
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de diego

Por si sirve de ayuda...

Hoy he hecho rular el lector de tarjetas de mi Airis (un Texas Instrument), el modelo no es el mismo pero quién sabe. Mi lector lee SD, MMC y algún formato más.

$ lspci
06:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Tengo cargados los módulos tifm_core, tifm_7xx1 (ya se me cargaban en el arranque) y tifm_sd, que lo cargo yo, es lo único que he tenido que hacer.

$ lsmod | grep tifm
tifm_sd 9220 0
mmc_core 30232 1 tifm_sd
tifm_7xx1 8064 0
tifm_core 9232 2 tifm_sd,tifm_7xx1

Saludos

PD: Ubuntu Edgy (6.10) Kernel 2.6.17-10

Imagen de int-0

El problema...

...es que sólo funciona para tarjetas SD... Sad
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Rendimiento Vaio TX

Buenas recientemente he adquirido un vaio TX, el cual la verdad es que no tiene el rendimiento que esperaba.

No sé si es debido a su poca RAM o algun problema con el ACPI o algun otro driver no instalado o mal hecho.

Pido consejo sobre como puedo testearlo y cualquier otra observacion que deseen.

Gracias por adelantado.

La distribucion con la cual lo he probado es una Ubuntu Dapper. 6.0.6

Imagen de int-0

Extensión: instalación en VAIO PCG-K115S

Pues básicamente hay que hacer lo mismo... solo quedan 2 trabas:

- La wifi: el "bichejo" tiene un chipset de Cisco la mar de majo Smiling solo tenéis que instalar los módulos madwifi (con el modules assistant va freshhquisimo).
- El lector de MS: por ahora no hay solución, hay un módulo en binario liberado por texas instruments, aunque el módulo dice ser GPL no se distribuye el código fuente por ningún lado. Algunos lo hemos pedido pero no obtuvimos respuesta alguna. El módulito en cuestión necesita de linux-image-2.6.11-383 con la capacidad de "preemptible" activada. Se supone que para el 2.6.17 debería funcionar, pero yo lo he probado y nada de nada...
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de int-0

Mmmm... interesante

Aunque supongo que la utilidad de esta receta seria similar a si existiera una tal que: instalar GNU/Linux en HAL9000... Quién tiene semejante "bicho"? snif...
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Pos hombre, no es tan raro

La receta es aplicable al Vaio VGN TX770, que se vende en los USA pincha aquí.

La pena es que con el 770 se pierden los caracteres chinos, que le dan un estilillo cuco.

Todavía más cutrecillo es la versión española del portatilito, que es el Vaio VGN TX2XP pincha aquí. En ese caso pierdes los caracteres chinos y la disposición del teclado USA. Vamos, lo dejas pal desguace.

Imagen de brue

Teclado USA

Nunca le vi nada de malo a la distribución de teclado española Smiling

Seguro que hay un paco-mode.el para el qwerty español.

--
·brue
·vigilando

brue