Adaptar XBian para hacer una imagen “bootable” desde Berryboot

Cthulhu Warning SignA pesar de que lo bueno de Raspberry es que es más o menos indestructible. Se aplica igualmente la advertencia de que no me hago responsable de los problemas técnicos derivados de este procedimiento.

Y no olvidéis que si algo sale sale mal la SD no funcionará y tocará formatear y volver a emnpezar.

Este post ha sido enviado por un seguidor del blog, David Dominguez a través de la página de contacto.

Introducción

Hace falta un equipo con GNU/Linux

Suponiendo que el lector ya tiene nociones sobre Berryboot y la distro XBian para Raspberry Pi, vamos a explicar el proceso.

La imagen de la última versión de XBian se estructura de la siguiente forma:

  • Partición 1 (partición de arranque):
    • /boot
  • Partición 2 (con sistema de archivos “btrfs”):
    • /home/@
    • /root/@

La idea es crear una imagen tomando sólo la partición 2 y adaptarla para arrancar desde Berryboot, ya que utiliza su propio sistema de arranque.

Pasos:

  1. Instalar el software necesario.
    > Debian:
    > $ sudo apt-get install kpartx squashfs-tools
    > Arch Linux:
    > $ yaourt -S multipath-tools-git squashfs-tools
  2. En XBian, la imagen tiene 2 particiones (home y root), debemos montar la partición de “root”.

    $ sudo kpartx -av XBian_1.0_Beta_1.1.img
    add map loop0p1 (252:5): 0 117187 linear /dev/loop0 1
    add map loop0p2 (252:6): 0 3493888 linear /dev/loop0 118784 --> la que ocupa más tamaño.
    sudo mount /dev/mapper/loop0p2 /mnt
    Si tenemos problemas para montar la imagen, intentar esto y luego repetir el paso 2. $ sudo fdisk -lu XBian_1.0_Beta_1.1.img
    Disk XBian_1.0_Beta_1.1.img: 652 MB, 652214272 bytes, 1273856 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Identificador del disco: 0x000f06a6

    Disposit. Inicio            Comienzo    Fin     Bloques     Id  Sistema
    XBian_1.0_Beta_1.1.img1     2048        71679   34816       c   W95 FAT32 (LBA)
    XBian_1.0_Beta_1.1.img2     71680       1273855 601088      83  Linux
    

    Ahora tomamos el sector de inicio de la partición de tipo “Linux” y lo multiplicamos por los “Units” indicados, a tener en cuenta que esto puede cambiar en otras imágenes, en este caso, ejecutamos lo siguiente…
    $ sudo mount -t auto -o loop,offset=$((71680*512)) XBian_1.0_Beta_1.1.img /mnt
    Desmontamos y volvemos a ejecutar el paso 2…
    $ sudo umount /mnt

  3. Una vez montada la partición, realizamos las adaptaciones necesarias para utilizar con Berryboot.
    $ sudo mv /mnt/home/@/xbian /mnt/root/@/home/
    $ sudo rm -r /mnt/home
    $ sudo mv /mnt/root/@/etc/fstab /mnt/root/@/etc/fstab.btrfs
    $ sudo mv /mnt/root/@/etc/fstab.ext4 /mnt/root/@/etc/fstab

  4. Deshabilitamos los puntos de montaje definidos, ya que Berryboot definirá los suyos.
    $ sudo sed -i 's/^\/dev\/mmcblk/#\0/g' /mnt/root/@/etc/fstab

  5. Creamos imagen convirtiendo a formato “squasfs” utilizado por Berryboot.
    $ sudo mksquashfs /mnt/root/@ XBian_1.0_Beta_1.1_berryboot.img -comp lzo -e lib/modules
    $ sudo umount /mnt
    $ sudo kpartx -dv XBian_1.0_Beta_1.1.img
  6. Una vez creada la imagen cambiamos el propietario de root a tu usuario y fijamos los permisos, pongamos que por ejemplo el usuario de tu equipo es “david” (cambiar por el tuyo).
    $ sudo chown -R david XBian_1.0_Beta_1.1_berryboot.img
    $ sudo chmod 664 XBian_1.0_Beta_1.1_berryboot.img
  7. Copiar la imagen en un pendrive y cargar en Berryboot, desde el menu de inicio, mantener pulsado el botón “Add”.

Arreglar xbian-config:

Al iniciar xbian-config no funciona, ni por SSH ni desde XBMC, hemos de actualizar a la última versión.

  1. Conectar a XBian por SSH.
  2. Realizar los siguientes pasos:
    $ sudo apt-get install git
    $ cd /home/xbian $ git clone --depth 5 https://github.com/xbianonpi/xbian-config-bash.git $ rm /usr/local/sbin/xbian-config $ rm -r /usr/local/include/xbian-config/* $ cd xbian-config-bash $ cp xbian-config /usr/local/sbin/ $ cp -R functions /usr/local/include/xbian-config/
    $ cp -R lang /usr/local/include/xbian-config/
    $ cp -R modules /usr/local/include/xbian-config/
    $ cp -R prereqs /usr/local/include/xbian-config/
    $ cp -R struct /usr/local/include/xbian-config/
    $ cp -R config /usr/local/include/xbian-config/
    $ cp etc/bash_completion.d/* /etc/bash_completion.d/
    $ cd /home/xbian/xbian-config-bash/gettext/
    $ msgfmt -o /usr/share/locale/en/LC_MESSAGES/xbian.mo xbian.po
    $ echo 'APT::Update::Post-Invoke-Success {"touch /var/lib/apt/periodic/update-success-stamp 2>/dev/null || true";};' > /etc/apt/apt.conf.d/15update-stamp
  3. Listo, reiniciar y probar.

Configuración de Overclocking en Berryboot

  1. En el menú de inicio de Berryboot, pulsamos el botón “Edit” para ir al editor de menú
  2. Pulsamos sobre el botón “>>” que hay junto al botón “Exit”, nos aparecerán más opciones
  3. Pulsamos en el botón “Edit config” y se nos abrirá una ventana con el editor de configuración donde aparecen los ficheros que se utilizan para pasar opciones a la Raspberry al iniciar el sistema
  4. Vamos a la pestaña “config.txt” y añadimos las siguientes líneas antes de las opciones kernel e initramfs definidas por defecto: Opciones de Overclocking
    Prevenir corrupcion de la tarjeta SD por overclocking
    boot_delay=4 # segundos a esperar antes de arrancar el sistema
    initial_turbo=45 # segundos a esperar antes de iniciar overclocking
    arm_freq=950 # Mhz de frecuencia maxima del microprocesador
    arm_freq_min=700 # Mhz de frecuencia minima del microprocesador
    over_voltage=4 # aumentar el voltaje para incrementar la frecuencia del microprocesador
    core_freq=400 # frecuencia máxima del core de GPU afecta a la cache L2
    core_freq_min=250 # frecuencia mínima del core de GPU afecta a la cache L2
    gpu_freq=450 # frecuencia máxima de toda la GPU del microprocesador
    gpu_freq_min=250 # frecuencia mánima de toda la GPU del microprocesador
    sdram_freq=450 # frecuencia máxima de la memoria RAM
    sdram_freq_min=400 # frecuencia mínima de la memoria RAM
  5. Listo, pulsamos el botón “OK” para guardar y luego “Exit” para reiniciar.
  6. Para verificar que la configuración se carga correctamente, al iniciar XBian, conectar por SSH e introducir el siguiente comando para comprobar la frecuencia del procesador:
    $ /opt/vc/bin/vcgencmd measure_clock arm
    Al igual que hemos usado “arm”, puedes usar los siguientes argumentos para más comprobaciones de frecuencia: [arm|core|h264|isp|v3d|uart|pwm|emmc|pixel|vec|hdmi|dpi]