Haiku Parte II

Haiku Parte II

Despues de más de dos semanas de pruebas, puedo (por fin) escribir la segunda parte sobre este sistema tan poco conocido llamado Haiku. De hecho, puedo decir que me encuentro en dicho sistema escribiendo esta entrada.

Advertencia: este post será algo más técnico de lo que acostumbro a escribir. Como mi sistema principal es Linux Mint Cinnamon 17.3, los comandos pueden varíar de distribución en distribución

Instalando el sistema

lspci: Hardware Objetivo

Bueno, el engendro en el cual tengo instalado Haiku es el siguiente:

            00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
            00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
            00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
            00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
            00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
            00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
            00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
            00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
            00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04)
            00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
            00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
            01:00.0 Network controller: Intel Corporation Centrino Wireless-N 130 (rev 34)
            02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

La cafetera es un pc tipo laptop, marca Samsung Modelo np-300e4a, de a mediados del año 2012, la cual compre de segunda maño hace ya 3 años y se ha convertido en mi caballito de batalla desde entonces. Desde que lo adquirí, lo he usado con dualboot entre Linux Mint 17.03 (lanzado noviembre de 2015) y el infame Windows 7 (reconozco que es mi pecado original, lo mantengo por algunos juegos que no corren en GNU/Linux)(¡perdoname Stallman!) hasta el día que me animé a salir del letargo que significa tener y hacer siempre lo mismo. Dicho esto, hace un mes que decidí instalar Haiku y probarlo en un hardware real, lo que normalmente se conoce como “entorno de producción”.

En teoría todo parecía sencillo; buscar la imagen, quemarla en un cd/dvd virgen, configurar la bios para que arranque desde el cd/dvd. Al ser este un computador algo viejo, permite decidir entre UEFI y Legacy Boot, y, por razones de compatibilidad; lo tengo en Legacy. Además, debo añadir que el soporte UEFI en Haiku es completamente experimental, por lo que no aseguro que vaya a iniciar la imagen.

Vale, hasta aquí el procedimiento fue el siguiente:

  1. Ir a la página Oficial del Proyecto
  2. No ir a Get Haiku, porque las imágenes Alpha oficiales están un poco desactualizadas y no se ha querido actualizar hasta el lanzamiento de la Beta. Por tanto, el enlace correcto es éste y bajar la imagen acorde a nuestro procesador, ya sea de 32 o 64 bits.
  3. Descargar la imagen, y quemarla con nuestro software predilecto.
    Sin embargo, los chicos de Haiku dicen que hay que preferir estos programas:
  • Burn 2.4.1u
  • CDRecord
  • InfraRecorder
  • K3b

Para más información acerca de este tipo de instalación, puedes revisar este enlace

Teniendo mi imagen, procedí a iniciarla… esperando que todo resulte bien, pero no fue así.
En efecto, el bootloader murió honorablemente cargando el disco en la ram del pc y apareció el siguiente mensaje de error…

  PANIC: could not mount boot device
  Welcome to Kernel Debugging Land...
  Thread 16 "main2" running on CPU 1
  stack trace for thread 16 "main2"
  kernel stack 0xffffffff819b000 to 0xffffffff819c0000

  frame                          caller                                                   

  <image>:function + offset
   0 ffffffff819bf908  (+   16)  fffffffff80140d17  <kernel_x86_64> arch_debug_
   1 ffffffff819bf918  ( +  16)  ffffffff800a7617   <kernel_x86_64> _ZL22stack_
   2 ffffffff819bf928  (+   24)  fffffffff80138a2c  <kernel_x86_64> arch_debug_
   3 ffffffff819bf940  (+   96)  fffffffff800a7fff  <kernel_x86_64> debug_call_
   4 ffffffff819bf9a0  (+   96)  fffffffff800a905b  <kernel_x86_64> _ZL20kernel_
   5 ffffffff819bfa00  (+   80)  fffffffff800a94c4  <kernel_x86_64> _ZL24kernel_
   6 ffffffff819bfa50  (+  240)  fffffffff800a96c3  <kernel_x86_64> panic () + 0
   7 ffffffff819bfb40  (+ 1056)  fffffffff800fff46  <kernel_x86_64> vfs_mount_b_
   8 ffffffff819bff60  (+   80)  fffffffff800606de  <kernel_x86_64> _ZL5main2pv_
   9 ffffffff819bffb0  (+ 32 )   fffffffff800857e3  <kernel_x86_64> _ZL19comm0n_
   10 ffffffff819bffd0  (+ 2120482864 )  fffffffff819bffe0  
   kdebug>

Aplicando el comando syslog

    kdebug> syslog
 options = 0
 smp: using ACPI to detect MP configuration
 smp: found local APIC with id 0
 smp: found local APIC with id 2
 smp: found local APIC with id 0
smp: APIC is disabled and will not be used
........
smp: found io APIC with id 2 and address 0xfe00000
VESA version = 3.0, capabilities 1
OEM string: Intel (R) Sandybridge Mobile Graphic Chipset

¡Oh, no! Algo está yendo mal.

Pensé que era cuestión del software utilizado para quemar la imagen.iso , que en mi Mint Cinnamon era Brasero. Entonces decidí cambiar de software y utilizar el recomendado por la comunidad de Haiku, k3b, pero posteriormente obtuve el mismo resultado.

Cambié de PC y probé otros software para quemar imágenes; sin embargo, todos los caminos llevaban a Roma, seguía teniendo el mismo error. Acto seguido, decidí montar la imagen que había descargado de forma virtual, para ver si era la imagen la causante de los problemas, sin embargo, mi sorpresa fue mayúscula al ver que Haiku, podía instalarse sin ningún tipo de contratiempo, en una máquina virtual. Por tanto, todo parecía indicar que era mi bandeja lectora de cd/dvd, donde estaba el problema.

Lo más gracioso de esto, es que utilicé un disco antiguo de Haiku que tenía y funcionó, como también otros discos en donde tenía distribuciones GNU/Linux.

Rayo Mc USB al rescate

Así que, decidí cambiar, y decidí tratar de hacer un USB arrancable.
Para ello, seguí la misma guía de Haiku al respecto y escogí descargar Etcher.

Etcher es un programa escrito en Electron cuyo objetivo es hacer más sencillo la creación de usb arrancables, a través de interfaz bastante cuidada.

Lo que hay que hacer aquí es descargar el archivo que pesa 80 mb y descomprimirlo.
Es un archivo Appimage (al menos en la instalación para GNU/Linux), y por tanto, hay que transformar el archivo en ejecutable, para lo cual abrimos una consola, y luego de asegurarse de que estamos en la carpeta donde descargamos el archivo, escribimos:

 chmod a+x etcher.AppImage

Acto seguido;

  ./etcher.AppImage

Por último escogemos el disco usb, hacemos un click en flash y esperamos, hasta que termine. Si quieres ver otras opciones para crear Usb arrancables, e iniciar Haiku, puedes revisar este enlace.

A mí, me funcionó utilizar etcher.

Debemos recordar que hay que tener configurado USB como opción de arranque en la BIOS.

Iniciando Haiku

Si todos los módulos cargan; podremos, aparecerá la pantalla de la selección de idiomas, en cual podemos escoger si iniciar un Live-CD o el instalador.

Si iniciamos el instalador, podemos ver los discos y las particiones disponibles. Para no sufrir una perdida de datos; es necesario tener las particiones listas; y formatearlas con BFS, el sistema de Archivos de BeOS, que ahora utiliza Haiku. Al terminar de crear y dar formato a la partición, ésta aparecerá como disponible, permitiéndonos seguir con la instalación.

En caso de querer instalar un BSD, éste debemos instalarlo en primer lugar, ya que no reconoce la partición en formato BFS y considera que es espacio libre, borrando la partición con nuestro Haiku preinstalado.

Por último, una vez que la instalación inicie, sólo hay que esperar que ésta se complete.

Mayor información aquí.

Cuando se termina la instalación, hay que reiniciar el equipo y ¡puff! tenemos Haiku…


¡Abracadabra, Inicia Haiku!

O bueno, en teoría…

Debido a que el grub instalado no reconoce a Haiku de forma automática; hay que entrar a la distribución en el cual lo tenemos instalado y modificarlo de forma manual. Personalmente, la explicación oficial de la Guía no me fue suficiente, pero encontré la respuesta buscando en el foro de la comunidad.

En primer lugar, recordemos que debemos determinar exactamente la partición donde tenemos instalado Haiku

Para ello en GNU/Linux basta con usar el comando:

# fdisk -l

En mi caso, la información que arrojó la consola fue la siguiente:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9b3fc34f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   174082047    86937600    7  HPFS/NTFS/exFAT
/dev/sda3       338425290   625141556   143358133+   5  Extended
 Partition 3 does not start on physical sector boundary.
/dev/sda4   *   174082048   337659903    81788928   a5  FreeBSD
/dev/sda5       461301760   467159039     2928640   82  Linux swap / Solaris
/dev/sda6       467161088   625141556    78990234+  83  Linux
/dev/sda7       338425354   461301257    61437952   eb  BeOS fs
 Partition 7 does not start on physical sector boundary.

Luego escribimos un script, utilizando nuestro editor preferido, como sigue;

#!/bin/sh -e
cat << EOF
echo "Adding Haiku entry" >&2
menuentry "Haiku" {
       ## cambia la partición, la partición es tu primer disco
       ## es (hd0,1), la tercera partición en su segundo disco es  (hd1,3) y seguimos, en mi caso es (hd0,7) 
set root=(hdX,Y)
chainloader +1
}
EOF

Guardamos el archivo con el nombre 40_Haiku, o con cualquier otro nombre. Hay que tener en cuenta que el número indica el orden en el cual se ejecuta Haiku, si ponemos 6, será la primera opción en el Grub. Como el 40 es mayor valor permitido; será último en la entrada.

Después hay que hacer el script ejecutable, cambiándole los permisos

$ chmod a+x 40_Haiku

y ejecutarlo como root:

# ./40_Haiku

Por último, actualizamos el Grub 2 con el siguiente comando:

# update-grub

o el comando que utilice tu distribución.

En caso que esto tampoco funcione; podemos editar manualmente el archivo 40_custom, localizado en /etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

 menuentry Haiku {      
 set root=(hd0,7);
 chainloader +1
 }

Si todo funciona, podremos ver a Haiku al iniciar nuestro sistema.


Ups, ¿cómo se infiltró FreeBSD ahí?

Con esto doy por finalizada la segunda entrada, la tercera abordará el Escritorio de Haiku, funcionamiento día a día, gestión de repositorios entre otras cosas.
Puedes revisar la primera parte de esta serie en el siguiente enlace:

Deja un comentario