Está en la página 1de 6

Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.

Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.

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.

Material y Equipo Requerido


• Computador Personal y Conexión a Internet.
• Raspberry Pi 4B u Odroid-C4.
• Smartphone.
• Tarjeta microSD de al menos 16GB, Clase 10/U1/V10. Especificaciones recomendadas: 32GB,
Clase U3/V30.
• Cargador de 5V de al menos 3A con conexión USB-C (para la Raspberry Pi 4B).

Guía de Desarrollo parte 1 configuración de la tarjeta:


• Ingrese a la página de Raspberry Pi 4B https://www.raspberrypi.com/software/ o de Odroid-C4
https://wiki.odroid.com/getting_started/os_installation_guide#tab__odroid-c4hc4 y siga las
instrucciones para instalar un sistema operativo adecuado en la tarjeta SD, figura 1 y 2.

Figura 1 instrucciones de instalación sistema operativo Raspberry Pi OS usando Raspberry Pi


Imager.
Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.
Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.

Figura 2 instrucciones de instalación sistema operativo Odroid-C4 usando Balena Etcher.

• Configurar una IP fija en su tarjeta.


• Investigue cómo configurar una conexión SSH o VNC, y luego conecte remotamente la tarjeta a
su computador mediante SSH integrado en la línea de comandos, Putty o VNCviewer.

Guía de Desarrollo parte 2 Emulación:


1. Investigue emuladores disponibles para su 1. Su computador, 2. Su smartphone y elija uno por
cada uno.
2. Descargue e instale el software necesario para realizar una emulación en cada plataforma.
3. Ejecute un software para cada dispositivo, demostrando que la emulación funciona.
4. Documente todo el proceso de emulación detalladamente en su informe.

Guía de Desarrollo parte 3 Virtualización:


1. Elija un sistema operativo que pueda ejecutar mediante virtualización utilizando una maquina
virtual en su tarjeta, y elija otro SO basado en Linux que pueda virtualizar en su computador.
2. Configure e implemente la virtualización del sistema operativo elegido.
3. Ejecute un software para el dispositivo elegido, demostrando que la virtualización funciona.
4. Documente todo el proceso de virtualización detalladamente en su informe.

Guía de Desarrollo parte 4 Emulación de ARM utilizando QEMU:

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.

• ImageArm1176 → Virtualización del SoC ARM1176JZF-S producido por Fujitsu.


• Rpi_0.xml y libvirt-qemu.txt→ Configuraciones de QEMU para la emulación
• Qemukernel → Bootloader de Linux para QEMU
• versatile-pb.dtb → Chipset virtualizado para QEMU basado en ARM926EJ-S
6. Prepararemos el sistema para instalar QEMU. Asegúrese de tener al menos 16 GB de espacio
libre en el disco duro / unidad de almacenamiento masivo antes de continuar. Se sugiere una
conexión a internet alámbrica para mayor estabilidad en el proceso de descarga. Descargue el
ejecutable de QEMU usando la página oficial: https://www.qemu.org/download/. Si su sistema
operativo es Windows, por favor elija el instalador de 64 bits. Si desea descargar el archivo
recomendado para la instalación de QEMU, puede seguir este link directo:
https://qemu.weilnetz.de/w64/qemu-w64-setup-20220825.exe Instale QEMU siguiendo los pasos
del instalador. No cambie la ruta de instalación, generalmente es C:\Program Files\qemu\.

7. En el menú ejecutar de Windows (Windows+R), escriba y ejecute “sysdm.cpl” para abrir las
Propiedades del Sistema.

8. En la pestaña Opciones Avanzadas, seleccione el botón Variables de Entorno... En el cuadro de


diálogo de Variables de Entorno, en la sección Variables del sistema localice la entrada llamada
Path. Una vez localizada, selecciónela y haga click en Editar… En Valor de la variable, al final de
la línea, agregue lo siguiente ;C:\Program Files\qemu\
Tenga en cuenta que es indispensable el punto y coma (;) antes de la ruta, esto es para separar
esa variable de otras ya existentes en el sistema. Acepte todos los cambios en los diálogos
abiertos.
Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.
Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.

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.

11. La descarga es un archivo .img.XZ. Por ejemplo: “2023-12-05-raspios-bookworm-armhf.img.xz”


Asegúrese que sea el archivo que tiene el nombre “armhf.img.xz”. Esto indica que es una imagen
compatible con un procesador ARM. Una vez concluida la descarga, descomprima el archivo
usando WinRAR o 7z. Luego de descomprimir, tendrá una imagen de disco, formato img.
12. La imagen de disco del sistema operativo, probablemente “2023-12-05-raspios-bookworm-
armhf.img”, cópiela en la carpeta clonada del paso 5, por ejemplo: C:\QEMU\RPi-QEMU\
13. Es hora de verificar la imagen del sistema operativo. Ejecute una instancia del terminal del sistema
(línea de comandos, o cmd, pero no usar Windows PowerShell) en modo administrador, y
escriba:
cd C:\QEMU\RPi-QEMU\ (o su ruta exacta) para trabajar en la carpeta clonada. A continuación,
ejecute: qemu-img info 2023-12-05-raspios-bookworm-armhf.img. Es posible que
deba reemplazar el nombre exacto de la imagen del paso anterior en el comando a ser ejecutado.
Si la verificación es exitosa, el comando devolverá el tamaño de la imagen, y el formato “RAW”
aparecerá en pantalla.
Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.
Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.

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:

1. ¿Qué es emulación y virtualización? Haga un paralelo comparativo entre ambas técnicas.


2. ¿Qué requisitos necesita un sistema microprocesado para realizar una virtualización?
3. ¿Qué utilidad tiene la virtualización y la emulación?, describa detalladamente algunos ejemplos en
ambos casos.
4. ¿Cómo funciona la emulación y la virtualización?
5. ¿Qué es, para que y por qué se utiliza Rosetta y Rosetta 2?
6. ¿Cuáles son los tipos de emulación y los tipos de virtualización?, descríbalos detalladamente en
cada caso.
7. ¿Para que se usa la virtualización en la Deep web?
Laboratorio 1 -Microprocesadores Manuel Andrés Vélez Guerrero, Ph.D.
Tema: Emulación y virtualización Oscar Humberto Sierra Herrera, M.Eng.

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.

También podría gustarte