Linux su FPGA Xilinx



Похожие документы
Tale attività non è descritta in questa dispensa

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

IRSplit. Istruzioni d uso 07/10-01 PC

Il web server Apache Lezione n. 3. Introduzione

Terza lezione: Directory e File system di Linux

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Guida all uso di Java Diagrammi ER

STRUMENTO PER LA COMPRESSIONE E LA CRIPTAZIONE DI FILE

Guida all installazione di Easy

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

BMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC

Installazione e caratteristiche generali 1

Installazione del Software. per lo Sviluppo di Applicazioni Java

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Sistema Operativo di un Router (IOS Software)

Istruzioni di installazione di IBM SPSS Modeler Text AnalyticsServer per Windows

NAL DI STAGING. Versione 1.0

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Il Sistema Operativo (1)

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Introduzione. Installare EMAS Logo Generator

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

MODEM USB MDC525UP Guida Rapida LINUX

Sharpdesk V3.3. Guida all installazione Versione

Sistema operativo: Gestione della memoria

SCARICO DATI ONETOUCH Verio per EuroTouch Home GUIDA ALL USO

INFO TECNICA SATO Italia

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Mac Application Manager 1.3 (SOLO PER TIGER)

Moduli di Fatturazione Elettronica

Modello per la compilazione della scheda progetto SK_2.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Carta Multiservizi REGIONE BASILICATA

Setup e installazione

CERTIFICATI DIGITALI. Manuale Utente

per interventi strutturali di rafforzamento locale o di miglioramento sismico, - art. 2, comma 1, lettere b) e c) -

Programmazione Orientata agli Oggetti in Linguaggio Java

Versione 2.0. Manuale d uso. Software per la gestione. degli applicativi Bticino. TiManager 03/07-01 PC

Il Software. Il software del PC. Il BIOS

SquashFS, AuFS ed i segreti delle distribuzioni live

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

Acronis Universal Restore

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

GROUP POLICY MANAGEMENT CONSOLE (ACTIVE DIRECTORY)

Installazione LINUX 10.0

Manuale per la configurazione di AziendaSoft in rete

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Printer Driver. Questa guida descrive l installazione dei driver stampante per Windows Vista e Windows XP.

Guida all installazione FirmaOK!gold

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

2015 PERIODO D IMPOSTA

SW Legge 28/98 Sommario

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

GateManager. 1 Indice. tecnico@gate-manager.it

Intel One Boot Flash Update Utility Guida dell utente

Dispositivo Firma Digitale

ARCHIVIAZIONE DOCUMENTI

Abilitazione e uso del protocollo EtherTalk

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Sharpdesk V3.3. Guida all installazione Versione

Multisentry ASE-V (v. 1.0) - Guida rapida all installazione

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Preparazione di una immagine di Windows XP per la distribuzione

Breve guida a Linux Mint

Laboratorio di Informatica

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

MANUALE PARCELLA FACILE PLUS INDICE

NOTA: NON PROVARE A INSTALLARE IL SOFTWARE PRIMA DI AVERE LETTO QUESTO DOCUMENTO.

Introduzione a Dev-C++

Seminari Acmesystems. NerInformatica. Relatore : Luciano Neri. Ingegnere libero professionista Ordine degli Ingegneri di Vicenza

ARCHIVIA PLUS VERSIONE SQL SERVER

01/05/2013 Istruzioni per l installazione

Manuale Operativo per la firma digitale


IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

ArubaKey. Installazione

Office 2007 Lezione 09. Contenuto riutilizzabile

Uso di Norton Ghost Come si usa Norton Ghost 2003 per il backup di sistema

Programma per l elaborazione delle buste paga. dei collaboratori domestici VERSIONE /07/2010

The Enterprise Service BUS. Manuale utente - VulCon

Транскрипт:

Linux su FPGA Xilinx Paolo Palana University of Rome Tor Vergata System Programming Research Group palana@sprg.uniroma2.it Corso interdottorato su sistemi embedded Paolo Palana (SPRG) Linux su FPGA Xilinx 1 / 37

Outline 1 Scopo della lezione 2 MicroBlaze Linux Cosa serve Requisiti minimi Hardware 3 Dalla teoria alla pratica Come utilizzare il Device Tree Generator Come ottenere ed installare la Toolchain Come ottenre e configurare il kernel Compilare il kernel initramfs Paolo Palana (SPRG) Linux su FPGA Xilinx 2 / 37

Scopo della lezione Scopo della lezione Lo scopo di questa lezione è quello di illustrare come generare una piattaforma basata su FPGA che sia in grado di eseguire Linux Paolo Palana (SPRG) Linux su FPGA Xilinx 3 / 37

MicroBlaze Linux Quale processore? Per eseguire un sistema operativo è necessario un processore Un FPGA, senza adeguata programmazione non lo è in realtà un FPGA senza una adeguata programmazione non è niente I maggiori vendor di FPGA mettono a disposizione delle Intellectual Property (IP) che consentono di programmare, in maniera semplice, un FPGA in maniera tale che sia in grado di comportarsi come un processore La Xilinx mette a disposizione Microblaze Paolo Palana (SPRG) Linux su FPGA Xilinx 4 / 37

MicroBlaze Linux Microblaze Caratteristiche salienti Architettura RISC a 32 bit 32 registri general pourpose Fino a qualche tempo fa non era presente una Memory Management Unit (MMU) Paolo Palana (SPRG) Linux su FPGA Xilinx 5 / 37

MicroBlaze Linux Quale Linux? La frase... in grado di eseguire Linux è molto generica: Esistono decine e decine di incarnazioni di Linux (anche se strettamente parlando Linux è solo ed esclusivamente il kernel) che comunemente chiamiamo distribuzioni Tipicamente ogni distribuzione ha le sue caratteristiche Nella scorsa edizione è stato illustrato come installare Petalinux. In questa edizione si vedrà come installare e configurare MicroBlaze Linux (http://xilinx.wikidot.com/microblaze-linux) Paolo Palana (SPRG) Linux su FPGA Xilinx 6 / 37

MicroBlaze Linux Cosa serve Cosa serve... Per ottenere una immagine di Linux che sia in grado di essere eseguita su MicroBlaze servono i seguenti tre strumenti software: il device tree generator la toolchain il kernel Paolo Palana (SPRG) Linux su FPGA Xilinx 7 / 37

MicroBlaze Linux Cosa serve Il Device Tree Generator È un tool fornito dalla Xilinx per l EDK Si integra in XPS ampliando le normali funzionalità di auto-generazione del board support package (bsp) Lo scopo del Device Tree Generator è quello di creare un Device Tree File (xilinx.dts) contenente le informazioni relative al progetto per cui viene generato. Come ottenere maggiorni informazioni e dove scaricare il Device Tree Generator http://xilinx.wikidot.com/device-tree-generator Paolo Palana (SPRG) Linux su FPGA Xilinx 8 / 37

MicroBlaze Linux Cosa serve Cos è il Device Tree? È una struttura dati costituita da: Nodi organizzati ad albero Ogni nodo ha esattamente un nodo padre Ogni nodo ha delle proprietà e i loro relativi valori Paolo Palana (SPRG) Linux su FPGA Xilinx 9 / 37

MicroBlaze Linux Cosa serve Qual è la particolarià del Device Tree? Descrive la struttura hardware del nostro sistema da un punto di vista: Strutturale: CPU Memoria Periferiche Della configurazione: Parametri del kernel Nomi dei device Paolo Palana (SPRG) Linux su FPGA Xilinx 10 / 37

MicroBlaze Linux Cosa serve Un esempio di nodo in un Device Tree File...... microblaze_0: cpu@0 { clock-frequency = <125000000>;... d-cache-baseaddr = <0x90000000>; d-cache-highaddr = <0x9fffffff>; d-cache-line-size = <0x10>;... device_type = "cpu";...... } Paolo Palana (SPRG) Linux su FPGA Xilinx 11 / 37

MicroBlaze Linux Cosa serve Cos è una Toolchain In generale per Toolchain si intende un insieme di tool di programmazione che vengono utilizzati per generare altri programmi. Componenti tipici di una Toolchain sono: compilatore assemblatore linker Essendo fortemente dipendente dall architettura vi è una Toolchain per ogni differente architettura. GNU Toolchain per Microblaze http://xilinx.wikidot.com/mb-gnu-tools Paolo Palana (SPRG) Linux su FPGA Xilinx 12 / 37

MicroBlaze Linux Cosa serve Come ottenere il kernel di MicroBlaze Linux? L architettura MicroBlaze è stata accettata all interno della mainline del kernel di Linux a partire dalla versione 2.6.31. Dove reperire informazioni riguardo al kernel per Microblaze http://xilinx.wikidot.com/microblaze-linux MicroBlaze Linux non supporta sistemi senza MMU Paolo Palana (SPRG) Linux su FPGA Xilinx 13 / 37

MicroBlaze Linux Requisiti minimi Hardware Requisiti minimi Affinchè sia possibile eseguire un sistema Linux la piattaforma hardware che bisogna creare deve includere: 1 CPU (Xilinx fornisce Microblaze) 2 MMU in virtual mode e due memory protection zones 3 Timer 4 Controller delle interruzioni 5 Supporto per la porta seriale (console) Paolo Palana (SPRG) Linux su FPGA Xilinx 14 / 37

Come utilizzare il Device Tree Generator Usare il Device Tree Generator (1/4) È Possibile reperire il Device Tree Generator direttamente dal repository git della Xilinx (git://git.xilinx.com/device-tree.git) Come scaricare il Device Tree Generator git clone git://git.xilinx.com/device-tree.git Per utilizare il Device Tree Generator è necessario copiare la cartella bsp nella top directory del progetto per il quale si intende usare tale tool Usare il Device Tree Generator cp -r bsp <path to project>/ Se il progetto in questione è già aperto in XPS è necessario chiudere e riaprire il programma per rendere visibili le modifiche. Paolo Palana (SPRG) Linux su FPGA Xilinx 15 / 37

Come utilizzare il Device Tree Generator Usare il Device Tree Generator (2/4) Per capire se il Device Tree Generator è già in uso per un progetto: Aprire xps Cliccare sul menu Software >Software Platform Settings Apparirà quindi una schermata come quella riportata nella slide seguente Paolo Palana (SPRG) Linux su FPGA Xilinx 16 / 37

Come utilizzare il Device Tree Generator Usare il Device Tree Generator (3/4) Paolo Palana (SPRG) Linux su FPGA Xilinx 17 / 37

Come utilizzare il Device Tree Generator Usare il Device Tree Generator (4/4) Per rendere effettivo l utilizzo del Device Tree Generator Cliccare su device-tree quindi sul tasto Ok Per generare il Device Tree File Cliccare sul menu Software >Generate Libraries and BSP Alla fine del processo di generazione verrà creato un file xilinx.dts in <root_project>/microblaze_0/libsrc/device-tree_v0_00_x/ Paolo Palana (SPRG) Linux su FPGA Xilinx 18 / 37

Come ottenere ed installare la Toolchain Ottenere e configuarare la Toolchain per MicroBlaze Xilinx fornisce una versione pre-compilata della Toolchain di Microblaze e reperibile sempre presso il reporitory git della Xilinx (git://git.xilinx.com/xldk/microblaze_v1.0.git) Come scaricare la Toolchain git clone git://git.xilinx.com/xldk/microblaze_v1.0.git Paolo Palana (SPRG) Linux su FPGA Xilinx 19 / 37

Come installare la Toolchain Come ottenere ed installare la Toolchain Decomprimere il file scaricato tar jxpf mb_gnu_tools_bin.tar.bz Impostare correttamente le variabili di ambiente export PATH=<tool path>/microblaze-unknown-linux-gnu/bin:$path export CROSS_COMPILE=mb-linux- Paolo Palana (SPRG) Linux su FPGA Xilinx 20 / 37

Come ottenere il kernel Come ottenre e configurare il kernel Il kernel è scaricabile dal repository git della Xilinx (git://git.xilinx.com/linux-2.6-xlnx.git) Scaricare il kernel git clone git://git.xilinx.com/linux-2.6-xlnx.git Paolo Palana (SPRG) Linux su FPGA Xilinx 21 / 37

Come configurare il kernel Come ottenre e configurare il kernel La confiurazione del kernel avviene in maniera del tutto analoga a quanto avviene con altre piattaforme Avvio dell interfaccia di configurazione del kernel make ARCH=microblaze menuconfig Inoltre insieme al kernel viene fornito un file di configurazione di default Utilizzare il file di configurazione di default make ARCH=microblaze xilinx_mmu_defconfig Paolo Palana (SPRG) Linux su FPGA Xilinx 22 / 37

Come ottenre e configurare il kernel Alcune note sulla configurazione del kernel Alcuni parametri di configurazione del kernel devono contenere valori che corrispondono alla configurazione hardware del processore (ad esempio barrel shifter, moltiplicatori hardware) Questo perchè devono essere passate al compilatore le giuste opzioni per generare il giusto codice Questi parametri possono essere configurati selezionando Platform options dal menu principale di configurazione Paolo Palana (SPRG) Linux su FPGA Xilinx 23 / 37

Compilare il kernel Compilare il kernel Una volta ultimata la configurazione è necessario compilare il kernel Comando per compilare il kernel make ARCH=microblaze simpleimage.<dts file name> Si noti che <dts file name> è il nome del file generato dal Device Tree Generator, ma senza l estensione. Paolo Palana (SPRG) Linux su FPGA Xilinx 24 / 37

Compilare il kernel Alcune note sul processo di compilazione Il processo di compilazione cerca all interno della directory arch/microblaze/boot/dts il file.dts specificato e lo usa per configurare il codice Di conseguenza il file xilinx.dts generato precedemente deve essere copiato in arch/microblaze/boot/dts Il risultato del processo di compilazione è un file elf che può essere trocato nella directory arch/microblaze/boot il cui nome è simpleimage.<dts file name> Paolo Palana (SPRG) Linux su FPGA Xilinx 25 / 37

initramfs E le applicazioni? Fino a questo momento abbiamo solo visto come configurare, compilare e testare il kernel, ma: Alla fine del suo dovere il kernel lancia il processo init (init è il padre di tutti i processi) che non è parte del kernel Se non è presente il processo di avvio non va a buon fine e si ottiene un kernel panic Inoltre avere un sistema perfettamene funzionante ma senza alcuna applicazione utile con cui utilizzarlo è decisamente poco utile Quindi a questo punto la questione è: È possibile unire al kernel anche un ambiente user space?. Paolo Palana (SPRG) Linux su FPGA Xilinx 26 / 37

Ramfs e rootfs Dalla teoria alla pratica initramfs Il kernel Linux per MicroBlaze fa uso di un initramfs Cos è il ramfs? Ramfs è un semplice filesystem che esporta il meccanismo di caching proprio di Linux come un un filesystem interamente in ram. Cos è il rootfs? rootfs altro non è che un ramfs che non può essere smontato Paolo Palana (SPRG) Linux su FPGA Xilinx 27 / 37

initramfs initramfs l initramfs è un file in formato cpio (eventualmente compresso) che viene decompresso in fase di boot. Dopo la decompressione Il kernel controlla se nel rootfs è presente un file init Se si lo esegue (con pid 1). Init è responsabile per il resto dello startup del sistema Se no il processo di boot fallisce Paolo Palana (SPRG) Linux su FPGA Xilinx 28 / 37

initramfs Cosa contiene un initramfs (1/3) La Xilinx fornisce anche due initramfs pronti (vengono scaricati insieme al kernel) initramfs_minimal.cpio.gz: ramdisk senza il supporto alle librerie condivise initramfs_complete.cpio.gz: ramdisk con il supporto alle librerie condivise Nel seguito analizzeremo e modificheremo il file initramfs_minimal.cpio.gz Paolo Palana (SPRG) Linux su FPGA Xilinx 29 / 37

initramfs Cosa contiene un initramfs (2/3) Il fatto che il file termini con estensione.gz è chiaro indice del fatto che il file è stato compresso con gzip, quindi come prima cosa bisogna decomprirlo Decomprimere initramfs_minimal.cpio.gz gunzip initramfs_minimal.cpio.gz Il risultato della decompressione è un file initramfs_minimal.cpio Paolo Palana (SPRG) Linux su FPGA Xilinx 30 / 37

initramfs Cosa contiene un initramfs (3/3) Un file.cpio è un file costituito da un insieme di file e directory racchiusi in un singolo archivio. Quindi per vederer cosa è contenuto all interno di tali file è necessario aprire tale archivio Estrarre il contenuto del file initramfs_minimal.cpio cpio -iv < initramfs_minimal.cpio Contenuto del file initramfs_minimal.cpio bin dev etc init mnt proc sbin sys tmp var Come si può notare all interno dell archivio initramfs_minimal.cpio è presente una struttura di directory tipica di un filesystem Linux. Paolo Palana (SPRG) Linux su FPGA Xilinx 31 / 37

initramfs Note sul contenuto del file initramfs_minimal.cpio Contiene il file init Nella directory bin sono presenti i file eseguibili Nella directory /etc/init.d è presente un file rcs che contiene una serie di comandi che vengono eseguiti durante la fase di avvio del sistema operativo Paolo Palana (SPRG) Linux su FPGA Xilinx 32 / 37

initramfs Modificare il contenuto del file initramfs_minimal.cpio (1/2) Una volta estratto il contenuto dell archivio initramfs_minimal.cpio questo sarà normalmente utilizzabile, di conseguenza per apportare una qualsiasi modifica, come ad esempio aggiungere o rimuovere file eseguibili, sarà sufficiente copiare o rimuovere un file nella cartella desiderata. Una volta effettuate le modifiche è necessario ricreare l archivio cpio e quindi ricomprimerlo. Paolo Palana (SPRG) Linux su FPGA Xilinx 33 / 37

initramfs Modificare il contenuto del file initramfs_minimal.cpio (1/2) Ricreare l archivio cpio find. cpio -H newc -o >../initramfs.cpio Comprimere il file cpio creato gzip initramfs.cpio Paolo Palana (SPRG) Linux su FPGA Xilinx 34 / 37

initramfs Note sulla compressione di un initramfs e sull uso (1/2) Nel precedente esempio l archivio pcio è stato compresso utilizzando gzip come compressore. Tuttavia durante la configurazione del kernel è possibile configurare altri schemi in compressione, in particolare si posso utilizzare: gzip bzip2 LZMA LZO Sempre durante la fase di compressione sarà inoltre necessario specificare il nome dell initramfs da utilizzare (vedi slide seguente). Paolo Palana (SPRG) Linux su FPGA Xilinx 35 / 37

initramfs Note sulla compressione di un initramfs e sull uso (2/2) Paolo Palana (SPRG) Linux su FPGA Xilinx 36 / 37

initramfs Testare il kernel e le applicazioni Per testare l immagine del kernel senza dover configurare una memoria flash è possibile usare il tool xdm Scaricare l immagine del kernel sull FPGA xdm> connect mb mdm xdm> dow arch/microblaze/boot/simpleimage.<dts file name> xdm> run A questo punto se siamo (molto) fortunati il kernel dovrebbe avviarsi e mostrare l output su console seriale Paolo Palana (SPRG) Linux su FPGA Xilinx 37 / 37