Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo
El propósito de esta práctica de laboratorio es que el estudiante se familiarice con la configuración y el uso
de sistemas microprocesados como la Odroid-C4 o la Raspberry Pi 4B. Además, se espera que el estudiante
comprenda los conceptos de emulación y virtualización mediante diversos software. En cuanto a la
emulación, se plantea simular un sistema embebido completo, incluyendo placa base, microprocesador y
sistema operativo, basado en ARM, con el objetivo de replicar de manera virtual el funcionamiento de una
SBC Raspberry Pi. A través de esta práctica de laboratorio, se refuerza el conocimiento en la arquitectura
de hardware necesaria para el funcionamiento de dispositivos embebidos basados en ARM, así como se
proporcionan las bases experimentales y las herramientas necesarias para comprender a fondo estos
sistemas.
1. Para la instalación del sistema, se requiere tener instalado GIT en su equipo x86. Por favor instale
GIT siguiendo el enlace: https://github.com/git-guides/install-git
2. Defina una carpeta de trabajo para el sistema embebido a ser emulado. Se sugiere crear una
carpeta en la raíz del sistema, por ejemplo: C:\QEMU\. El nombre de la carpeta a ser usado puede
ser cualquiera de su preferencia, pero no debe contener espacios.
3. Ejecute una instancia del terminal del sistema (línea de comandos, o cmd, pero no usar Windows
PowerShell) en modo administrador, y apunte al directorio creado en el paso anterior. El comando
a ser usado es: cd C:\QEMU\
4. Una vez la línea de comandos se encuentre en el directorio de trabajo, proceda a clonar el
repositorio que contiene los archivos necesarios para crear la emulación del sistema embebido
usando la siguiente instrucción: git clone https://github.com/mandresve/RPi-QEMU
5. Al clonar el repositorio, automáticamente se crea una nueva carpeta llamada “RPi-QEMU” dentro
del directorio de trabajo. Si este no es el nombre de su carpeta, se sugiere renombrar el
directorio para que coincida exactamente con esta guía. Verificar que existan (al menos) los
archivos mencionados a continuación:
Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.
Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.
7. En el menú ejecutar de Windows (Windows+R), escriba y ejecute “sysdm.cpl” para abrir las
Propiedades del Sistema.
9. Ejecute una instancia del terminal del sistema (línea de comandos, o cmd, pero no usar Windows
PowerShell) en modo administrador, y verifique la correcta instalación de QEMU ejecutando el
siguiente comando: qemu-system-arm -version . Si todo quedó configurado correctamente, debería
ver un mensaje con la versión de QEMU actual y el copyright de los desarrolladores de QEMU.
10. Descargue el sistema operativo de la Raspberry Pi desde la página oficial:
https://www.raspberrypi.com/software/operating-systems/ Seleccione la versión “Raspberry Pi OS
with desktop”. Peso aproximado 900 MB.
14. Se convertirá la imagen IMG a una que pueda ser interpretada por QEMU (QCOW2). Ejecute el
siguiente comando en la misma terminal:
qemu-img convert -f raw -O qcow2 2023-12-05-raspios-bookworm-armhf.img
system.qcow2
De nuevo, es posible que tenga que reemplazar el nombre de la imagen de disco exactamente por
el que haya sido descomprimido en el paso 12.
15. Una vez tenga una imagen QCOW compatible, llamada “system.qcow2”, aplique el siguiente
comando, el cual aumentará su tamaño en 8GB: qemu-img resize system.qcow2 +8G .
16. Es hora de iniciar el sistema embebido completo. El comando a ejecutarse es uno solo, pero es
largo, ya que involucra todos los elementos que hemos construído anteriormente. Ejecutar en la
misma instancia del terminal usada anteriormente:
qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda "./system.qcow2"
-net nic -net user,hostfwd=tcp::5022-:22 -dtb "./versatile-pb.dtb" -
kernel "./qemukernel" -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw"
-no-reboot
¡Felicitaciones! Si los pasos se han seguido correctamente, tendrá una instancia virtual de una Raspberry
Pi corriendo en su sistema, donde se está virtualizando el procesador, la arquitectura de hardware y el
sistema operativo. Por defecto, el usuario es “pi” y la contraseña es “raspberry”. Si el sistema le pide
ingresar los datos de usuario y contraseña, por favor ingrese los mismos datos. No cambie esta
información de acceso ni la contraseña. Si el cursor ha sido “atrapado” por la máquina virtual, puede
presionar simultáneamente Ctrl-Alt-G para liberarlo.
Consultas:
En el área de microprocesadores:
8. ¿Qué es un archivo DTB y qué información contiene el archivo DTB? Remítase a la documentación
ARM e investigue acerca de “Device Tree Blob”. Describa sus características, propiedades,
información codificada, proceso de compilación, entre otros.
9. ¿Qué es un archivo DTS y qué información contiene el archivo DTS? Remítase a la documentación
de Linux. Describa sus características, propiedades, información codificada, proceso de
compilación, entre otros.
10. Consulte acerca del emulador QEMU. ¿Qué plataformas puede emular? ¿Qué diferencia hay entre
QEMU y virtualizadores como VirtualBox? ¿Qué sistemas basados en ARM pueden ser emulados
en QEMU?
11. Consulte y brinde detalles completos acerca del procesador usado en la emulación de la Rpi
(ARM1176). Brinde sus características técnicas, detalles de la arquitectura, entre otros.
12. Consulte y brinde detalles completos acerca de la placa base utilizada en la emulación, examine
el archivo versatile-pb.dtb para obtener más información, o consulte acerca de ARM Versatile
Platform Baseboard. Puede obtener más información en
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/versatile-
pb.dts
13. Consulte y explique los comandos de los pasos 13 y 14 en detalle, especialmente lo referente al
uso de qemu-img.
14. Consulte y brinde detalles acerca del formato QCOW2. ¿En qué diferencia de una imagen de disco
IMG? ¿Por qué se redimensiona el tamaño en 8GB a la imagen original?
15. Consulte acerca del comando qemu-system-arm ejecutado en el paso 16. Explique al detalle cada
uno de los argumentos suministrados en el comando del paso 16 que pone en marcha el sistema.
16. ¿Qué características tiene la Motherboard de desarrollo y prototipado ARM Versatile PB y por qué
se usa en este sistema de virtualización?
17. ¿Qué Raspberry Pi usan el núcleo ARM1176? ¿Cuánta cantidad de memoria RAM disponemos
en el sistema? ¿Cuántos núcleos de procesamiento?
Entregables:
1. Realice un informe de laboratorio, formato IEEE, que contenga las siguientes partes: Título,
resumen, introducción, desarrollo (la resolución de cada uno de los puntos de esta práctica,
complementando con análisis de resultados e imágenes de los procesos), conclusiones,
bibliografía en citación formato IEEE y preferiblemente en inglés.
2. Guarde este archivo únicamente en formato PDF como Practica1_Codigo.pdf.
3. Envíe por medio del aula virtual UPTC un solo único archivo en formato PDF con los resultados
pedidos anteriormente.