Cross Compiler Ubuntu und Raspberry Pi 3

  • Hallo zusammen,

    ich bin neu hier im Forum und habe auch kaum Erfahrung mit dem Raspberry Pi.
    Für mein Studium darf ich mich nun damit beschäftigen.

    Habe mir unter VMWare eine virtuelle Maschine mit dem Betriebssystem Ubuntu16.04 LTS erstellt. Ansonsten hat der Rechner Win10 installiert.
    Wollte nun den Cross Compiler nach dieser Anleitung in Betrieb nehmen: https://wiki.qt.io/Raspberry_Pi_Beginners_Guide

    Hier gibt es jedoch ein Problem in meiner Virtuellen Maschine.
    Wenn ich das Terminal ausführe und mein Image mounten will

    And mount it:
    sudo mkdir /mnt/rasp-pi-rootfs
    sudo mount -o loop,offset=62914560 2015-05-05-raspbian-wheezy.img /mnt/rasp-pi-rootfs

    bekomme ich im Terminal folgende Fehlermeldung:

    linux@ubuntu:~/opt$ sudo mount -o loop,offset=62914560 2016-05-27-raspbian-jessie.img /mnt/rasp-pi-rootfs
    [sudo] password for linux:
    mount: /dev/loop0 is write-protected, mounting read-only
    mount: wrong fs type, bad option, bad superblock on /dev/loop0,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try
    dmesg | tail or so.

    Leider komme ich hier nicht weiter und habe keine Ahnung an was es liegen könnte.

    Freue mich über eure Hilfe und Tipps. :danke_ATDE:

  • Code
    sudo parted 2016-05-27-raspbian-jessie.img 'unit s print'


    z.B.

    Code
    Number  Start   End     Size    Type     File system     Flags
    1      4208640s   25190399s   20981760s   primary  ext4            boot, type=83

    In der Ausgabe findest du "number start .....". Die Anzahl der Sektoren (ohne das s) unter "Start" bei "Number 1" ist dein Offset (hier 4208640).
    Da du ein anderes Image als das im Tutorial gezeigte verwendest, wird der Offset anders sein als dort angegeben.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (18. August 2016 um 15:05)

  • das geht ja schnell hier ;)
    vielen Dank für deine Antwort.

    Habe versucht das hier umzusetzen, leider ohne Erfolg...

    linux@ubuntu:~$ cd opt
    linux@ubuntu:~/opt$ sudo parted 2016-05-27-raspbian-jessie.img 'unit s print'
    [sudo] password for linux:
    Model: (file)
    Disk /home/linux/opt/2016-05-27-raspbian-jessie.img: 7849984s
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:

    Number Start End Size Type File system Flags
    1 8192s 137215s 129024s primary fat16 lba
    2 137216s 7849983s 7712768s primary ext4

    linux@ubuntu:~/opt$ sudo mount -o loop,offset=137216 2016-05-27-rasbian-jessie.img /mnt/rasp-pi-rootfs
    mount: 2016-05-27-rasbian-jessie.img: failed to setup loop device: No such file or directory
    linux@ubuntu:~/opt$ sudo mount -o loop,offset=137216 2016-05-27-raspbian-jessie.img /mnt/rasp-pi-rootfs
    mount: /dev/loop0 is write-protected, mounting read-only
    mount: wrong fs type, bad option, bad superblock on /dev/loop0,
    missing codepage or helper program, or other error

    In some cases useful info is found in syslog - try
    dmesg | tail or so.
    linux@ubuntu:~/opt$

  • Hallo doni_rasp,
    ohne dir jetzt den Spaß am crosscompiling nehmen zu wollen, aber hast du schon mal versucht das ganze auf dem Pi zu kompillieren? Ich habe (aus Faulheit) mich schon beim Kernel kompillieren gegen die crosscompile Lösung entschieden und nach ~4h Rechenzeit auf dem Pi war er fertig mit kompilieren.
    Gruß
    Chris

  • Hallo ChrisvA,

    ja habe ich schon probiert.
    Habe auf dem Raspberry auch Qt laufen und auch kompiliert.

    Wollte dann eigentlich über die Remotedesktopverbindung von Windows mich über Wlan auf den Raspberry hängen.
    Hat auch funktioniert, nur leider konnte ich so nicht Qt starten.

    Habe dann dieses Tutorial gesehen und gedacht dass die eigentlich eine ganz schicke Sache wäre.

  • Wieso willst du denn ein altes Wheezy Image verwenden? :s

    Poste mal die Ausgabe des Befehls:

    Code
    file 2015-05-05-raspbian-wheezy.img

    Für alles weitere siehe auch hier: Festplatten/SD Image unter Linux einbinden/mounten


  • Habe mir unter VMWare eine virtuelle Maschine mit dem Betriebssystem Ubuntu16.04 LTS erstellt. Ansonsten hat der Rechner Win10 installiert.

    Schau mal bei >>> Sysprogs <<< rein. Dann kannst Du die Toolchain auch direkt unter Windows/Visual Studio (nennt sich VisualGDB) laufen lassen und mußt nicht den Umweg über eine VM nehmen. Die Kommandozeile läuft bei mir mit cygwin und makefiles. Als IDE verwende ich (nachdem die VisualGDB Integration in Visual Studio nur als 30 Tage Trial verfügbar ist) mittlerweile Eclipse.

    Viel Spaß

    schnasseldag


  • Als IDE verwende ich (nachdem die VisualGDB Integration in Visual Studio nur als 30 Tage Trial verfügbar ist) mittlerweile Eclipse.

    Die kostenlose Alternative zu VisualGDB ist netbeans mit remote programming, damit kann man sogar auf dem Pi debuggen. (Wie das mit Oberfläche ist, weiß ich nicht, kompilieren geht auf jeden Fall)
    Anleitung:
    http://www.raspberry-projects.com/pi/programming…-a-raspberry-pi


    Gruß
    Chris

  • Das mit Sysprogs hab ich getestet und auch soweit zum laufen gebracht...

    nur wie funktioniert das jetzt für QT-Creator?

    wenn ich hier versuche die main zu bilden nach diesem Prinzip:
    <toolchain>\bin\arm-linux-gnueabihf-g++.exe -ggdb test.cpp -o test

    dann fehlen ihm die #include QWindow...


  • wenn ich hier versuche die main zu bilden nach diesem Prinzip:
    <toolchain>\bin\arm-linux-gnueabihf-g++.exe -ggdb test.cpp -o test

    dann fehlen ihm die #include QWindow...

    Das ist eine andere Frage, als Deine Eingangsfrage. Die QT Bibliothek mußt Du ebenso selbst installieren, wie jedwede andere Bibliothek auch. Sie gehört zunächst mal nicht zur Runtime.

  • Visual Studio 2015 bietet die Möglichkeit unter Windows sowohl C++ als auch reine C-Projekte für Linux zu entwickeln. Dazu wird auch gleich ein Projekt zum Einstieg für den Raspberry mit wirinpi angeboten (blinkende LED via GPIO). Zur Entwicklungsumgebung gehört selbstverständlich auch ein ordentlicher Debugger, und die makefiles brauchst Du auch nicht selber schreiben. Einfacher geht es eigentlich nicht.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!