viernes, 9 de mayo de 2008

Diario íntimo de mis experiencias con OpenSolaris en una HP DV5000

Prefacio
Veremos que la primer instalación de OpenSolaris corresponderá a la 2008.05, que es la que me ha llegado a mis manos en este momento. A medida que vaya actualizando el sistema operativo, encontraremos en el futuro modificaciones a este blog basándonos en estas novedades.
Bueno, gracias a la llegada a mis manos del tan esperado Indiana, decidí instalarlo en mi notebook HP DV5000, desde la cual estoy escribiendo este artículo (eso quiere decir que instalarlo pude, y fue bien sencillo).
Símplemente, reventé mis particiones de GNU/Linux (no lloren, tengo otra de mis máquinas que tiene instalada la versión que hasta ahora veo con mayor performance del mercado, que es Arch Linux), y decidí comenzar con el proceso de booteo desde el LiveCD, para luego darle un click en el ícono de "Install OpenSolaris".
Todo se instaló perfectamente. Pude setear los locales en español, que en este momento ya me parece una rareza para lo que venía siendo OpenSolaris (o mejor dicho, antes de OSOL 2008.05, lo que era el SXDE y el SXCE), y tengo un bonito escritorio con el Compiz instalado, gracias a haber habilitado los efectos de escritorio. Para esto, sólo hice un click derecho sobre el escritorio, y cuando abrí el selector de fondos de escritorio, elegí habilitar los efectos. Nada más, y absolutamente igual a cualquier escritorio que haya instalado en esta misma máquina.
Lo que vengo probando de funciones de Internet realmente funcionan muy bien, está bastante aceitado, y es hasta más rápido que en el entorno Ubuntu que tenía antes (eso no es raro, Ubuntu ya hace tiempo que tardaba en bootear hasta más que Windoze eXtraPollution SystemPanic 2, que no es poco).
Ahora bien, comienzo este blog para registrar las vueltas que tendré que dar hasta tanto tenga configurado todo de la forma que debiera.

Sonamos
Comienzo por el sonido, que por lo visto, es parte de las figuritas difíciles de OpenSolaris.
Mi tarjeta de sonido, según la salida del comando /usr/X11/bin/scanpci es:


-bash-3.2# ./scanpci | grep -i audio
Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller


Los primeros indicios que encontré en la red son poco alentadores, así que me tendré que poner a ver cómo hago que esta belleza me entregue el primer mp3 como la gente.

Así es que me bajé de la página del proyecto OSS el paquetito famoso, y lo instalé:


-bash-3.2# pkgadd -d oss-solaris-v4.0-1015-i386.pkg

The following packages are available:
1 oss Open Sound System
(i386) v4.0-1015

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Processing package instance from
...
Using as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of [y,n,?] y

Installing Open Sound System as

## Installing part 1 of 1.
...
[ verifying class ]
[ verifying class ]
## Executing postinstall script.
Setting up Open Sound System....please wait
add_drv -m '* 0666 root sys' osscore
add_drv -m '* 0666 root sys' -i '"pci8086,27d8"' hdaudio
add_drv -m '* 0666 root sys' -i '"usbif,class1"' ossusb
add_drv -m '* 0666 root sys' vmix
add_drv -m '* 0666 root sys' sadasupport

Open Sound System installation complete

You can use the osstest command to test audio playback in your system.

It may be necessary to reboot the system before all devices get properly
detected by the system.

Installation of was successful.
Rebooteé, ejecuté "osstest", saqué los pedazos de parlante que quedaron pegados en las paredes, y seguí adelante con mi linda máquinita.
Ni hablar de la forma en la que mejoró el sonido cuando levanté el programa gráfico "ossxmix", y cambié, en el jack, la entrada de "mix" por "pcm1". Créanme, suena mejor, por lejos!!!

Samba de mi esperanza
Otra de las cosas que yo, exótico del arte informático quise hacer es montar un espacio compartido de un servidor Samba que tengo en mi casa. Claro, lo que pasa es que yo soy un extraño vicioso, y quiero cosas estrafalarias en mi máquina. Por eso no me funcionó de entrada. Acá les copio la salida inmoral al intentar montar el filesystem famoso:


-bash-3.2# mount -F smbfs -o username=hecsa,password=QueTeImportaPibe //192.9.200.2/hecsarchive /media/samba
mount_smbfs: service "svc:/network/smb/client:default" not enabled.


Divino, no? Claro, montar un filesystem Samba es algo que no es común que la gente haga, así que es muy lógico tener que habilitar un servicio, mandar un cohete a la luna y pensar en la fusión en frío para poder volver a hacer uso de este extraño feature.
Así que me cargué de paciencia, y ejecuté este comando:


-bash-3.2# svcadm enable -r smb/client
Luego de un mensaje que me decía que dependía de varios rezos para que funcione, pude montar mi filesystem, pero con otros flags, como podrán ver aquí:
-bash-3.2# mount -F smbfs //hecsa@192.9.200.2/hecsarchive /media/samba
Password:
-bash-3.2# df -k /media/samba
Filesystem kbytes used avail capacity Mounted on
//hecsa@192.9.200.2/hecsarchive
240362656 170983848 69378808 72% /media/samba


Bien! Primer prueba superada! Ya tengo mi filesystem Samba montado en mi máquina! Juro que mi emoción es sublime. Y casi no tuve que hacer nada.

No me gustaban los horarios de oficina
Bueno, ahora me digo: quiero editar un archivo de "oficina". Oh, sorpresa, en el menú de Oficina sólo tengo el Evince. Parece que en una oficina la gente sólo mira PDF's, por ejemplo.
Vamos, nomás. Instalemos el openoffice, a ver si podemos llegar a la victoria, y tener un sistema de escritorio funcionando como se debe.
Ejecuto los siguientes comandos:
(Para ver qué paquete instalar)


-bash-3.2# pkg search -s pkg.opensolaris.org openoffice
INDEX ACTION VALUE PACKAGE
basename dir opt/openoffice.org2.4/share/registry/modules/org/openoffice pkg:/openoffice@2.4.0-0.86
basename dir opt/openoffice.org2.4/share/registry/modules/org/openoffice pkg:/openoffice@2.4.0-0.86
basename dir opt/openoffice.org/share/registry/modules/org/openoffice pkg:/openoffice@0.5.11-0.79


(Y para instalarlo)


-bash-3.2# pkg install openoffice
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 4220/4220 420.64/420.64

PHASE ACTIONS
Install Phase 4798/4798

Luego de un minuto, me aparecieron en el menú los íconos tan gloriosos de todos los productos incluídos en el OpenOffice, y la familia oficinista, contenta...

El compilado de este verano
Ahora bien, como de seguro voy a tener que usar el compilador C para poder hacer uso de cualquier driver que haya que compilar, me decido a buscarlo, simplemente con "which gcc". No está en el path, o directamente no está instalado.
Vamos:
(Para buscar el paquetito)

-bash-3.2# pkg search -s pkg.opensolaris.org gcc
INDEX ACTION VALUE PACKAGE
basename link usr/bin/gcc pkg:/SUNWgcc@3.4.3-0.86
basename link usr/bin/gcc pkg:/SUNWgcc@3.4.3-0.79
basename link usr/bin/gcc pkg:/SUNWgcc@3.4.3-0.75
basename link usr/bin/gcc pkg:/SUNWgcc@3.4.3-0.86
(Y para instalar el bendito paquete)
(Me baja el SUNWgcc, SUNWbinutils, SUNWarc, y el SUNWhea)
-bash-3.2# pkg install SUNWgcc
DOWNLOAD PKGS FILES XFER (MB)
Completed 4/4 2035/2035 88.13/88.13

PHASE ACTIONS
Install Phase 2457/2457


Bien, ahora ya puedo hacer mi "Hola, mundo" sin problemas...bueno, casi...

Permiso, por favor!
Lo cierto es que para poder hacer muchas de las cosas que quiero hacer, necesitaría algo parecido al gtksu, lo cual no pido, por lo que ejecuto:
-bash-3.2# usermod -R root hecsa
UX: usermod: hecsa is currently logged in, some changes may not take effect until next login.
[ACTUALIZACIÓN] Luego de algunas actualizaciones, este efecto ya no aparece. El entorno se ha vuelto bastante dinámico. Creo que estoy viviendo el proceso de construcción de un S.O., pero esta vez, en serio.

Mi primera vez
Sin duda, tiene que tener un apartado especial el dedicado a la primera actualización. Lo intenté realizar desde la interface gráfica, y al menos al primer intento, no pude. La razón? No sé, la veremos luego.
Un delirio que cuando me fijo en el tamaño de lo que tenía que bajar de internet era ni más ni menos que 1900 MB!!!
Encima de eso, la interface sistemáticamente se colgó cuando llegaba a los 1000 MB, por lo que tuve que cerrar la interface gráfica, y volver a abrirla.
No sé qué problema tiene, pero cuatro pulgares para abajo al gestor de paquetes, justamente por haber hecho que baje ni más ni menos que 1 GB de información que luego no sirvió para nada.
Aparte, las descripciones de los upgrades son un chiste.
Me aparecieron sólo cuatro paquetes que actualizar, y con sus dependencias llegamos a ese tamaño abominable.
[ACTUALIZACIÓN] - Luego de determinados updates, las imágenes son más chicas, y el gestor de paquetes ha sido mejorado notablemente. Ahora puedo instalar paquetes desde allí, si bien mi naturaleza de antaño me hace usar CLI. Bien por los desarrolladores, que están haciendo las cosas como se debe!

The (wired) network is the computer
Bueno, le llegó la hora a la tarjeta de red WiFi.
La cuestión es sencilla: en esta maquinita, he instalado los sistemas operativos más estrafalarios que una mente enferma pueda concebir. Y no me refiero sólo a los compatibles con M$ o Linux.
Pero al intentar levantar la tarjeta de red WiFi, oh, sorpresa, ni siquiera se digna a encender su luz.
Al ejecutar un scanpci, como lo hice antes, encontré que la tarjeta es una:


pci bus 0x0006 cardnum 0x00 function 0x00: vendor 0x8086 device 0x4222
Intel Corporation PRO/Wireless 3945ABG Network Connection


Cómo hacemos para que esta verdadera belleza funcione?
Buscando en foros del más allá, encontré uno que mencionaba que era necesario instalar el driver wpi, y por eso ejecuté:


-bash-3.2# pkg search wpi
INDEX ACTION VALUE PACKAGE
basename file kernel/drv/wpi pkg:/SUNWwpi@0.5.11-0.86
driver_name driver wpi pkg:/SUNWwpi@0.5.11-0.86


...quería ver si había algo de ese estilo dando vueltas por ahí.
Pero la sorpresa la tuve cuando quise instalarlo, y me encontré con que ya estaba en el sistema:


-bash-3.2# pkg install SUNWwpi
Nothing to install in this image (is this package already installed?)


Entonces...qué le pasa a la niña?
Bueno, el primer lugar para buscar es en /var/log/messages. Lo que ahí encontré fue esto:


May 10 01:38:38 invid wpi: [ID 133862 kern.warning] WARNING: wpi_init(): timeout waiting for firmware init


Entonces, usamos la munición gruesa:
La salida del comando scanpci -v nos entrega:


pci bus 0x0006 cardnum 0x00 function 0x00: vendor 0x8086 device 0x4222
Intel Corporation PRO/Wireless 3945ABG Network Connection
CardVendor 0x103c card 0x135b (Hewlett-Packard Company, Card unknown)
STATUS 0x0010 COMMAND 0x0046
CLASS 0x02 0x80 0x00 REVISION 0x02
BIST 0x00 HEADER 0x00 LATENCY 0x00 CACHE 0x10
BASE0 0xd2100000 addr 0xd2100000 MEM
MAX_LAT 0x00 MIN_GNT 0x00 INT_PIN 0x01 INT_LINE 0x03


...y el comando prtconf -pv nos entrega:


Node 0x000017
assigned-addresses: 82060010.00000000.d2100000.00000000.00001000
reg: 00060000.00000000.00000000.00000000.00000000.02060010.00000000.00000000.00000000.00001000
compatible: 'pciex8086,4222.103c.135b.2' + 'pciex8086,4222.103c.135b' + 'pciex8086,4222.2' + 'pciex8086,4222' + 'pciexclass,028000' + 'pciexclass,0280' + 'pci8086,4222
.103c.135b.2' + 'pci8086,4222.103c.135b' + 'pci103c,135b' + 'pci8086,4222.2' + 'pci8086,4222' + 'pciclass,028000' + 'pciclass,0280'
model: 'Network controller'
power-consumption: 00000001.00000001
devsel-speed: 00000000
interrupts: 00000001
subsystem-vendor-id: 0000103c
subsystem-id: 0000135b
unit-address: '0'
class-code: 00028000
revision-id: 00000002
vendor-id: 00008086
device-id: 00004222
pcie-capid-pointer: 000000e0
pcie-capid-reg: 00000011
name: 'pci103c,135b'


Cómo sé que se trata de la tarjeta en cuestión, y no de la ethernet? Sencillo, porque en "model" no dice nada de ethernet.
Intenté, entonces, removiendo el driver con el comando "rem_drv wpi", y luego agregándolo de nuevo con "add_drv -i "pci8086,4222" wpi", pero no pasó nada...snif...
[ACTUALIZACIÓN] - Luego de pasar la versión snv_95, todo funciona perfectamente. Me conecto a redes WiFi como con cualquier otro S.O. Brillante!!! Luego de la snv_101a, hasta me aparece un bonito mensaje avisándome de cuanto elemento necesito para saber el estado de la red. Brillante x 2!!!

Ambiente de desarrollo en pleno desarrollo
Bueno, otra de las cosas que deseo de mi escritorio es que me sirva como ambiente de desarrollo.
Para eso, necesito tener instalado por lo menos el Netbeans 6.1, y el Glassfish v2.
El Netbeans 6.1 no está en el repositorio, pero por suerte sí el 6.0.1, que dado mi nivel de desarrollo es más que suficiente para lo que necesito hacer.
El tema viene con el Glassfish, que no está disponible desde el momento en el cual se instala el sistema operativo, como pasó con el OpenOffice.org.
Al final, descubrí la trampita. Hay que hacer un "pkg install glassfishv2", lo cual me muestra un par de cuestiones interesantes.
La primera, que es medio complicado tener que hacer una búsqueda por palabras para saber qué paquete instalar, y la segunda (que es peor que la primera) es que no hay un metapaquete que permita, en el futuro, pasar automáticamente de una versión a la siguiente, si uno lo desea.
Atención, que se entienda bien este punto, no me parece mal que haya un paquete específico para el Glassfish V2, ya que si queremos mantener una versión, y probar con la siguiente, podríamos hacer, en el futuro, "pkg install glassfishv3", por ejemplo; el problema está en los que, como yo, quieren tener metapaquetes para este tipo de programas.
[ACTUALIZACIÓN] - Actualicé a la versión snv_101b, y para mi sorpresa, toda la paquetería de Netbeans quedó en versión 6.5, que es la última y flamante. Realmente, un caño. Mis viejos proyectos siguien siendo reconocidos por la nueva IDE, y cuando los ejecuto, aún funcionan. Mis miedos, por ahora, quedan guardados.

Ojo con las actualizaciones
Atención, y mucho cuidado con las actualizaciones, dado que hay ciertas cosas que nos pueden poner los pelos de punta, sobre todo si nuestra máquina no tiene un dual boot (o aún teniéndolo), o si se hizo la instalación por default, como ocurre en el 100% de los casos que conozco (y eso incluye el uso de ZFS como filesystem por default).
El tema viene cuando al ejecutar "pkg refresh", y luego "pkg image-update", y si por algún motivo se genera un error en la actualización del sistema operativo, ya que quedará un ambiente de booteo absolutamente inutilizable, que sólo rebooteará nuestra máquina, sin ningún sistema operativo.
Ante eso, lo primero que nos vendrá a la mente es hacer un "beadm destroy nombre_del_ambiente". Bueno, dado uno de esos bonitos bugs, ocurrirá que el GRUB quedará completamente vacío, motivo por el cual habrá que encontrar formas bastantes extravagantes de recuperar todo nuestro trabajo sobre el entorno OpenSolaris.
Dado lo anterior, el nivel de recuperabilidad del sistema operativo, en caso de problemas (incluso generados por las mismas "características" del mismo), se puede considerar como prácticamente nulo (al menos en la versión que estoy probando).
[ACTUALIZACIÓN] - Luego de algunas actualizaciones, este problema desapareció por completo, y ahora todo me funciona perfectamente en lo que respecta a boot environments. Cool!
Sumado a lo anterior, encontré algunas cosas interesantes respecto de las actualizaciones, como por ejemplo:
- La actualización a snv_94 nunca funcionó. Sencillamente, el sistema operativo rebooteaba sin parar, por lo que tuve que eliminar el boot environment a mano, con el comando beadm destroy.
- La actualización a snv_95 sí funcionó, pero no me dejó arrancar el Sun xVM (VirtualBox) a menos que antes le configure una variable de ambiente (mensaje: Failed to create COM object), específicamente la LD_NODIRECT=1. Esta solución me ha llevado un buen rato para encontrarla. Espero que no se repita la experiencia. De todas formas, intenté instalar un RH4.5, y luego de todo el proceso de instalación, se queda colgado en "booting the kernel". A seguir remando, que hay agua para rato.
- La actualización a snv_101b fue buenísima, no sólo me instaló las últimas versiones de Netbeans, OpenOffice, etc., sino que aparte cambió mucho de lo que antes no me funcionaba. Se puede decir que ahora me anda todo, inclusive la tarjeta WiFi en forma nativa, cosa que verifiqué hoy mismo.

Resumen general, mi general - Just the facts
Como resumen, sólo se puede pensar en que el OpenSolaris es un buen sistema operativo, sus funciones de virtualización están perfectamente armadas, como pasa con el SXDE y SXCE.
Un aspecto interesante es que automáticamente detectó mi tarjeta gráfica, y la puso a trabajar, inclusive activando el entorno Compiz.

Publicar un comentario en la entrada