Paso 3: Instalar Linux en el mundo
Es hora de configurar Linux en el procesador del brazo de la Zynq. Por razones prácticas, desea que el sistema en una tarjeta micro SD. Este paso debe ser completado en un sistema operativo basado en Linux.
Para este paso, usted necesitará el primer BootLoader de etapa y el bitstream de mundo compilado en el paso 1.
Pero antes de comenzar, vamos a dar algunas explicaciones.
El bitstream que se ha compilado contiene el configutaion de la lógica programable de la Zynq. Como queremos utilizar el procesador del brazo del sistema de procesamiento de la Zynq, también tenemos que configurarlo como para lanzar un sistema operativo basado en Linux al arrancar. El primer BootLoader etapa será el primer programa ejecutado y será inicializar recursos del procesador (relojes y memoria) para que pueda cargar un bootloader mayor. Este segundo y más grande gestor de arranque U-Boot, es responsable de cargar y ejecutar el kernel de Linux. El kernel de Linux tendrá su sistema de archivos para trabajar. Por simplicidad, este sistema de archivos se cargarán en la memoria RAM de la Zynq.
Para compilar el U-Boot, descargar las fuentes en github utilizando los siguientes comandos:
- git clone https://github.com/Xilinx/u-boot-xlnx.git
- git checkout e2d21cedaa70356fa2f45729d9401933c9c0cfd4
- Entrar en la carpeta de U-Boot y tipo:
- hacer zynq_zybo_defconfig
- hacer
Para compilar el kernel de linux, descargar primero las fuentes:
- git clone https://github.com/Xilinx/linux-xlnx.git
- git checkout 7ad8e6023d969336961312ef751228cbb8874752
- Antes de compilar, debe reemplazar el archivo .config por el archivo linux-config. Después, escribe los siguientes comandos:
- hacer menuconfig
- hacer
- Después de escribir el primer comando, pulsar ESC para salir de la configuración del kernel. La ejecución del segundo mando tomará unos minutos.
Para generar el initramfs (imagen comprimida del sistema de archivos de Linux), necesita Buildroot:
- git clone git://git.buildroot.net/buildroot
- git checkout b8a8ecd43b81fc2fda90ce24be8914a074fa5fd5
- Necesita reemplazar el archivo busybox-config por el dado. También debe reemplazar el archivo .config de la buildroot-configuración del archivo dado. Se debe modificar este nuevo archivo .config que corresponden a su entorno. Esas dos líneas tenga que sustituirse:
- BR2_TOOLCHAIN_EXTERNAL_PATH = "/ opt/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux"
- BR2_PACKAGE_BUSYBOX_CONFIG = "/ home/orcad/UVF12B501/Zybo/buildroot/busybox-config"
- Para la primera línea, escriba la ruta de la carpeta que contiene el brazo cruzado compilador.
- Para la segunda línea, escriba la ruta que el archivo busybox-config de la carpeta buildroot.
- Luego, se escribe "hacer".
Esta parte es opcional. Permitirá Linux para montar sus aplicaciones y drivers y configurar automáticamente.
- Vas en la carpeta Buildroot, entras en la carpeta /target/, se debe ver el sistema de archivo generado.
- Puede modificar el archivo etc/init.d/rcS y añadir estas líneas al final:
- mount/dev/mmcblk0p2/mnt
- fuente /mnt/load.sh
- Luego escribe "volver", sus modificaciones se tendrán en cuenta.
Ahora generamos los ficheros de arranque. Usted tendrá que descargar el archivo Makefile bootgen y cámbiele el nombre Makefile. En la misma carpeta, será descargar los archivos zynq-zybo.dts y bootimage.bif. Copiar el FSBL en el directorio de trabajo y cambiar el nombre de zynq_fsbl.elf. Copie el archivo u-boot desde el directorio de u-boot y cambie en u-boot.elf. Copie el archivo zImage de la carpeta de linux git (arco/brazo/boot/zImage). Copien el ramfs directorio buildroot (es output/images/rootfs.cpio.uboot) y cambiar el nombre de uramdisk.image.gz. Tras iniciar la generación de archivos de arranque con un "hacer". Luego solo se cambia el nombre el archivo output.bin en BOOT.bin y uImage.bin en uImage.