Configuración de Sistemas Personalizados en OpenBMC con QEMU

Este artículo detalla el proceso para integrar un nuevo sistema personalizado dentro del framework de simulación de OpenBMC, utilizando QEMU para la emulación.

Creación del Archivo de Metadatos del Sistema

El primer paso consiste en definir los metadatos para su sistema. Siga las directrices proporcionadas en la documentación oficial de OpenBMC, específicamente la sección sobre la creación de nuevos sistemas, para establecer su archivo de configuración de máquina.

Compilación del Sistema con Bitbake

Una vez definidos los metadatos, proceda a compilar la imagen del sistema:

  1. Inicialice el entorno de compilación con los scripts de OpenBMC. Ejecute el siguiente comando en la raíz del repositorio de OpenBMC: ``` source openbmc/setup-environment.sh build
  2. Navegue al directorio de compilación de su sistema personalizado. Por ejemplo, si su sistema se llama 'my-custom-board': ``` cd build/my-custom-board
  3. Inicie el proceso de compilación para la imagen deseada. Para una imagen de sistema estándar, use: ``` bitbake obmc-phosphor-image
    
    

Resolución de Errores Comunes de Compilación

Durante la compilación inicial, es probable que encuentre errores debido a configuraciones faltantes o desactualizadas. Un error típico podría parecerse a:

ERROR: Task (/path/to/meta-custom/recipes-kernel/linux/linux-custom_git.bb:do_compile) failed with exit code '1'
   NOTE: Tasks Summary: Attempted 2500 tasks of which 2498 didn't need to be rerun and 1 failed.
   

Para solventar problemas relacionados con la configuración del kernel y los árboles de dispositivos, puede ser necesario ajustar el archivo de configuración de la máquina. Modifique el archivo de configuración de su máquina (ej. meta-custom/conf/machine/my-custom-board.conf) para asegurar que la ruta del árbol de dispositivos sea correcta. Por ejemplo, podría necesitar cambiar:

# Configuración original
   # KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-custom.dtb"

   # Configuración corregida para usar un árbol de dispositivos específico
   KERNEL_DEVICETREE = "my-custom-board-bmc-opp.dtb"
   

Es posible que también nceesite añadir la ruta de sus archivos de confgiuración específicos al FILESEXTRAPATHS. Modifique el archivo recipes-core/images/obmc-phosphor-image.bb o similar para incluir:

FILESEXTRAPATHS:prepend:my-custom-board := "${THISDIR}/${PN}:"
   SRC_URI:append:my-custom-board = " file://my_custom_board.cfg"
   

Después de realizar estos ajustes, reanude la compilación. Si la compilación se completa sin errores, podrá proceder al siguiente paso.

Ejecución de la Simulación con QEMU

Una vez que la imagen se ha compilado exitosamente, puede iniciar la simulación en QEMU. Asegúrese de estar en el directorio de compilación de su sistema y ejecute el siguiente comando:


sudo qemu-system-arm \
   -m 256 \
   -M my-custom-board-bmc \
   -nographic \
   -drive file=./tmp/deploy/images/my-custom-board/obmc-phosphor-image-my-custom-board.static.mtd,format=raw,if=mtd \
   -net nic,model=virtio \
   -net user,hostfwd=:192.168.0.100:2222-:22,hostfwd=:192.168.0.100:8443-:443,hostname=qemu
   

Tras la ejecución de QEMU, se iniciará el sistema emulado y se le presentará un prompt de inicio de sesión:

Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro) nodistro.0 my-custom-board ttyS4

   my-custom-board login: 

Etiquetas: openbmc qemu emulation bitbake embedded linux

Publicado el 7-23 13:25