Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:emdebian:phycore-mpc5200b [2015-04-28 14:26] grafsoftware:linux:emdebian:phycore-mpc5200b [2016-11-21 10:17] (aktuell) ditaranto
Zeile 1: Zeile 1:
-====== Installation von Emdebian Grip auf den Phytec phyCORE-MPC5200B ======+====== Installation von Emdebian Grip oder Buildroot-FS auf den Phytec phyCORE-MPC5200B ======
  
 Die folgende Anleitung erklärt die Installation von [[:Software:Linux:Emdebian:start]] Grip (Wheezy) auf den [[:Embedded Systems:MPC5200:phyCORE-MPC5200B-tiny:start]] oder [[:Embedded Systems:MPC5200:phyCORE-MPC5200B-IO:start]] von Phytec. Die folgende Anleitung erklärt die Installation von [[:Software:Linux:Emdebian:start]] Grip (Wheezy) auf den [[:Embedded Systems:MPC5200:phyCORE-MPC5200B-tiny:start]] oder [[:Embedded Systems:MPC5200:phyCORE-MPC5200B-IO:start]] von Phytec.
  
 <box blue right 38% | **Downloads**> <box blue right 38% | **Downloads**>
-  * {{.:phytec:uImage | Kernel Image (3.19 7.April 2015)}} +  * https://github.com/ntb-ch/linux-phycore-mpc5200b.git 
-  * {{.:phytec:rfs.jffs2 | Root-Filesystem (9.Okt.2014)}} +In diesem Verzeichnis befindet sich auch ein bereits compilierter Kernel, ein fertiges Root-Filesystem, ein DeviceTree Blob und ein uBoot-Image.
-  * {{.:phytec:oftree-ntbc32.dtb | Device Tree Blob für io und C32 (23.Sept.2014)}} +
-  * {{.:phytec:u-boot-pcm032.bin | U-Boot Image (von Phytec)}}+
 </box> </box>
  
Zeile 17: Zeile 15:
   * Wir verwenden einen Standardkernel. Dieser muss gepatcht werden. Der Patch, die angepasste Kernelkonfiguration, die angepassten Device Tree Files und das u-Boot Image können alle aus einem eigenen Repository unter <code>https://github.com/ntb-ch/linux-phycore-mpc5200b.git</code> geholt werden.    * Wir verwenden einen Standardkernel. Dieser muss gepatcht werden. Der Patch, die angepasste Kernelkonfiguration, die angepassten Device Tree Files und das u-Boot Image können alle aus einem eigenen Repository unter <code>https://github.com/ntb-ch/linux-phycore-mpc5200b.git</code> geholt werden. 
  
-===== Root-Filesystem erstellen =====+===== Root-Filesystem erstellen (Emdebian) =====
 Wir benutzen Multistrap für das Root-Filesystem gemäss Anleitung: [[software:linux:emdebian:rootfs_erstellen|Root-Filesystem erstellen]].  Wir benutzen Multistrap für das Root-Filesystem gemäss Anleitung: [[software:linux:emdebian:rootfs_erstellen|Root-Filesystem erstellen]]. 
   * Multistrap-Konfiguration: <file - phycorempc5200b.multistrap>   * Multistrap-Konfiguration: <file - phycorempc5200b.multistrap>
Zeile 88: Zeile 86:
   * Dateisystemabbild erzeugen (zuvor unnötige Verzeichnisse löschen, siehe [[software:linux:emdebian:rootfs_erstellen|Root-Filesystem]], damit das Root-Filesystem in der Partition Platz hat): <code># mkfs.jffs2 -n -e 0x40000 -p 0x40000 -b -d /opt/multistrap -D device_table -o emdebian-wheezy-grip-phycore-mpc5200b.jffs2</code>   * Dateisystemabbild erzeugen (zuvor unnötige Verzeichnisse löschen, siehe [[software:linux:emdebian:rootfs_erstellen|Root-Filesystem]], damit das Root-Filesystem in der Partition Platz hat): <code># mkfs.jffs2 -n -e 0x40000 -p 0x40000 -b -d /opt/multistrap -D device_table -o emdebian-wheezy-grip-phycore-mpc5200b.jffs2</code>
  
-===== Neuen Kernel compilieren ===== +===== Root-Filesystem erstellen (Buildroot) ===== 
-  - Zuerst müssen alle Tools installiert sein, siehe unter [[..:ubuntu:crosstoolchain:start | Anleitung für Ubuntu]] oder [[.:cross-toolchain | Anleitung für Debian]]. Insbesondere muss GCC und die nCurses Bibliothek vorhanden sein.   +Siehe [[software:linux:buildroot:start | allgemeine Anleitung Buildroot]]. 
-  - Kernel-Source-Code herunterladen z.B. mit: <code> git clone https://github.com/torvalds/linux </code> + 
-  - NTB MPC5200 Daten holen mit:  <code> git clone https://github.com/ntb-ch/linux-phycore-mpc5200b</code> +===== Neuen Kernel compilieren (v3.19, ohne Real-time) ===== 
-  - Ins Kernel Verzeichnis wechseln und die entsprechende Version auschecken: <code> git chekout v3.19 </code> +Siehe [[software:linux:phycore-mpc5200b:kernel_v3_19 | Anleitung für v3.19]]
-  - Patch in die Kernel Wurzel kopieren<code> cp ../linux-phycore-mpc5200b/kernel/jffs2.patch . </code> + 
-  - Jffs2 Patch anwenden<code>patch -p1 < ../jffs2.patch</code> + 
-  - Notwendige Variable definieren <code>export ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-</code>  +===== Neuen Real-time-Kernel compilieren (v4.1.15-rt17+) ===== 
-  - Defaultkonfiguration aus //linux-phycore-mpc5200b.git// nach //.config// in Wurzelverzeichnis kopieren. <code> cp ../linux-phycore-mpc5200b/kernel/linux-3.19/defconfig .config </code> +Siehe [[software:linux:phycore-mpc5200b:kernel_v4_4_15rt Anleitung für v4.1.15 Real-Time]].
-  - Kernel konfigurieren (siehe [[software:linux:linux-kernel_crosscompilieren|Linux-Kernel crosscompilieren]])<code> make menuconfig </code> +
-    - Dann kann gemäss [[software:linux:linux-kernel_crosscompilieren|Linux-Kernel crosscompilieren]] die Konfiguration überprüft (''make menuconfig'') und der Kernel mit ''make uImage'' übersetzt werden.+
  
 ===== Device Tree Blob  ===== ===== Device Tree Blob  =====
Zeile 106: Zeile 102:
  
 ===== Installation vorbereiten ===== ===== Installation vorbereiten =====
-Für die Installation auf dem phyCORE-MPC5200B müssen die benötigten Dateien auf einem TFTP-Server bereit gestellt werden. Am NTB kann hierfür der FTP-Server des INF-Instituts verwendet werden: [[\\inf04-server.ntb.ch\ftp\pub\ | inf04-server.ntb.ch]]((Bitte Unterordner mit dem eigenen Benutzernamen erstellen. Dateien und Ordner, die ausserhalb dieses Ordners erstellt werden, werden ohne Vorwarnung wieder gelöscht!)). Anstatt das Root-FS und den Kernel selbst zu erstellen, können auch die in der Box "Download" bereitgestellten Dateien verwendet werden.+Für die Installation auf dem phyCORE-MPC5200B müssen die benötigten Dateien auf einem TFTP-Server bereit gestellt werden. Am NTB kann hierfür der FTP-Server des INF-Instituts verwendet werden: [[\\inf004.ntb.ch\ftp\pub\ | inf004.ntb.ch]]((Bitte Unterordner mit dem eigenen Benutzernamen erstellen. Dateien und Ordner, die ausserhalb dieses Ordners erstellt werden, werden ohne Vorwarnung wieder gelöscht!)). 
  
-Falls auf dem Board kein Bootloader mehr installiert ist (z.B. weil es mit [[:Software:deep:start]] vewendet wurde), muss erst [[:software:linux:U-Boot]] wieder installiert werden. Dazu wird das {{.:phytec:u-boot-pcm032.bin | U-Boot Image}} mittels [[:Embedded Systems:Abatron BDI:start | BDI2000 oder BDI3000]] ins Flash kopiert. Achtung: Neuere Kernel benötigen mindestens UBoot 1.3.2.+Falls auf dem Board kein Bootloader mehr installiert ist (z.B. weil es mit [[http://deepjava.org/|deep]] vewendet wurde), muss erst [[:software:linux:U-Boot]] wieder installiert werden. Dazu wird das {{.:phytec:u-boot-pcm032.bin | U-Boot Image}} mittels [[:Embedded Systems:Abatron BDI:start | BDI2000 oder BDI3000]] ins Flash kopiert. Achtung: Neuere Kernel benötigen mindestens UBoot 1.3.2.
  
 Dazu folgende Befehle im BDI eingeben:  Dazu folgende Befehle im BDI eingeben: 
Zeile 178: Zeile 174:
     - <code>setenv bootargs console=ttyPSC0,115200 rw root=/dev/mtdblock2 rw rootfstype=jffs2</code>     - <code>setenv bootargs console=ttyPSC0,115200 rw root=/dev/mtdblock2 rw rootfstype=jffs2</code>
     - <code>setenv bcmd_flash bootm 0xfe040000 - 0xfff80000</code>     - <code>setenv bcmd_flash bootm 0xfe040000 - 0xfff80000</code>
 +    - <code>saveenv</code>
  
 ===== Installation testen ===== ===== Installation testen =====
Zeile 186: Zeile 183:
   -Cross Toolchain installieren [[.:cross-toolchain | Anleitung für Debian]].   -Cross Toolchain installieren [[.:cross-toolchain | Anleitung für Debian]].
   -Tools installieren<code> sudo apt-get install git make cmake </code>   -Tools installieren<code> sudo apt-get install git make cmake </code>
-  -EEROS clonen:<code> git clone ssh://username@inf05-server.ntb.ch/git/projects/eeros.git </code>+  -EEROS clonen:<code> git clone https://github.com/eeros-project/eeros-framework.git </code>
   -Zum develop branch wechseln: <code>cd eeros    -Zum develop branch wechseln: <code>cd eeros 
 git checkout develop</code> git checkout develop</code>
Zeile 217: Zeile 214:
  
 ===== FPGA vom Prozessor aus laden ===== ===== FPGA vom Prozessor aus laden =====
-Mithilfe eines Kernel Modules (//fpga_loader.ko//) kann der sich auf dem Phytec Board befindliche Cyclone II programmiert werden. Dazu sind folgende Schritte notwendig:  +Mithilfe eines Kernel Modules (//fpga_loader//) kann der sich auf dem Phytec Board befindliche Cyclone II programmiert werden. Dazu sind folgende Schritte notwendig:  
-  -Als erstes muss eine .rbf (Raw Binary Format) Datei erzeugt werden. Dazu in Quartus unter //Device->Device and Pin options -> Programming Files// bei //Raw Binary File// den Haken setzen.+  - NTB MPC5200 Daten holen mit:  <code> git clone https://github.com/ntb-ch/linux-phycore-mpc5200b</code> 
 +  - Ins Verzeichnis //kernel/FPGA/loader// wechseln und Modul übersetzen: <code>ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- KERNELDIR=~/mpc5200/kernel/linux-3.19 make</code> 
 +  
 +  -Als nächstes muss für das FPGA eine .rbf (Raw Binary Format) Datei erzeugt werden. Dazu in Quartus unter //Device->Device and Pin options -> Programming Files// bei //Raw Binary File// den Haken setzen.
   -Danach das Design kompilieren.    -Danach das Design kompilieren. 
-  -Die erzeugte .rbf Datei auf das Target kopieren, z.B. mit netcat (siehe [[http://www.microhowto.info/howto/copy_a_file_from_one_machine_to_another_using_netcat.html | How to use netcat]]) oder [[software:linux:openssh:start|OpenSSH]]. +  -Die erzeugten .rbf Datei auf das Target kopieren, z.B. mit netcat (siehe [[http://www.microhowto.info/howto/copy_a_file_from_one_machine_to_another_using_netcat.html | How to use netcat]]) oder [[software:linux:openssh:start|OpenSSH]]. 
-  - Dann muss das Modul mit <code>insmod fpga_loader.ko</code> geladen werden. +  - Auf dem Target zuerst das Loader Modul laden mit <code>insmod fpga_loader.ko</code> Ab diesem Moment steht die serielle Schnittstelle auf der PSC6 nicht mehr zur Verfügung! 
-  - Zum Schluss kann ein Design mit <code>dd if=myDesign.rbf of=/dev/fpga_loader bs=5M</code> auf das FPGA geladen werden.+  - Jetzt kann ein Design mit <code>dd if=myDesign.rbf of=/dev/fpga_loader bs=5M</code> auf das FPGA geladen werden.   
 +  - Dann muss das Modul mit <code>rmmod fpga_loader.ko</code> wieder entladen werden, damit die serielle Schnittstelle wieder gebraucht werden kann